Linux(Ubuntu)如何用iptables实现端口映射
首先,必须开启linux的数据转发功能,具体开启步骤如下:
1 vi /etc/sysctl.conf
2 将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1 ,并取消掉前面的注视符“#”
3 sysctl -p(这条命令是使数据转发功能生效)
现在就可以更改iptables了,使之实现nat映射功能:
例如:你要将外网访问本地IP(192.168.75.5)的80端口转换为访问192.168.75.3的8000端口,你可以用如下命令:
(1)iptables -t nat -A PREROUTING -d 192.168.75.5 -p tcp --dport 80 -j DNAT --to-destination 192.168.75.3:8000
(2)iptables -t nat -A POSTROUTING -d 192.168.75.3 -p tcp --dport 8000 -j SNAT 192.168.75.5 (我执行这句时有错误!!没有用到该部分)
我执行的语句只有:sudo iptables -t nat -A PREROUTING -d *.*.*.* -p tcp --dport 80 -j DNAT --to-destination *.*.*.*:9000
因为,我是要将80端口转发到9000端口,因为80端口被电信封掉了,外部无法访问,因此就使用9000端口。这样通过域名就可以直接访问内部9000端口提供的WEB服务了。
可以使用命令:iptables -t nat --list检查nat列表信息:
结果如下图所示
Nat列表信息删除:
iptables -t nat -D PREROUTING 1 //序号从1 开始,后边以此+1.
更多iptables相关教程见以下内容:
CentOS 7.0关闭默认防火墙启用iptables防火墙