Mac OS X 主机操作系统无法 ping VirtualBox VM 上的 Windows 7 客户操作系统

Mac OS X 主机操作系统无法 ping VirtualBox VM 上的 Windows 7 客户操作系统

我有 Mac OS X 10.10(Yosemite)作为主机,我已经安装了 VirtualBox 并创建了一个带有 Windows 7 64 位的虚拟机。

我在虚拟机上创建了 2 个网络适配器,如下所示。但我无法从 Mac OS X 主机操作系统 ping 通 Windows 7 客户操作系统。如何解决此问题?我可以从客户操作系统 ping 通主机操作系统。

我觉得这个问题的解决方案也能帮助我解决使用 SSH 连接客户操作系统时遇到的问题。我不想使用端口转发。

  1. 主机专用适配器
  2. NAT 适配器

命令VBoxManage showvminfo显示:

VBoxManage showvminfo win7_x64

提供以下信息

 NIC 1:           MAC: 080027D6197C, Attachment: Host-only Interface
                  'vboxnet0', Cable connected: on, Trace: off (file: none), 
                  Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, 
                  Promisc Policy: deny, Bandwidth group: none
 NIC 2:           MAC: 080027DC16CE, Attachment: NAT, Cable connected: on, 
                  Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps,
                  Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
 NIC 2 Settings:  MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64)

当我ipconfig在客户机上运行时,我得到以下输出。

 Windows IP Configuration


 Ethernet adapter Local Area Connection 2:

    Connection-specific DNS Suffix  . :
    Link-local IPv6 Address . . . . . : fe80::78da:422c:2215:41bb%12
    IPv4 Address. . . . . . . . . . . : 192.168.56.101
    Subnet Mask . . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . . :

 Ethernet adapter Local Area Connection:

    Connection-specific DNS Suffix  . : Home
    Link-local IPv6 Address . . . . . : fe80::61b7:c9f4:3f50:c732%10
    IPv4 Address. . . . . . . . . . . : 10.0.3.15
    Subnet Mask . . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . . : 10.0.3.2

 Tunnel adapter Local Area Connection* 12:

    Media State . . . . . . . . . . . : Media disconnected
    Connection-specific DNS Suffix  . :

 Tunnel adapter isatap.Home:

    Media State . . . . . . . . . . . : Media disconnected
    Connection-specific DNS Suffix  . : Home

 Tunnel adapter isatap.{13342B61-268C-4B2A-92E7-5DA848C7707B}:

    Media State . . . . . . . . . . . : Media disconnected
    Connection-specific DNS Suffix  . :

当我尝试 ping 访客 IP 地址(在本例中192.168.56.101)时,我一直遇到超时。

XYZ-MBP:~ user1$ ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
^C
--- 192.168.56.101 ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss

以下是在我的 Mac(主机)上运行 ifconfig 命令的结果

XYZ-MBP:~ user1$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 ::1 prefixlen 128 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    nd6 options=1<PERFORMNUD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 24:a0:74:f0:ee:46 
    inet6 fe80::26a0:74ff:fef0:ee46%en0 prefixlen 64 scopeid 0x4 
    inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255
    inet6 fd54:669f:e4f2::26a0:74ff:fef0:ee46 prefixlen 64 autoconf 
    inet6 fd54:669f:e4f2::3024:caa:5279:425d prefixlen 64 autoconf temporary 
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: active
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    options=60<TSO4,TSO6>
    ether 72:00:07:b1:67:90 
    media: autoselect <full-duplex>
    status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    options=60<TSO4,TSO6>
    ether 72:00:07:b1:67:91 
    media: autoselect <full-duplex>
    status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
    ether 06:a0:74:f0:ee:46 
    media: autoselect
    status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1452
    ether 26:39:2f:b8:30:3f 
    inet6 fe80::2439:2fff:feb8:303f%awdl0 prefixlen 64 scopeid 0x8 
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether 26:a0:74:0f:a8:00 
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x2
    member: en1 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 5 priority 0 path cost 0
    member: en2 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 6 priority 0 path cost 0
    nd6 options=1<PERFORMNUD>
    media: <unknown type>
    status: inactive
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 0a:00:27:00:00:00 
    inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255

答案1

连接的两端vboxnetIE,您的仅主机适配器属于两个不同的子网,因此它们无法相互通信。

ipconfig

  Ethernet adapter Local Area Connection 2:

Connection-specific DNS Suffix  . :
Link-local IPv6 Address . . . . . : fe80::78da:422c:2215:41bb%12
IPv4 Address. . . . . . . . . . . : 192.168.56.101
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :

来自是否配置主机上的命令:

 vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00 
inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255

其中一个地址为192.168.56.101,另一个地址为192.168.0.10。为了让它们能够互相通信,它们应该属于同一个子网192.168.56.0/24。更糟糕的是,主机vboxnet0接口的子网与主机的 LAN 相同,只是为了确保最大程度地混淆。VirtualBox 自动将这两个子网设置为不同的,这就是使用 这样一个不寻常的子网的原因192.168.56.0/24。您不应该改变此方案。

您的路由表可能还包含一些错误,但我们会在到达那里时解决这个问题。

答案2

下面的方法解决了我的问题:

从 Mac OS X 主机 ping Win7 客户机时出现超时,并发现适配器顺序定义很重要。

以下配置有效:
* 适配器 1:仅主机
* 适配器 1:仅主机 | 适配器 2:NAT
* 适配器 1:仅主机 | 适配器 2:桥接
* 适配器 1:仅主机 | 适配器 2:桥接 | 适配器 3:NAT
* 适配器 1:仅主机 | 适配器 2:NAT | 适配器 3:桥接

其中 ping 响应为:
来自 192.168.56.199 的 64 字节:icmp_seq=0 ttl=64 时间=0.327 毫秒
来自 192.168.56.199 的 64 字节:icmp_seq=1 ttl=64 时间=0.277 毫秒
来自 192.168.56.199 的 64 字节:icmp_seq=2 ttl=64 时间=0.314 毫秒
...

以下配置超时:
* 适配器 1:NAT | 适配器 2:仅主机
* 适配器 1:桥接 | 适配器 2:仅主机
* 适配器 1:桥接 | 适配器 2:NAT | 适配器 3:仅主机

其中 ping 响应为:
icmp_seq 请求超时 0
icmp_seq 请求超时 1
icmp_seq 请求超时 2
...

我现在还不确定为什么,但是似乎必须首先指定仅主机适配器。在上述情况发生后,我停止测试排列。

希望这能有所帮助!

相关内容