不能同时使用两个网络接口

不能同时使用两个网络接口

我有一个问题。首先,我想在 Ubuntu 14.04 上设置一个服务器。我有 2 个接口:eth0 用于 dhcp 服务器,eth1 用于互联网连接。但是如果我同时连接到两个网络,PC 上就没有互联网。所以我必须在服务器和互联网之间做出选择。这太糟糕了,有人能告诉我如何解决这个问题吗?

在 /etc/网络/接口:

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet static
address 172.16.1.100
netmask 255.255.255.0
broadcast 172.16.1.255
gateway 172.16.1.254

sudo route 输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth1
192.168.0.0     *               255.255.255.0   U     1      0        0 eth1

UPD:ifconfig输出:

eth0      Link encap:Ethernet  HWaddr 90:e6:ba:46:1d:50  
          inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:184287 (184.2 KB)

eth1      Link encap:Ethernet  HWaddr 00:04:75:98:5f:da  
          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
          TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9710708 (9.7 MB)  TX bytes:1840400 (1.8 MB)
          Interrupt:18 Base address:0x4c00 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4398 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:527890 (527.8 KB)  TX bytes:527890 (527.8 KB)

答案1

配置输出ifconfig和对我的第一个答案的评论,我认为问题与您在中配置 NIC 的方式有关/etc/network/interfaces

由于您没有任何特定的配置eth1在 中/etc/network/interfaces,我假设您的调制解调器通过 DHCP 向您的服务器提供 IP 信息。根据输出route,您将获得指向调制解调器的默认网关,从而指向 Internet。

但你的/etc/network/interfaces档案上eth0您还配置了默认网关(声明gateway 172.16.1.254)。

系统上不能有两个默认网关。eth1禁用静态配置eth0,为什么没有 IPeth0ifconfig输出中以及为什么 Internet 工作而内部网络不再工作。

您必须删除该线gateway 172.16.1.254并重试。

当然,如果内部 LAN 上有多个子网,那么你将无法再访问它们。除非你在服务器上为所有这些子网配置静态路由:

sudo route add -net ABCD gw 1​​72.16.1.254

route您可以在保存的脚本中添加该命令/etc/network/if-up.d,以便在每次接口启动时运行该命令。

答案2

据我了解,您正在通过以下方式连接到互联网:eth1并通过eth0. 然后您的服务器将充当 DHCP 服务器和您的 PC 访问互联网的默认网关的角色。

首先,在 PC 上检查它们是否正确接收了所有 DHCP 设置,包括网关。根据您的问题,我假设它应该是 172.16.1.100

其次,确保您的eth1是否已良好连接至互联网且配置良好;这显然取决于您的 ISP。

最后,最重要的操作是,您必须在服务器上的两个接口之间启用 IP 转发。如果没有这个,数据包将不会在您的 PC 和互联网之间路由:

手动设置:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

要在启动时自动设置 IP 转发标志,请取消#net.ipv4.ip_forward=1注释/etc/sysctl.conf

您还必须确保没有 IPtables 防火墙规则阻止流量。请执行以下操作:

iptables -L -n

获取规则列表(如果有)。我将首先尝试此设置,禁用所有防火墙规则:

iptables -F

答案3

我遇到了类似的问题,但是我的接口文件是空的,如下所示:

# The loopback network interface
auto lo
iface lo inet loopback

我设法通过移动/删除找到的有线连接文件来解决该问题: /etc/NetworkManager/system-connections/Wired connection 1

重启后,就能连接到两个网络。

相关内容