日期:2014-05-16  浏览次数:20734 次

redhat linux iptables 实现端口转发

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文件里有包的流向