灵活配置iptables转发端口

  灵活配置iptables,通过跳板机访问指定服务器。当你访问跳板机的指定端口时,iptalbes会自动将流量转发到目标机器的指定端口。

关键命令

1
2
3
4
5
6
7
# hostA  你的跳板机IP
# portA  你的跳板机端口(访问此端口的数据会被转发到hostB:portB)
# hostB  转发到该目标服务器
# portB  转发到该目标服务器指定端口

iptables -t nat -A PREROUTING -p tcp -m tcp --dport {portA} -j DNAT --to-destination {hostB}:{portB}
iptables -t nat -A POSTROUTING -d {hostB}/32 -p tcp -m tcp --dport {portB} -j SNAT --to-source {hostA}

场景A

  终端无法访问目标主机,或网络拥堵时,通过跳板主机来访问目标主机。

1
2
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:2222
iptables -t nat -A POSTROUTING -d 2.2.2.2/32 -p tcp -m tcp --dport 2222 -j SNAT --to-source 1.1.1.1

场景B

  目标主机为NAT设备后的终端,NAT设备使用VPN接入跳板主机,通过跳板主机的1111端口访问目标主机的80端口,注意在VPN服务器添加内网的路由。

1
2
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 1111 -j DNAT --to-destination 192.168.100.10:80
iptables -t nat -A POSTROUTING -d 192.168.100.10/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 172.16.1.254