利发国际lifa222 » 利发国际lifa222 » Linux » 用iptables做NAT代理,使内网机器上外网(笔记)

用iptables做NAT代理,使内网机器上外网(笔记)

 
现状:
服务器A只有一个内网IP,不能上外网,内网IP与服务器B内网相通;服务器B有一个内网IP和公网IP。想实现服务器A也能上外网。
1 2 3 4 服务器A:内网网卡:eth0 内网IP:192.168.0.10   服务器B:内网网卡:eth0 内网IP:192.168.0.20 外网网卡:eth1 外网IP:203.195.45.182
实现方法:
1、在可以上外网的服务器B上,开启路由转发功能:
 
方法一:
1 # echo 1 > /proc/sys/net/ipv4/ip_forward
注:上面命令在服务器重启之后会失效,可以编辑/etc/rc.d/rc.local把上面命令添加到最底部,实现开启自动执行。
 
方法二:
1 2 3 4 5 编辑/etc/sysctl.conf 找到net.ipv4.ip_forward = 0 修改为 net.ipv4.ip_forward = 1 最后保存。   执行sysctl -p命令使配置生效: # sysctl -p
2、在可以上外网的服务器B上执行添加SNAT规则
1 # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.10 -j SNAT --to 203.195.45.182
如果想让整个网段都通过服务器B上外网,修改上面规则命令中-s 192.168.0.10为-s 192.168.0.0/24,然后把想上外网的服务器默认网关改成192.168.0.20就可以了。
 
3、保存刚添加的iptables规则
1 # service iptables save
4、在需要上外网的服务器A上,修改内网网卡eth0的默认网关为192.168.0.20
1 # route add default gw 192.168.0.20
修改后,查看路由表,确认已修改成功,测试已经可以上外网了
1 2 3 4 5 6 # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.0.20 0.0.0.0 UG 0 0 0 eth0
原文链接:用iptables做NAT代理,使内网机器上外网(笔记),转载请注明来源!
2