Ubuntu virtualbox 来宾在桥接模式下无法获得 ipv4

weh*_*lae 5 networking virtualbox ipv4 ubuntu bridged

我在 Linux Mint 18 Cinnamon 64 位主机上安装了一个全新的虚拟机 Ubuntu Server 16.04 32 位客户机。我想让来宾系统像物理机器一样出现在本地网络中。因此,我需要为来宾使用桥接网络模式——仅主机和/或 NAT 不起作用。主机系统通过以太网电缆连接,来宾添加安装在虚拟机上。

奇怪的是,在安装过程中,来宾系统完全能够下载额外的软件包。但是,一旦登录,我既无法 ping 本地网络中的计算机,也无法 ping 外部服务器(如 google.com)。

对于google.com,它说“ping:主机未知”,对于本地路由器 (192.168.178.1),它说“连接:网络无法访问”。

经过仔细检查,我发现虚拟机没有从路由器的 DHCP 服务器收到 IPv4 地址。 但是, 我的路由器显示已分配地址(第四个条目)。

我尝试设置静态 IPv4。然后,相应的地址显示在 上ipconfig。但是,客人仍然无法ping通任何东西。此外,实际上我希望虚拟机无论如何都能从本地 DHCP 服务器接收其 IPv4 地址。

在 中/etc/network/interfaces,网络接口 fromipconfig初始化如下: allow-hotplug enp0s17 iface enp0s17 inet dhcp

我尝试过的事情:

  • 将访客设置为静态 IPv4
  • 禁用 IPv6
  • 删除 /etc/udev/rules.d/70-persistent-net.rules
  • sudo ip link set enp0s17 up
  • dhclient enp0s17

这些都没有奏效。谁能帮我解决这个问题?

weh*_*lae 1

问题不同,但解决办法是一样的。

从 10Mbps、半双工开始,然后向上工作到 10Mbps FD、100Mbps HD……直到问题出现。然后降低一级并保持该速度。

首先,安装 ethtool (如果已经安装,您只会收到一条警告,表明已安装最新版本)

sudo apt-get install ethtool

现在:

  1. 输入以下命令(并一一测试)

    sudo ethtool --change eth0 speed xxx duplex yyy autoneg off

    其中xxx = 10, 1001000yyy = halffull

    10 half所以从, 10 full, 100 half, ...开始

  2. 检查ifconfig您是否有 IP 地址。

  3. 返回到 1 直到它停止工作并使用之前仍然有效的值

  4. 要使更改永久生效,请执行以下命令:

    sudo nano /etc/network/interfaces

    并在该部分键入pre-up

    pre-up /usr/sbin/ethtool --change eth0 speed xxx duplex yyy autoneg off

请注意OP发布的完整条目:

auto eth0
iface eth0 inet dhcp
    pre-up ifconfig $IFACE up
    pre-up ethtool -s $IFACE speed 100 duplex full autoneg off
Run Code Online (Sandbox Code Playgroud)