在 OSX (MacBook Pro) 上使用 vagrant 1.7.2、Ubuntu 14.04 客户机、VirtualBox 4.3.26。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
我在 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
(172.16.69/24 是我的 LAN 地址)。如果我手动关闭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
现在tcptraceroute
运行正常。
我的问题是 - 如何配置 Vagrantfile 以避免将 eth0 接口作为 NAT 接口,而只是将其作为单个桥接接口?
我尝试玩弄config.vm.network "private_network"
部分解释http://docs.vagrantup.com/v2/virtualbox/networking.html但据我所知,它所做的只是向框中添加接口,而不是替换默认的 NAT'ed inetface eth0
。
答案1
您可以尝试将其添加adapter: 1
到配置中。尽管我仍然发现一些问题。看看它是否能帮助您从某个地方开始。
例子:
config.vm.network "public_network", bridge: "Broadcom BCM5709C", adapter: "1", ip: "192.168.x.xx"
您仍将拥有仅主机网络的 eth1......