基本networking:Centos服务器路由器+ Ubuntu客户端安装..无法从客户端访问外部世界

我试图设置我的Centos服务器与两个网卡作为路由器。 eth0连接到外部世界,eth1连接到Ubuntu客户端。

这里是服务器上的eth0:

DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet 

服务器上的eth1:

 DEVICE=eth1 BOOTPROTO=static IPADDR=192.168.0.10 # a free address on my network ONBOOT=yes TYPE=Ethernet 

我的服务器已打开IPv4数据包转发,我的iptables只包含:

 # iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE # iptables --append FORWARD --in-interface eth1 -j ACCEPT 

我的Ubuntu客户端在/etc/network/interfaces有这个

 auto lo iface lo inet loopback iface eth0 inet dhcp gateway 192.168.0.10 

但是我无法从客户端的服务器获得Internet连接。 我甚至不能从客户端ping我的服务器:

 $ ping 192.168.0.10 Destination Host Unreachable 

我是唯一一个注意到CentOS服务器上的eth1,并且客户端上的eth0共享相同的IP,如果你发布的configuration是正确的。 我的习惯是,如果我要使用一台机器作为Linux网关,我通常使用.1作为最后一个八位字节。 所以服务器上的eth1为192.168.0.1,客户端的eth0为192.168.0.10。 当然,你必须在客户端inputroute add default gw 192.168.0.1的网关route add default gw 192.168.0.1 。 我稍后再看看你的iptables设置,检查我是否看到任何东西。

在使用dhcp的服务器上使用eth0的话,如果应该从ISP那里获取所需要的东西,那么这里没有任何错误…(哦,你不需要用route或iptables去ping通Centos路由器。而iptables只是在进入外部世界的时候才起作用,所以让我们一起做一件事情,然后让客户端首先和路由器通话,这个ip冲突可能是阻止这种情况发生的。)祝你好运! !

对于初学者,你是否在服务器上运行DHCP?

综上所述,服务器上的eth0是“内部”接口。 上面的networkingconfigurationbuild议服务器(aka路由器)上的内部接口使用DHCP。 有这个configuration的原因吗? 通常将网关IP地址设置为静态会更好。 此外,服务器的eth0 ip地址应该不是192.168.0.x / 24(我假设你在这里使用24位掩码)。

客户端eth0configuration(我假设这是客户端上的唯一接口,并通过switch / hub / l2设备将客户端连接到服务器eth0端口)也使用DHCP。 也许使用静态IP地址进行testing更容易。 同样,客户端IP地址不应该在192.168.0.x / 24子网上。

最后,客户端上的网关应该设置为服务器上的eth0 ip地址。

服务器上的路由表应显示192.168.0.x / 24和192.168.1.x / 24(可以使用任何其他私有IP地址),并直接连接到指向该网段的网关IP地址的缺省路由(不是192.168.1.10,而是你的ISP给你的gw)。

心连心