pc1 ip:192.168.23.252 linux
pc2 ip:192.168.23.253 web
目的:访问pc1 的web服务跳转到pc2的web服务上 bash
实现步骤:tcp
开启linux 自带的转发功能ide
echo 1 > /proc/sys/net/ipv4/ip_forward
我这里使用没有任何规则的iptables测试
service iptables stop iptables -F iptables -X iptables -Z service iptables save
转发命令blog
iptables -t nat -A PREROUTING -d 192.168.23.252 -p tcp --dport 80 -j DNAT --to-destination 192.168.23.253:80 #若是进来的route的访问目的地址是192.168.23.252而且访问的目的端口是80,就进行dnat转换,把目的地址改成192.168.23.253 ,端口仍是80 iptables -t nat -A POSTROUTING -d 192.168.23.253 -p tcp --dport 80 -j SNAT --to 192.168.23.252 #当FORWARD 出来后,访问的目的地址是192.168.23.253,端口是80的。进行snat地址转换,把原地址改成192.168.23.252 iptables -A FORWARD -o eth0 -d 192.168.23.253 -p tcp --dport 80 -j ACCEPT #当从eth0出去的访问目的地址是 192.168.23.253且目的端口是80的route,容许经过 iptables -A FORWARD -i eth0 -s 192.168.23.253 -p tcp --dport 80 -j ACCEPT #当从eth0进来的原地址是 192.168.23.253且目的端口是80的route,容许经过 保存规则启动iptables service iptables save service iptables start
访问测试:ip
没转发以前访问pc1 以下图:it
没转发以前访问pc2 以下图:
io
实现端口转发后访问pc1 以下图: