Ubuntu iptables 内网端口映射
1.系统环境
内网两台服务器:
A 172.16.119.128
B 172.16.119.129
希望将A机器的80端口映射到B机器的8013端口。
2.设置步骤
2.1./etc/sysctl.conf配置文件修改
删除“# net.ipv4.ip_forward = 1”行前面的“#”。 默认该行被注释掉的。
2.2.查看现有配置信息
iptables -L
如果显示内容如下:
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
表示无任何设置,可以继续下一步操作。
否则执行:
iptalbes -F
iptalbes -X
iptalbes -Z
2.3.设置端口映射
分别执行:
iptables -t nat -A PREROUTING -d 172.16.119.128 -p tcp --dport 80 -j DNAT --to-destination 172.16.119.129:8013
iptables -t nat -A POSTROUTING -d 172.16.119.129 -p tcp --dport 8013 -j SNAT --to 172.16.119.128
iptables -A FORWARD -o eth0 -d 172.16.119.129 -p tcp --dport 8013 -j ACCEPT
iptables -A FORWARD -i eth0 -s 172.16.119.129 -p tcp --sport 8013 -j ACCEPT
4.验证端口映射
此时,访问http://172.16.119.128/abc.htm,应该能访问到对应129服务器上端口为8013网站的abc.htm页面。
3.1 保存配置
执行命令:
# iptables-save > /etc/init.d/iptables.up.rules
将当前配置保存再iptables.up.rules文件中,文件名可以自己决定。
3.2 修改网卡配置文件
在网卡IP配置文件/etc/network/interfaces末行加入(/etc/init.d/iptables.up.rules可改成自己定义的配置文件位置和名称)
pre-up iptables-restore < /etc/init.d/iptables.up.rules
3.3 重启服务器验证
shutdown -r now