如何通过Iptables防火墙共享IP上网

 
为了节省开支,有些公司便使用PC Server 搭载Linux操作系统通过Iptables来简单地实现共享一个固定IP上网。
 
原理说一下,大体是客户端(使用内网IP),通过防火墙的NAT操作,修改出访的数据包的源地址(注这就是对数据包的SNAT操作)把原来的IP修改成防火墙的外网IP,这样就把内网的IP地址映射到了防火墙的公网IP上。
 
可能你会想到,通信是双方的,网络上返回给内网的数据包怎么能到达对应IP的内网主机上呢?这是由于防火墙本身就有链接跟踪机制,从互联网返回到防火墙上的数据包自会识得自己该去的客户机IP。
 
图解:
如何通过Iptables防火墙共享IP上网
 
 
实际环境:
 
如何通过Iptables防火墙共享IP上网
 
 
服务器需要开启IP转发功能:
# /sbin/sysctl -w net.ipv4.ip_forward=1
防火墙要做如下设定
# iptables -t nat -F
# iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -d ! 192.168.5.0/24 -j SNAT --to-source 218.241.8.9
我们这里假设公网的那个固定IP是218.241.8.9
并最好重启动也生效:
# /etc/init.d/iptables save
 
请注意客户端还要做如下的设定:
修改默认路由为防火墙内网IP(192.168.5.1)。
如果是Linux客户端这样设置:
# route add default gw 192.168.5.1
 
好了现在内网的机子就能把防火墙的这台服务器当作一台软路由连接到互联网上了。
 



     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/203186,如需转载请自行联系原作者

上一篇:C#基础——字符串、数字之间的转换


下一篇:【百度地图API】发布静态图API啦!只需一个网址,即可展示定制百度地图!