IDC 内网机器 通 过 iptables SNAT上网的配置方法
有三台机器, A 、B 、C,其中A机器有外网和内网IP,B和C只有内网,我们配置B和C二台机器通过A机器来上外网。
假设A机器 外网IP为: 60.12.13.14 内网IP为: 192.168.0.1
B机器IP为: 192.168.0.2
C机器IP为: 192.168.0.3
我们在B和C 二台机器上面,配置网卡配置文件,把A机器作为网关加进去。
修改
- vi /etc/sysconfig/network-scripts/ifcfg-eth1
添加:
- GATEWAY=192.168.0.1
然后重启二台机器网络
修改二台机器的DNS配置文件,把A机器一样的DNS 加进来
添加:
保存即可。
我们在A机器上面配置 IPTABLES,添加SNAT
cd /usr/local/sbin/
vi iptables.sh
运行 脚本
这样iptables.sh脚本里面的内容就被保存到
文件里面了。
在A机器上面,把IPTBALS 设置成开机启动就可以了。
在A机器上面,打开IP转发功能,修改sysctl.conf文件。
把
修改为:
然后执行:
使之生效。
一切就绪之后,可以在B和C二台机器上面,访问外网,比如PING 外部IP和域名都通了。
方便通过YUM更新软件,下载软件啦。。
注:
我在操作过程当中,是先拿A和B二台机器操作的,当B可以访问外网之后,发现通过A机器连不了C机器了,后来一直以为C机器有问题,就没有做通过B机器去连C机器的尝试。 之后通知机房重启,发现还是没有办法通过A去连C,之后机房接显示器通过本地物理机也是没有办法A连C,但IDC工程师有尝试可以通过B来连C,而且都是通的,才发现是因为调整内网上网的事,没有加网关造成的。 通过B连上C之后,加上网关,重启网卡,A就可以连C了,而且C也可以上网了。折腾了一会,留个纪念。万事多尝试
- /etc/init.d/network restart
- vi /etc/resolv.conf
- nameserver 202.99.96.68 #DNS根据自己服务器所在进行相应修改
我们在A机器上面配置 IPTABLES,添加SNAT
cd /usr/local/sbin/
vi iptables.sh
- #!/bin/sh
- iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 60.12.13.14
- iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
- iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
- /etc/init.d/iptables save
- sh iptables.sh
- /etc/sysconfig/iptables
在A机器上面,把IPTBALS 设置成开机启动就可以了。
- chkconfig --level 345 iptables on
在A机器上面,打开IP转发功能,修改sysctl.conf文件。
- vi /etc/sysctl.conf
- net.ipv4.ip_forward = 0
- net.ipv4.ip_forward = 1
- sysctl -p
一切就绪之后,可以在B和C二台机器上面,访问外网,比如PING 外部IP和域名都通了。
方便通过YUM更新软件,下载软件啦。。
注:
我在操作过程当中,是先拿A和B二台机器操作的,当B可以访问外网之后,发现通过A机器连不了C机器了,后来一直以为C机器有问题,就没有做通过B机器去连C机器的尝试。 之后通知机房重启,发现还是没有办法通过A去连C,之后机房接显示器通过本地物理机也是没有办法A连C,但IDC工程师有尝试可以通过B来连C,而且都是通的,才发现是因为调整内网上网的事,没有加网关造成的。 通过B连上C之后,加上网关,重启网卡,A就可以连C了,而且C也可以上网了。折腾了一会,留个纪念。万事多尝试