iptables转发

首先要用iptables 的转发,就得打开转发开关
 echo '1' >/proc/sys/net/ipv4/ip_forward
查看下当前的配置情况:
iptables -L -n
如果没做任何配置,应该是这么个结果:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DNAT转发:将对1.2.3.4的1900端口请求转发到5.6.7.8的1900端口上,
iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp --dport 1900 -j DNAT --to 5.6.7.8
SNAT转发: 将5.6.7.8的相应信息反馈到1.2.3.4的1900端口上,进而使1.2.3.4提供1900端口服务响应请求者
iptables -t nat -A POSTROUTING -d 5.6.7.8 -p tcp --dport 1900 -j SNAT --to 1.2.3.4
允许出口转发:
iptables -A FORWARD -o eth0 -d 1.2.3.4 -p tcp --dport 1900 -j ACCEPT
允许入口转发:
iptables -A FORWARD -i eth0 -s 5.6.7.8 -p tcp --sport 1900 -j ACCEPT

这样转发基本就配置完成了,保存重启 iptables:
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart
可以看下转发的状况:
tail /proc/net/ip_conntrack
如果做压力测试可以查看下流量情况,
watch -n 1 "/sbin/ifconfig eth0 | grep bytes"

嫌弃麻烦可以直接修改/etc/sysconfig/iptables
-A PREROUTING -d 1.2.3.4 -p tcp -m tcp --dport 1900 -j DNAT --to-destination 5.6.7.8
-A POSTROUTING -d 5.6.7.8 -p tcp -m tcp --dport 1900 -j SNAT --to-source 1.2.3.4
-A FORWARD -d 1.2.3.4 -o eth0 -p tcp -m tcp --dport 1900 -j ACCEPT
-A FORWARD -s 1.2.3.4 -i eth0 -p tcp -m tcp --sport 1900 -j ACCEPT

你可能感兴趣的:(iptables)