我可以在 192.168.1.166 上 ping 我的 BBB,这是我的路由器给它的地址,后来我将其设为静态。
Windows主机
IP地址:192.168.1.219
我的Linux VM(在Windows主机上运行):
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.102 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::dddc:91d0:276:c7b2 prefixlen 64 scopeid 0x20<link>
血脑屏障:
eth0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500
inet 192.168.1.166 netmask 255.255.255.0 broadcast 192.168.1.255
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.2 netmask 255.255.255.0 broadcast 192.168.7.255
我还尝试添加一条路线,所以我的路线表如下所示:
debian@beaglebone:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.6.0 0.0.0.0 255.255.255.0 U 0 0 0 usb1
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 usb0
192.168.56.0 192.168.1.166 255.255.255.0 UG 0 0 0 eth0 <-- ADDED THIS
概括
- 从我的 Linux VM 中,我可以 ping 我的 Windows 主机和 BBB,包括 usb0 和 eth0(我也可以通过两者 ssh 连接到 BBB)。
- 从我的 Windows 主机我可以 ping 我的 Linux VM 和 BBB(两个地址)
- 从我的 BBB 可以 ping 通我的 Windows 主机,但不能 ping 通我的 Linux 虚拟机
我认为这可能与我的 Linux VM 位于不同的子网有关:192.168.56.x,而不是 192.168.1.x。所以这就是我在上表中添加一条路线的原因。
我究竟做错了什么?
更新
我的网络上有另一个 Linux 盒子 (192.168.1.120),BBB 可以 ping 通它。然而,第二个 Linux 盒子也无法 ping 我的 Linux 虚拟机 - 所以我认为问题是不是我的 Windows 主机 PC 无法 ping linux 虚拟机...所以这个问题的标题现在可能是错误的,这个更多的是“无法 ping 我的 Linux 虚拟机”问题。正在更新标题...
答案1
我怀疑您已经将虚拟机设置为 NAT 模式,其中 Windows 主机在您的虚拟机前面放置了一个假网络路由器,并转换 IP 地址,以便看起来所有网络流量都来自 Windows 主机。在某些 VM 程序中默认使用此模式,因为它是最可靠的,但它不允许所有网络功能正常工作。
尝试桥接模式,让虚拟机直接连接到网络。它应该像真正的计算机一样加入您的家庭网络,并从您的家庭路由器获取 192.168.1 子网中的地址。