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


9

我有个问题。首先,我要在Ubuntu 14.04上设置服务器。我有2个接口:eth0(用于dhcp服务器)和eth1(用于互联网连接)。但是,如果我同时连接到两个网络,则PC上没有互联网。因此,我必须在服务器和Internet之间进行选择。太可怕了,谁能告诉我如何解决这个问题?

/ etc / network / interfaces:

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路由输出:

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)

网络管理员正在配置您的设备吗?显示输出nmcli dev status还可以吗ping 192.168.0.1
meccooll 2014年

Answers:


4

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

当你不具备任何特定配置的eth1/etc/network/interfaces,我假设你的调制解调器是给你的服务器通过DHCP的IP信息。根据route输出,您将获得指向调制解调器的默认网关,因此也指向Internet。

但是在eth0/etc/network/interfaces文件上,您还配置了一个默认网关(statement )。gateway 172.16.1.254

系统上不能有两个默认网关。上的默认网关的分配eth1的禁用的静态配置的eth0,之所以不存在用于IP 为eth0ifconfig输出,为什么上网工程和内部网络不动了。

您将必须删除该行,gateway 172.16.1.254然后重试。

这样,当然,如果内部LAN上有多个子网,您将无法再访问它们。除非您配置指向服务器上所有这些子网的静态路由,否则:

须藤路由添加-net ABCD gw 1​​72.16.1.254

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


实际上,您可以在给定的系统上有两条默认路由(由于服务器没有Internet访问,因此不能在他的系统上),但是它们应具有不同的优先级或配置以平衡两者。
JrBenito

3

据我对您的帖子的了解,您正在通过eth1连接到Internet,并通过eth0连接到内部网络。然后,您的服务器将充当DHCP服务器和PC进入Internet的默认网关的角色。

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

其次,请确保您的eth1已正确连接到Internet并配置正确;这显然取决于您的ISP。

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

手动设置:

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

要使IP转发标志自动设置在启动时取消对该行#net.ipv4.ip_forward=1/etc/sysctl.conf

您还必须确保没有阻止流量的IPtables防火墙规则。做:

iptables -L -n

获取规则列表(如果有)。我将首先尝试在禁用所有防火墙规则的情况下进行此设置:

iptables -F


不,我正在尝试设置PXE服务器。我的本地网络中的计算机正确获得了IP(它们正在引导)。但是服务器既没有互联网,客户端也没有互联网。
Andreikkaa 2014年

因此,现在我只需要修复服务器上的Internet连接即可。
Andreikkaa 2014年

@ user3452627:您能将输出添加ifconfig到您的问题中吗?并且,指定您如何连接到Internet。
Benoit 2014年

当然。我通过调制解调器连接。
Andreikkaa 2014年

@ user3452627:此调制解调器是否通过DHCP为您的服务器提供IP地址?
Benoit 2014年

2

我有类似的问题,但是我的接口文件像这样是空的:

# The loopback network interface
auto lo
iface lo inet loopback

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

重新启动后,能够连接到两个网络。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.