首页 > 代码库 > iptables NAT

iptables NAT

NAT Network Address Tranlation 网络地址转换,分源地址转换和目标地址转换。


源地址转换SNAT Source NAT:就是普通路由器实现代理上网的功能。

wKiom1P1o0zRko_mAADEu46M4gg338.jpg

192.168.10.0/24网段内计算机网关都指向192.168.10.1,S1通过eth1与互联网相连,PC1的数据报文发往S1时就把源IP改为12.34.56.78,这样出去到互联网的报文才能够回来,回来后S1会把目标地址改为PC1的IP。S1的内核会维护一个地址转换表,自动修改相应源和目的地址。


包出去的时候修改源IP所以工作在POSTROUING链上

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 12.34.56.78


当使用ADSL等通过DHCP获得公网IP地址时,需要用到MASQUERADE(地址伪装),可以自动把source IP改为当时获取到的。

iptables -t nat -A POSTROUTING -s 192.16.10.0/24 -j MASQUERADE


DNAT 目标地址转换:

  • 适用于没有足够的公网IP而对外提供服务场景,相当于端口映射

  • 也可以起到保护真实主机的作用


所有请求12.34.56.78web服务都转发给后端192.168.10.10的8080端口

iptables -t nat -A PREROUTING -d 12.34.56.78 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.10:8080

数据报文一进来未路由之前就要决定转发给谁,所以工作在PREROUTING链上

本文出自 “不懂IT的中医不是好IT” 博客,请务必保留此出处http://zhishen.blog.51cto.com/1612050/1543165