我有这个configuration:
config.vm.network "public_network", ip: "192.168.56.101", :mac => "0022334455DA"
经过ifconfig打印后vagrant up
eth0 Link encap:Ethernet HWaddr 08:00:27:12:96:98 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe12:9698/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1141 errors:0 dropped:0 overruns:0 frame:0 TX packets:861 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:115407 (115.4 KB) TX bytes:98490 (98.4 KB) eth1 Link encap:Ethernet HWaddr 00:22:33:44:55:da inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::222:33ff:fe44:55da/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:319 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:19236 (19.2 KB) TX bytes:648 (648.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
但是我仍然无法访问我的机器上的192.168.56.101服务器或者我的networking上的任何其他服务器。 当configuration是private_server我可以从我的机器访问地址。
ip路由显示
default via 10.0.2.2 dev eth0 default via 10.0.2.2 dev eth0 metric 100 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.101
当vm运行时,VBnetworkingconfiguration显示两个连接:
Adapter 1 Attached to: NAT Adapter 2 Attached to: Bridged Adapter Name: Intel Ethernet Connection
所以我猜eth0是NAT,eth1是桥接连接? Intel Ethernet Connection是我的以太网电缆连接到路由器。
另外当我打开networking和共享中心,它告诉我有一个不明身份的networking与2个连接: VirtualBox Host-Only Network和VirtualBox Host-Only Network #2 。 这是令人困惑,因为我实际上设置stream浪使用公共networking。
使用ifconfig ,我发现分配给客户机的networking掩码与主机的桥接接口不同,所以我不得不手动指定它。 一旦我这样做了,VM就可以在主机系统之外访问了。 这是我的Vagrantfile条目:
config.vm.network :public_network, ip: '172.16.35.51', :netmask => '255.255.0.0', :bridge => 'eth0'
如果我不得不从这么less的信息中猜测,我会指向路由表… 10.0.2.15 eth0 nic正在传输相当多的数据。