Vagrant 通过 WiFi 桥接的网络 IP 无效

Vagrant 通过 WiFi 桥接的网络 IP 无效

我正在使用 Vagrant 启动虚拟机,但客户虚拟机中的桥接网络适配器获取了无效 IP。因此我无法从主机与其通信。

当我这样做时,我选择了您在 Vagrantfile 中看到的界面vagrant up要使用的 WiFi 网络:public_network

==> default: Available bridged network interfaces:
1) wlp4s0

如果我查看该网络中主机的 IP,它的 IP 在以下范围内192.168.2.0/24

wlp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.172  netmask 255.255.255.0  broadcast 192.168.2.255
        ...

但客户机获得的 IP 地址范围对于该网络来说似乎无效:

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.28.128.3  netmask 255.255.255.0  broadcast 172.28.128.255
        ...

我的 Vagrantfiule 看起来像这样:

Vagrant.configure(2) do |config|
  config.vm.box = 'bento/ubuntu-18.04'
  config.vm.hostname = 'ubuntu'

  config.vm.provider "virtualbox" do |v|
    v.name = 'MyVM'
    v.memory = 2048
  end

  # This is the bridged network:
  config.vm.network "public_network", dhcp: true
end

如果我像这样更改网络以指定确切的 IP,则网络将按预期工作:

config.vm.network "public_network", dhcp: true, ip: "192.168.2.180"

但我无法在那里硬编码一个 IP,因为这取决于我的用户在执行操作时选择的网络vagrant up

我的 Vagrantfile 中是否做错了什么?

请注意:我所在的地方没有有线网络插座,所以我无法测试此问题是否也发生在以太网上。

答案1

我发现这个问题,默认情况下,我的网络的适配器类型设置为“英特尔 PRO/1000 MT 台式机”。我将其改为“PCNet FAST III”,然后网络就可以正常工作并且我的机器会获得有效的 IP。

有一个相关问题这里

有关不同适配器类型的更多信息,请参阅VirtualBox 的文档

PCNet FAST III 是默认选项,因为它几乎受所有操作系统以及 GNU GRUB 启动管理器支持。作为例外,英特尔 PRO/1000 系列适配器被选为某些不再附带 PCNet 卡驱动程序的客户操作系统类型,例如 Windows Vista。

Intel PRO/1000 MT 桌面型适用于 Windows Vista 及更高版本。Intel PRO/1000 卡的 T 服务器变体可被 Windows XP 客户机识别,无需安装额外驱动程序。MT 服务器变体便于从其他平台导入 OVF。

相关内容