Ubuntu服务器可以上网,但不能ping通局域网内的系统

kan*_*ser 6 server networking internet lan ping

我有 2 个以太网接口 eth0,IP 为 192.168.1.11,eth1 为 IP 192.168.1.12,调制解调器/路由器为 192.168.1.1。

我可以从这台服务器机器访问互联网,但不能从局域网内的这台服务器访问任何其他系统。

这是我的输出。

  knr@kannur:~$ ifconfig -a

    eth0      Link encap:Ethernet  HWaddr 00:27:0e:2f:83:60  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0 
          inet6 addr:   fe80::227:eff:fe2f:8360/64   Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:13706   errors:0 dropped:0 overruns:0 frame:0 
          TX packets:15389   errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:7203014 (7.2 MB)  TX bytes:2382269 (2.3 MB)

    eth1      Link encap:Ethernet  HWaddr 00:90:27:77:29:ad  
          inet addr:192.168.1.12    Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr:   fe80::290:27ff:fe77:29ad/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:7797   errors:0 dropped:9 overruns:0 frame:0 
          TX packets:166   errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:609078 (609.0 KB)  TX bytes:25460 (25.4 KB)
Run Code Online (Sandbox Code Playgroud)
knr@kannur:~$ netstat -rn

Kernel IP routing table
Destination       Gateway           Genmask           Flags     MSS   Window    irtt    Iface
0.0.0.0           192.168.1.1       0.0.0.0           UG          0 0            0   eth0
169.254.0.0       0.0.0.0           255.255.0.0       U           0 0            0   eth0
192.168.1.0       0.0.0.0           255.255.255.0     U           0 0            0   eth0
192.168.1.0       0.0.0.0           255.255.255.0     U           0 0            0   eth1
Run Code Online (Sandbox Code Playgroud)
    knr@kannur:~$ route

    Kernel IP routing table
    Destination       Gateway           Genmask           Flags  Metric   Ref      Use   Iface
    default           192.168.1.1     0.0.0.0             UG      0        0        0   eth0
    link-local        *                 255.255.0.0       U       1000     0        0   eth0
    192.168.1.0       *                 255.255.255.0     U       0        0        0   eth0
    192.168.1.0       *                 255.255.255.0     U       0        0        0   eth1

Run Code Online (Sandbox Code Playgroud)

Ben*_*oit 2

那么,您有两个不同的网络接口连接同一子网 (192.168.1.0),由非直接连接的设备(一侧是您的路由器,另一侧是内部 LAN)使用。

所以它不能立即发挥作用是正常的。

Eth0 是第一个列出的接口,也是计算机发送数据包的默认路由,因此发送到任何 192.168.1.x 地址的所有数据包都将发送到此接口,即发送到路由器。

最简单的方法是仅使用 Linux 系统的一个接口,连接到路由器和其他服务器所连接的同一集线器/交换机。这样,您仍然可以在任何地方使用 192.168.1.x 地址。路由器必须是所有服务器的默认网关。

如果您确实想让这些东西分开(一侧是路由器,另一侧是服务器,您的 Linux 计算机充当中间的网关),您必须配置两个不同的子网。
让我们保持 eth0 不变(192.168.1.0,子网掩码 255.255.255.0)。
但是您必须将 eth1 和所有服务器放在另一个子网中,例如 192.168.2.0,子网掩码为 255.255.255.0。
如果您在 eth1 上指定 192.168.2.1 作为 IP 地址,则必须将该地址配置为所有内部服务器的默认网关。
另外,您还必须在 Linux 上启用 IP 转发,这已经完成了。