Windows主机下两台Ubuntu16.04虚拟机互ping提示目标主机不可达求助
搞定Ubuntu 16.04虚拟机互ping "Destination host unreachable"的问题
嘿,我来帮你解决两台Ubuntu 16.04虚拟机互ping不通的问题!你在家庭WiFi下的Windows主机上操作,两台VM分别是192.168.56.5(VM1)和192.168.56.102(VM2),互ping提示目标主机不可达,咱们一步步排查:
先确认网络接口配置是否正确
你提到了两台VM的接口文件,但没贴具体内容,先检查这个基础配置:
- 登录VM1,查看网卡配置文件(一般是
/etc/network/interfaces或者/etc/network/interfaces.d/下的文件):
静态IP的正确配置应该长这样:cat /etc/network/interfacesauto enp0s3 # 这里的网卡名要对应你的实际网卡,用`ip addr`可以查看 iface enp0s3 inet static address 192.168.56.5 netmask 255.255.255.0 gateway 192.168.56.1 # 这个是主机虚拟网卡的IP,比如VirtualBox的Host-Only默认IP - 同样检查VM2的配置,确保它的子网掩码、网关和VM1完全一致,必须在同一个网段(192.168.56.0/24)才能直接通信。
检查虚拟机的网络模式是否匹配
不管你用VirtualBox还是VMware,两台VM必须用相同的网络模式,而且指向同一个虚拟网卡:
- 如果你用VirtualBox:打开VM设置→网络→网卡1,确认连接方式是「仅主机适配器」,并且选择的是同一个Host-Only网卡(比如vboxnet0);要是用桥接模式,得选Windows当前连WiFi的那张网卡。
- 要是VMware:打开VM设置→网络适配器,选「仅主机模式」或者「桥接模式」,桥接的话同样要对应主机的WiFi网卡。
看看是不是防火墙在搞鬼
Ubuntu 16.04默认开着ufw防火墙,可能把ICMP请求拦住了:
- 在两台VM上先临时关了防火墙试试:
关了之后再互ping,如果能通,那就是防火墙的问题,之后可以加个允许同网段ICMP的规则再开防火墙:sudo ufw disablesudo ufw allow in proto icmp from 192.168.56.0/24 sudo ufw enable
检查路由表是否正常
确保两台VM都有指向本地网段的路由:
- 在VM1上跑这条命令看路由:
应该能看到一条这样的路由:route -n
这条路由表示192.168.56.0/24的流量直接走本地网卡,不用网关。要是没有这条,手动加一下:Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3sudo route add -net 192.168.56.0/24 dev enp0s3 - 同样在VM2上检查和添加路由。
检查Windows主机的虚拟网卡
如果用的是Host-Only模式,Windows上会有对应的虚拟网卡(比如VirtualBox Host-Only Ethernet Adapter):
- 打开Windows的「网络连接」,找到这个虚拟网卡,查看它的IP,应该是192.168.56.1左右,子网掩码255.255.255.0;
- 确保这个网卡没被禁用,而且Windows的防火墙没拦截虚拟机之间的流量(可以临时关Windows防火墙测试一下)。
分步测试连通性
要是上面都没问题,咱们拆开来测:
- 先让VM1 ping Windows主机的虚拟网卡IP(比如192.168.56.1),VM2也ping这个IP,看能不能通;
- 如果VM1能ping通主机但ping不通VM2,那问题大概率在VM2的配置或防火墙;
- 如果两台都ping不通主机,那就是虚拟机的网络模式或者虚拟网卡本身的问题。
按照这个流程一步步查,应该能很快找到问题根源!
内容的提问来源于stack exchange,提问作者learnedOne
相关产品推荐
相关产品推荐

