Windows 10更新后无法通过VirtualBox访问虚拟机内网站
排查Windows主机无法访问VirtualBox Ubuntu虚拟机网站的问题
先明确你的环境:
- 主机:Windows 10(已更新)
- 客户机:Ubuntu 14.04.5
- VirtualBox版本:5.2.12 r122591(Qt5.6.2)
你提到Windows更新后,访问虚拟机内网站出现随机错误,调整配置后仍提示“页面未找到”,当前配置如下:
当前配置详情
Windows主机Hosts文件
192.168.56.2 devserver
Ubuntu客户机/etc/network/interfaces配置
auto eth1 iface eth1 inet static address 192.168.56.2 netmask 255.255.255.0 broadcast 192.168.56.0 auto eth0 iface eth0 inet dhcp auto eth2 iface eth2 inet dhcp
VirtualBox网络设置
Attached to: Host-only Adapter Name: VirtualBox Host-Only Ethernet Adapter #3 Adapter Type: PCnet-FAST III (am79C973) Promiscuous Mode: Allow All MAC Address: 0800275A1DBB
接下来给你一步步排查的思路:
第一步:先确认基础网络连通性
别先急着看网站,先确认主机和虚拟机能不能正常通信:
- 在Windows主机的命令提示符里执行:
ping 192.168.56.2- 如果ping不通:
- 检查Windows系统里的「VirtualBox Host-Only Ethernet Adapter #3」是否正常启用,有没有获取到同网段IP(比如192.168.56.1)
- 进入Ubuntu虚拟机,执行
ifconfig eth1,确认eth1确实绑定了192.168.56.2,没有报错信息 - 检查Ubuntu防火墙状态:执行
sudo ufw status,如果是开启状态,先临时关闭试试sudo ufw disable,再重新ping测试
- 如果ping不通:
- 如果ping通了,再测试网站的具体端口(比如默认80端口):
- Windows用PowerShell执行:
Test-NetConnection 192.168.56.2 -Port 80(替换成你网站实际用的端口) - 如果端口不通,说明虚拟机里的Web服务没监听该端口,或者被防火墙拦截了
- Windows用PowerShell执行:
第二步:检查Ubuntu里的Web服务状态
- 确认你的Web服务(Apache/Nginx等)是否在运行:
- Apache:
sudo service apache2 status,没运行就启动sudo service apache2 start - Nginx:
sudo service nginx status,启动命令sudo service nginx start
- Apache:
- 检查服务监听的端口:执行
netstat -tulpn | grep :80(替换成你的网站端口),看看进程是不是监听了0.0.0.0或者192.168.56.2,如果只监听127.0.0.1,那外部肯定访问不了
第三步:检查网站配置和Hosts映射有效性
- 在Ubuntu虚拟机内部访问
http://192.168.56.2或者http://devserver,如果内部都打不开,那就是网站本身的配置问题(比如虚拟主机规则错误、网站文件权限异常) - 确认Windows Hosts文件生效:在命令提示符执行
ping devserver,看返回的IP是不是192.168.56.2,如果不是,执行ipconfig /flushdns刷新DNS缓存,或者检查Hosts文件的编辑权限(右键用管理员身份打开编辑)
第四步:排查VirtualBox网络设置细节
- 打开VirtualBox的「文件」->「主机网络管理器」,找到Adapter #3,确认它的IP是192.168.56.1,子网掩码255.255.255.0,且没有开启DHCP(因为你虚拟机用的是静态IP)
- 试试把Ubuntu的网卡类型换成「Intel PRO/1000 MT Desktop (82540EM)」,老网卡类型在系统更新后可能出现兼容性问题
- 确认虚拟机eth1的MAC地址和VirtualBox设置一致:Ubuntu执行
ifconfig eth1,看HWaddr是不是08:00:27:5A:1D:BB,不一致会导致网络连接异常
先按这些步骤排查,应该能定位到问题所在。
内容的提问来源于stack exchange,提问作者Gabriel Vaz
相关产品推荐
相关产品推荐

