Centos通过某台服务器中继上网
转自贝贝的blog,略有补充,贝贝的原贴地址:http://www.thinkingquest.net/articles/449.html
有两个补充之处:
1、GATEWAY配置
Centos的GATEWAY配置不仅在ifcfg-eth0中,也可能在/etc/sysconfig/network中。ifcfg-eth0中对单个网卡有效,network配置的是全局,作用范围不同。
原理都是改GATEWAY。
2、转发配置:
修改/proc/sys/net/ipv4/ip_forward是临时性的,是内核的当前运行状态,永久的改动位于:
/etc/sysctl.conf的
[code]
net.ipv4.ip_forward = 1
[/code]
改完后执行以下命令生效
[code]
#sysctl -p
[/code]
生效后,/proc/sys/net/ipv4/ip_forward会自动变为/etc/sysctl.conf中net.ipv4.ip_forward的值。
下面附上贝贝的原文(我这访问只能绑host访问贝贝的blog,原文转过来更方便)。
--------我是分隔线,以下是引用的全文----------
几个vps(虚拟主机),只有一个拥有公网ip地址,所有的vps都拥有内网ip地址。其它的vps需要通过拥有公网ip的这个vps进行公网访问,以方便yum安装软件等需求。
在没有公网ip的vps上需要进行的设置:
/etc/sysconfig/network-scripts/ifcfg-eth0 文件中: GATEWAY=10.x.x.x
service network restart
到此完成。
接下来是拥有公网ip的那台vps上进行设置:
echo "1" > /proc/sys/net/ipv4/ip_forward
注意,这条命令是临时开启系统的转发功能,系统重启后会恢复为默认设置。 可以通过在/etc/rc.d/rc.local中加入上述命令,使之在系统启动时被执行。
打开iptables的nat功能:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
到此设置完成。
其它vps应该可以访问公网了。