如何在Vagrant中自动选择桥接网络接口?

问题描述 投票:0回答:4

我应该在 Vagrant 文件中添加什么来防止询问(在 vagrant up 命令之后)

网络应桥接到哪个接口?

Available bridged network interfaces:
1) Intel(R) 82579LM Gigabit Network Connection
2) VMware Virtual Ethernet Adapter for VMnet1
3) VMware Virtual Ethernet Adapter for VMnet8

我想选择#1 选项。 目前我需要手动输入“1”。 请帮忙!

vagrant vagrantfile vagrant-windows
4个回答
56
投票

在你的 Vagrantfile 中,你应该添加

config.vm.network "public_network", bridge: "Intel(R) 82579LM Gigabit Network Connection"

然后它应该让 vagrant 高兴(实际上,在这种情况下,VirtualBox 更高兴)并为虚拟机选择正确的网络适配器


18
投票

对于 Linux,我使用该文件是 Ruby 脚本的事实来检测默认路由并使用该接口的名称。 这使得我们整个团队可以按原样使用 Vagrantfile,而无需硬编码接口名称或不断更新列表。 我想你可以在 Windows 或 Mac 上做类似的事情(猜测 Mac 实际上可能是相同的,因为它是 *nix)。

请注意,如果未检测到默认网络接口,系统仍会提示您选择一个。

# Grab the name of the default interface
$default_network_interface = `ip route | awk '/^default/ {printf "%s", $5; exit 0}'`
...
Vagrant.configure("2") do |config|
    # Specify the interface when creating the public network
    config.vm.network "public_network", bridge: "#$default_network_interface"
    ...
end

10
投票

您实际上可以提供一系列桥接器,Virtualbox 将循环浏览它们,直到找到可以使用的桥接器列表。按照您希望如何尝试的顺序排列这些:

例如在我的 OSX Macbook 上:

config.vm.network "public_network", bridge: [
  "en0: Wi-Fi (AirPort)",    
  "en1: Wi-Fi (AirPort)",
]

所以在你的情况下:

config.vm.network "public_network", bridge: [
  "Intel(R) 82579LM Gigabit Network Connection",
  "VMware Virtual Ethernet Adapter for VMnet1",
  "VMware Virtual Ethernet Adapter for VMnet8",
]

1
投票

我只是从 vagrant 配置文件中取出 config.vm.network :public_network 。

vagrant 启动时没有问我关于连接到互联网的桥接接口的奇怪问题。

© www.soinside.com 2019 - 2024. All rights reserved.