如何强制 Vagrant 拥有一个单一的、桥接的网络接口

Amo*_*ira 9 networking virtualbox bridge vagrant

在 OSX (MacBook Pro)、Ubuntu 14.04 来宾、VirtualBox 4.3.26 上使用 vagrant 1.7.2。Mac 通过标准 WiFi 接口与世界相连。

我希望 Vagrant 机器使用本地 LAN 上的桥接网络作为它们的主要(也是唯一)接口。这是试验 tcptraceroute 所必需的,它不能通过 NAT 网络做正确的事情。我现在在 Vagrantfile 中的内容是:

Vagrant.configure(2) do |config|
  config.vm.provider "virtualbox"
  config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
  config.vm.box = 'ubuntu/trusty64'
end
Run Code Online (Sandbox Code Playgroud)

我在 Vagrant 盒子里得到的是:

$ ip -o -4 a
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
2: eth0    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0\       valid_lft forever preferred_lft forever
3: eth1    inet 172.16.69.16/24 brd 172.16.69.255 scope global eth1\       valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)

(172.16.69/24 是我的局域网地址)。如果我手动取下eth0并将默认路由切换到,172.16.69.1那么我可以根据需要使用 VirtualBox:

# ifdown eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/08:00:27:56:a8:46
Sending on   LPF/eth0/08:00:27:56:a8:46
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 10.0.2.2 port 67 (xid=0x69745103)
# route add -net default gw 172.16.69.1
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use    Iface
0.0.0.0         172.16.69.1     0.0.0.0         UG    0      0        0 eth1
172.16.69.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
Run Code Online (Sandbox Code Playgroud)

现在tcptraceroute工作正常。

我的问题是 - 如何配置 Vagrantfile 以避免将 eth0 接口作为 NAT 接口启动,而只是将其作为单个桥接接口启动?

我尝试config.vm.network "private_network"按照http://docs.vagrantup.com/v2/virtualbox/networking.html 中的部分说明进行操作,但据我所知,它所做的只是向盒子添加接口,而不是替换默认的 NAT上的 inetface eth0

ins*_*wer 11

您可以尝试adapter: 1在配置中添加。虽然我仍然发现它有一些问题。看看它是否会帮助你从某个地方开始。

例子:

config.vm.network "public_network", bridge: "Broadcom BCM5709C", adapter: "1", ip: "192.168.x.xx"
Run Code Online (Sandbox Code Playgroud)

您仍将拥有 eth1,它是仅主机网络...