开启转发功能
echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
同端口 端口转发
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为准。因为很多云主机给的是外网IP(需要设置私有ip)。但是建立连接的是主机绑定的私有IP
理论上只配置DNAT规则即可,但是如果在测试时无法正常DNAT,可以尝试配置对应的SNAT,此处按照配置SNAT的流程进行。
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 22029 -j DNAT --to-destination 67.56.60.198:22
有时只设置第一步DNAT并不能成功,需要设置SNAT
iptables -t nat -A POSTROUTING -d 67.56.60.198/32 -p tcp -m tcp --dport 22 -j SNAT --to-source 172.31.94.31 //设置连接 67.56.60.198 22端口 从哪个IP连接
开启22029端口转发到 67.56.60.198 22端口(DNAT),再通过服务器绑定的ip和 67.56.60.198 建立连接 (SNAT)