用iptables实现端口转发

以下操作在中转服务器上进行

启用iptables转发

1
vi /etc/sysctl.conf

将 net.ipv4.ip_forward=0 ,修改成 net.ipv4.ip_forward=1

编辑完后使用以下命令让配置立即生效

1
sysctl -p

添加iptables规则

1
2
3
4
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]

此时,中转服务器上的端口号和目标IP的端口号绑定在一起了,请求中转服务器端口如同请求目标IP的端口