当前位置 博文首页 > 文章内容

    iptables实现端口映射

    作者: 栏目:未分类 时间:2020-08-08 16:04:06

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    如果想要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