在 ubuntu 服务器上启用第二个(桥接)网络接口 (eth1) - dns 停止工作

在 ubuntu 服务器上启用第二个(桥接)网络接口 (eth1) - dns 停止工作

我有以下设置:

  • 运行 virtualbox 的 Windows 主机
  • Ubuntu 服务器作为访客

我在 Virtualbox 中启用了第二个网络接口(桥接接口),因此我可以通过 ssh、http 等方式连接到实例

(注意:使用 ubuntu 桌面的 GUI 配置网络总是可行的,但现在我使用 ubuntu 服务器并在 ubuntu 中手动执行此操作)

这大致就是我所做的:

我已经运行了实例,并且可以 ping stackoverflow.com 并获得 IP 地址。我停止服务器,在 virtualbox 中启用第二个适配器。我再次启动实例,我可以看到使用列出的接口。ifconfig -a 我打开/etc/network/interfaces并添加 eth1 控制器,因此我的接口文件如下所示:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

当我重新启动使用时,/etc/init.d/networking restart一切似乎都正常工作 - 例如。ifconfig 给了我这个:

eth0  Link encap:Ethernet  HWaddr 08:00:27:ad:75:94
      inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fead:7594/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1074 errors:0 dropped:0 overruns:0 frame:0
      TX packets:318 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:1301455 (1.3 MB)  TX bytes:26248 (26.2 KB)

eth1  Link encap:Ethernet  HWaddr 08:00:27:73:f7:37
      inet addr:192.168.1.149  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fe73:f737/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:464 errors:0 dropped:0 overruns:0 frame:0
      TX packets:243 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:65921 (65.9 KB)  TX bytes:32173 (32.1 KB)

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:16436  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我可以使用 ssh 连接到实例,因此网络正常。

但是,DNS 解析似乎不起作用,因为当我 ping 任何网站(例如 stackoverflow.com)时它就会超时。

我检查了 /etc/resolv.conf,一切看起来都很好(事实上,看起来与我的 ubuntu 桌面实例上的一样。

有任何想法吗?

答案1

请提供输出sudo ip route list。我认为您的查询将框留在一个接口上,而它们又返回到另一个接口上,您的内核会将它们丢弃。
请尝试禁用非桥接接口并再次重新测试连接性:

usr@srv % sudo ifdown eth0
usr@srv % nslookup 8.8.8.8

如果这不起作用:您可以 ping 通吗8.8.8.8


更新:

如果您使用桥接网络,则无需使用 VirtualBox 作为 NAT。
问题在于,正如预期的那样,DNS 配置为通过 eth0 进行询问,较短的路径是通过 eth1,因此答案来自 eth1。但是,您的内核并不期望 eth1 上有任何消息,因此会丢弃它们。

相关内容