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相关教程见以下内容

猜你喜欢

转载自www.linuxidc.com/Linux/2015-12/125879.htm