这两天公司防火墙坏了,临时启用一台linux顶替防火墙。
 
三个步骤,很简单,五分钟搞定。
 
 
前提:linux服务器两个网卡,内外网卡都设置正确ip。
 
1: 修改系统内核,开启ip转发。
 
vi /etc/sysctl.conf  
修改  net.ipv4.ip_forward = 0 为 net.ipv4.ip_forward = 1
 
然后执行  sysctl -p  立即生效  

2: 配置NAT
 
iptables -t nat  -A PREROUTING -d 218.249.XXX.X -p tcp--dport 80 -j DNAT --to-destination 192.168.9.100
iptables -t nat -A PREROUTING -d 218.249.XXX.X -p tcp --dport 80 -j DNAT --to-destination 192.168.9.12
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 
前两条是公网映射到内部私网的iptables规则。

3: 配置路由
 
route add -net 192.168.0.0/16 gw 192.168.10.2 
route add default gw 218.249.XXX.X
 
 
这样配置好之后基本就内网就可以访问外网,同时外网也可以通过域名或者公网ip访问内网的web等服务器了。
 
但问题是:内网回流问题没法解决
 
加上一条
 
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 192.168.9.12/24 -j SNAT --to 192.168.10.1 
 
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 192.168.9.100/24 -j SNAT --to 192.168.10.1 
 
注意 192.168.10.1 是我linux防火墙对内网的接口地址,一定要设置成这个地址才行。
 
这样内网用户就可以通过公网地址或者域名来访问我们内网的web等服务器了。
 
service  iptables save     保持iptables 规则。