iptables使用nat
时间:2006-09-23 来源:zhjno1xp
1.SNAT
即我们通常所说的NAT代理,内部主机可以通过NAT来访问internet,如图:
500)this.width=500;" border=0>
192.168.1.100发出的数据包源地址为192.168.1.100,到nat主机以后,因为目标不是本机,所以进行转发,在POSTROUTING这步将源地址改为nat主机的公网IP,当数据传回到nat主机的时候,Nat再将数据包的目标地址改为192.168.1.100,然后发到100这台主机上去,如图:
500)this.width=500;" border=0>
2.DNAT
当internet主机要访问内网主机的服务的时候,需要使用DNAT,如图:
500)this.width=500;" border=0>
61网段的主机访问192.168.1.210的web服务的时候,会将数据包发送给nat服务器,nat服务器在PREROUTING这步将数据包的目标地址修改为192.168.1.210,192.168.1.210传回数据报时,数据包的源地址在nat主机的POSTROUTING这步改为nat主机的公网地址。
语法:
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to 192.168.1.210:80 //代表从eth1传入的数据包想使用80端口的时候,重新传到192.168.1.210的80端口上。
如果本机使用的非标准端口来提供的服务,外部机器都使用标准端口来访问,这样就需要将进入的数据包重新导向到一个本机提供服务端口上,需要使用
-j REDRIECT --to-ports <portnum> 端口的重新定向只能在nat table的OUTPUT或PREROUTING链上进行。 语法: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 //将接受到的连接80端口的数据包重新定向到本机的8080端口
-j REDRIECT --to-ports <portnum> 端口的重新定向只能在nat table的OUTPUT或PREROUTING链上进行。 语法: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 //将接受到的连接80端口的数据包重新定向到本机的8080端口
相关阅读 更多 +