用iptables 做NAT代理上网

简介: 背景:有一台A服务器不能上网,和B服务器通过内网来连接,B服务器可以上网,要实现A服务器也可以上网。 内网主机: A eth1:172.16.1.8 外网主机: B eth0:10.0.0.6外网主机: B eth1:172.16.1.6 SNAT:改变数据包的源地址。

背景:
有一台A服务器不能上网,和B服务器通过内网来连接,B服务器可以上网,要实现A服务器也可以上网。

内网主机: A eth1:172.16.1.8
外网主机: B eth0:10.0.0.6
外网主机: B eth1:172.16.1.6

SNAT:改变数据包的源地址。防火墙会使用外部地址,替换数据包的本地网络地址。这样使网络内部主机能够与网络外部通信。

1.在可以上网那台服务器B上,开启内核路由转发功能

#临时
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p
#永久
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p

2.在需要通过代理上网服务器A上,查看路由表。并添加默认网关。route add default gw 172.16.1.6

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
0.0.0.0         172.16.1.6      0.0.0.0         UG    0      0        0 eth1

3.可以上网那台服务器B上添加SNAT规则

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.1.0/24 -j SNAT --to 10.0.0.6

4.保存

service iptables save
#重启iptables服务
/etc/init.d/iptables restart

5.验证是否可以正常上网。

将iptables设置为开机自启动
[root@lb02 ~]# chkconfig |grep iptables 
iptables       	0:off	1:off	2:on	3:on	4:on	5:on	6:off

  

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
Web App开发 Linux 虚拟化
|
网络协议 Linux 开发工具
【图文教程】win7+VMware8.0+CentOS6.4 NAT上网
在win7下面安装VM8.0,里面又安装多个虚拟机,各个虚拟机之间可以互相访问,同时虚拟机可以直接访问外网上网,win7要ping通个虚拟机中的系统。这种方式就使用NAT模式,开启VMware Network Adapter VMnet8。
1259 0
|
安全 虚拟化 C++
vmware虚拟机网络连接选nat后不能上网的解决办法
自己在vmware虚拟机中安装好系统并选择nat上网方式后发现无论怎么都不能联网。   后来仔细查找原因,发现Microsoft    visual   c++好像被我删掉了,是不是这个软件呢?我原先想打开这个软件,但是它显示没有目录,我就删掉了,没想到   vmware是要在里面调动数据的,而vpc   vbox   是不用的,所以缺了它 vpc  vbox   可以上网,而vmware就不能上网,我赶紧下载了一个,这回打开虚拟机,再把网络连接选nat ,再把虚拟机里的本地连接连上,就可以上网了。
1083 0