iptables映射端口具体操作


通过iptables映射80端口的具体方法有两种,我们来仔细分析下。

我在虚拟机上配置了LINUX系统。想通过iptables映射80端口。让外网WEB可访问到。具体操作怎么做。

一、一个简单的应用:我的机器IP是192.168.1.240,期望访问另一个局域网的web服务器其IP为192.168.0.109,中间有台双网卡的服务器用来做透明代理,该服务器eth0为192.168.1.2,eth1为192.168.0.2。

首先需要将到达192.168.1.2:80的包顺利转给192.168.0.109,因此有了下面的DNAT:

iptables -t nat -A PREROUTING -s 192.168.1.0/24 -d 192.168.1.2 -p tcp --dport 80 -j DNAT --to 192.168.0.109:80

乍一看这应该没什么问题了,可是接下来问题是发现我的包是到0.109了,可是我的机器与0.109仍然无法正常通信,原来是到达0.109的源地址仍然是1.240,0.109回包的时候当然无法直接给1.240了,接下来就是SNAT的事了:

iptables -t nat -A POSTROUTING -d 192.168.0.109 --dport 80 -o eth1 -j SNAT --to 192.168.0.2

当然别忘了echo 1 > /proc/sys/net/ipv4/ip_forward,最好连/etc/sysctl.conf里的net.ipv4.ip_forward=1一并加上。。。

在shell提示符 # 下打入iptables -Fiptables -Xiptables -t nat -F iptables -t nat -X以上每一个命令都有它确切的含义。一般设置你的iptables之前,首先要清除所有以前设置的规则,我们就把它叫做初始化好了。虽然很多情况下它什么也不做,但是保险起见,不妨小心一点吧! 如果你用的是redhat 或fedora,那么你有更简单的办法service iptables stop

二、/sbin/iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -p tcp --dport 80 -j DNAT --to-destination 192.168.0.62:80 /sbin/iptables -A FORWARD -p tcp -d 192.168.0.62 --dport 80 -j ACCEPT其中XXX.XXX.XXX.XXX换成你外网IP

通过文章的分析,想必大家都知道了iptables映射端口的具体操作,希望大家都能熟练掌握!

相关内容