收藏文章 楼主

iptables 端口映射

版块:linux   类型:普通   作者:小绿叶技术博客   查看:398   回复:0   获赞:0   时间:2021-10-08 17:41:32

iptables实现端口映射

如果想要NAT功能能够正常使用,需要开启Linux主机的核心转发功能。


echo 1 > /proc/sys/net/ipv4/ip_forward

方式一:以wan口ip作为匹配条件

1. 新增一条端口映射规则

将访问wan口的端口转发至内网某个ip上


iptables -t nat -A PREROUTING -p [tcp/udp] -d wanip --dport wanport -j DNAT --to lanip:lanport

wanip:wan口ip

wanport:wan口端口

lanip:需要转发给局域网主机的ip

lanport:需要转发给局域网主机的端口

2. 删除一条端口映射规则

iptables -t nat -D PREROUTING -p [tcp/udp] -d wanip --dport wanport -j DNAT --to lanip:lanport

仅-A和-D的区别


3. 修改一条端口映射规则

当wanip变化后,需要修改端口转发规则,即修改wanip


iptables -t nat -R PREROUTING rulesnum -p [tcp/udp] -d newwanip --dport wanport -j DNAT --to lanip:lanport

rulesnum:要修改规则的序号,可以查看时通过加--line选项获得

端口转发支持TCP,UDP即可


方式二:以wan口接口名作为匹配条件

1. 新增一条端口映射规则

将访问wan口的端口转发至内网某个ip上


iptables -t nat -A PREROUTING -p [tcp/udp] -i wanifname --dport wanport -j DNAT --to lanip:lanport

wanifname:wan口接口名,例如我们的imx6ul为eth0.1

wanport:wan口端口

lanip:需要转发给局域网主机的ip

lanport:需要转发给局域网主机的端口

2. 删除一条端口映射规则

iptables -t nat -D PREROUTING -p [tcp/udp] -i wanifname --dport wanport -j DNAT --to lanip:lanport

仅-A和-D的区别


3. 修改一条端口映射规则

当wanip变化后,需要修改端口转发规则,即修改输入网络接口名


iptables -t nat -R PREROUTING rulesnum -p [tcp/udp] -i newwanifnamep --dport wanport -j DNAT --to lanip:lanport

rulesnum:要修改规则的序号,可以查看时通过加--line选项获得

端口转发支持TCP,UDP即可


对比方式一和二

方式一当wan口ip发生变化时,规则得重新修改,方式二则不需要。方式二当wan口接口名变化时,规则得重新修改。建议选用方式二作为我们端口映射的方法。


调试常用命令

查看端口转发规则:

因为我们的端口转发位于PREROUTING链,所以命令为:


iptables -t nat -nvL PREROUTING

清空nat表,PREROUTING链规则


iptables -t nat -F PREROUTING

打印nat表,PREROUTING链中iptables执行的命令参数


iptables -t nat -S PREROUTING

提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:iptables 端口映射

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息