利用iptables进行端口数据包转发

首先编辑sysctl.conf

  1. vi /etc/sysctl.conf

复制代码

开启转发功能
将net.ipv4.ip_forward=0
修改成net.ipv4.ip_forward=1

使其生效:

  1. sysctl -p

复制代码

运行防火墙命令,如果仅需要tcp则无需运行udp条目
iptables -t nat -A PREROUTING -p tcp –dport [端口号] -j DNAT –to-destination [目标IP]
iptables -t nat -A PREROUTING -p udp –dport [端口号] -j DNAT –to-destination [目标IP]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] –dport [端口号] -j SNAT –to-source [本地服务器公网IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] –dport [端口号] -j SNAT –to-source [本地服务器公网IP]

保存并重启防火墙生效

  1. service iptables save
  2. service iptables restart

复制代码

如果需要修改编辑防火墙规则,在这里编辑防火墙

  1. vi /etc/sysconfig/iptables

复制代码

==============================
以下举例另外两种可能需要用到的方案:
==============================
多端口转发修改方案:(将本地服务器的50000~65535转发至目标IP为1.1.1.1的50000~65535端口)
-A PREROUTING -p tcp -m tcp –dport 50000:65535 -j DNAT –to-destination 1.1.1.1
-A PREROUTING -p udp -m udp –dport 50000:65535 -j DNAT –to-destination 1.1.1.1
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp –dport 50000:65535 -j SNAT –to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp –dport 50000:65535 -j SNAT –to-source [本地服务器IP]
============================================================
非同端口号修改方案:(使用本地服务器的60000端口来转发目标IP为1.1.1.1的50000端口)
-A PREROUTING -p tcp -m tcp –dport 60000 -j DNAT –to-destination 1.1.1.1:50000
-A PREROUTING -p udp -m udp –dport 60000 -j DNAT –to-destination 1.1.1.1:50000
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp –dport 50000 -j SNAT –to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp –dport 50000 -j SNAT –to-source [本地服务器IP]
============================================================

编辑后保存退出,再重启防火墙使其生效

  1. service iptables restart

复制代码

未经允许不得转载:黄躺躺 » 利用iptables进行端口数据包转发

赞 (0) 打赏

评论 0

觉得文章写得还行就打赏一下作者 :)

支付宝扫一扫打赏

微信扫一扫打赏