我有 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)
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
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
答案1
嗯,您有两个不同的网络接口连接同一个子网(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。
如果您将 192.168.2.1 作为 eth1 上的 IP 地址,则必须将此地址配置为所有内部服务器的默认网关。
此外,您必须在 Linux 上启用 IP 转发,您已经这样做了。