使用iptables进行端口重定向,方法如下:
在机器A上操作:
#iptables -t nat -A PREROUTING -d 192.168.203.173 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.203.235
#iptables -t nat -A POSTROUTING -d 192.168.203.235 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.203.173
这两台策略会将目的地址为机器B,目的端口为80的请求重定向到机器B上
#service iptables save
#service iptables start
这样有一个问题,就是在机器B上看到的请求都来自机器A,不过可以使用透明模式,使机器B上看到真实的源地址:
#iptables -t nat -A PREROUTING -d 192.168.203.173 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.203.235
#iptables -t nat -A POSTROUTING -d 192.168.203.235 -p tcp --dport 80 -j MASQUERADE
上面两行策略就可以实现透明模式的端口转发了。