实例:端口转发
环境介绍:
2个网络接口
Lan口:192.168.1.1/24 eth0
Lan内web server: 192.168.1.100:80
Wan口:10.111.1.199/24 eth1
确认linux的各项配置正常;
1. 使用sysctl net.ipv4.ip_forward=1打开linux的转发功能。
2. iptables -P FORWARD DROP 将FORWARD链的策略设置为DROP,这样做的目的是做到对内网ip的控制,你允许哪一个访问internet就可以增加一个规则,不在规则中的ip将无法访问internet
3. iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 加入确认包和关联包的允许通过
4. iptables -t nat -A PREROUTING -d 10.111.1.199 -p tcp --dport 80 -j DNAT --to 192.168.1.100:80
5. iptables -A FORWARD -d 192.168.1.100 -p tcp --dport 80 -j ACCEPT FORWARD链在PREROUTING之后,也就是说当这个包到达FORWARD链的时候,目的地址已经变成内网IP了,假如 internet用户的请求是这样202.1.1.1:1333-->10.111.1.199:80,在经过了我们的PREROUTING链之后将变成 202.1.1.1:1333-->192.168.1.100:80,这个时候如果你设置一个目的地址为10.111.1.199的规则没用的
6. iptables -t nat -A POSTROUTING -d 192.168.1.100 -p tcp --dport 80 -j SNAT --to 192.168.1.1 或设置192.168.1.100的网关为 192.168.1.1