iptables 工作在数据链路层 -> 物理层,用起来确实不那么容易;
查了好些资料终于实现了端口转发(NAT),至于其他什么,以后需要用的时候在看吧!
环境:
服务器A :地址 192.168.1.13,此服务器对外开放端口 3306;
服务器B :地址 192.168.1.15,此服务器运行了MYSQL,端口3306;
目的:
现在要将 对服务器A 的 3306 端口的访问,转发到 服务器B 的3306端口,并将回应数据包返回;
1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0
这样允许iptalbes FORWARD。
2、 在/etc/rc.d/init.d目录下有iptables 文件,使用格式如下
Usage: ./iptables {start|stop|restart|condrestart|status|panic|save}
相当与service iptables {....}
把iptables 服务停止,清除以前的规则,存盘
到/etc/rc.d/init.d目录下,
运行
./iptables stop
iptalbes -F
iptalbes -X
iptalbes -Z
./iptables save
脚本如下(redhat5.1 下通过):
iptables -F
iptables -X
iptables -Z
iptables -t nat -A PREROUTING -d 192.168.1.13 -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.15:3306
iptables -t nat -A POSTROUTING -d 192.168.1.15 -p tcp --dport 3306 -j SNAT --to 192.168.1.13
iptables -A FORWARD -o eth0 -d 192.168.1.13 -p tcp --dport 3306 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.1.13 -p tcp --sport 3306 -j ACCEPT
4、 新的规则存盘
./iptables save
存盘后在
/etc/sysconfig/iptables
这个文件里面
5、 启动iptables 服务
./iptables start
在/proc/net/ip_conntrack文件里有包的流向