NAT(网络地址转换)
1>先经过NAT table 的 PREROUTING链 //修改目的IP
2>经由路由判断确定这个数据包是否要进入本机,若不进入主机则下一步
3>再经过 Filter table 的 FORWARD 链
4>通过NAT table 的 POSTROUTING链,最后传送出去 //修改源IP

NAT服务器和路由器的区别:
1、基本上NAT服务器一定是路由器,不过NAT服务器会修改IP报头数据,因此和普通的单纯传递数据包的路由器不同。
2、一般作为IP分享器的NAT服务器都是一边为public IP一边为private IP,而路由器两边为private IP或两边为public IP。

NAT脚本:

iptables -A INPUT -i $INIF -j ACCEPT
#$INIF指内网接口

echo "1" > /proc/sys/net/ipv4/ip_forward
#让Linux具有路由功能

iptables -t net -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
#$innet指私有网段
#$EXTIF指对外接口

SNAT:修改数据报文的源IP或源端口
DNAT:修改数据报文的目的IP或目的端口

静态SNAT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.100

动态SNAT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.100-192.168.1.200

DNAT

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-j DNAT --to-destination 192.168.100.10:80
#将从eth0传入的对tcp80端口的请求重新传递到192.168.100.10:80上

iptables -t nat -A PREROUTING -p tcp --dport 80 \
-j REDIRECT --to-ports 8080
#本机上的端口转发