Linux下用iptables做端口映射详细过程
在CentOS5.4上用iptables配置了端口映射,讲述详细的配置过程,供大家参考。
【实现功能】
server-A
eth0 58.215.xxx.xx 外网
eth1 192.168.1.2 内网
server-B
192.168.1.3 内网
将server-A的3306端口映射到server-B的3306端口,实现通过server-A的外网地址访问server-B内网的3306端口。
【步骤】
1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0 这样允许iptalbes FORWARD。
2、 清空iptables默认规则
iptalbes -F
iptalbes -X
iptalbes -Z
3、 重新配置规则
iptables -t nat -A PREROUTING -d 58.215.xxx.xxx -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.3:3306
iptables -t nat -A POSTROUTING -d 192.168.1.3 -p tcp --dport 3306 -j SNAT --to 192.168.1.2
iptables -A FORWARD -o eth0 -d 192.168.1.3 -p tcp --dport 3306 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.1.3 -p tcp --sport 3306 -j ACCEPT
DNAT SNAT 的请参考帮助,这里不再陈述。
4、 把规则写成脚本,加入到/etc/rc.local 开机自动运行里面。
vim /bin/iptables.sh
iptalbes -F
iptalbes -X
iptalbes -Z
iptables -t nat -A PREROUTING -d 58.215.xxx.xxx -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.3:3306
iptables -t nat -A POSTROUTING -d 192.168.1.3 -p tcp --dport 3306 -j SNAT --to 192.168.1.2
最后把/bin/iptables.sh脚本加入开机运行。
echo "/bin/iptables.sh" >> /etc/rc.local