You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Windows 10下浏览器无法访问虚拟机内的开发网站

排查思路与解决方向

这种情况确实挺挠头的——毕竟pingcurl都能正常工作,说明网络连通性和服务器的基础响应是没问题的,问题大概率出在浏览器行为、服务器特定配置或者防火墙规则上。我给你整理几个排查方向,你可以逐个验证:

  • 先排查浏览器本身的问题

    • 试试强制刷新页面:按下Ctrl+Shift+R(Chrome/Firefox通用),有时候浏览器缓存了旧的连接失败记录,强制刷新能绕过缓存重新发起请求。
    • 无痕/隐私窗口打开域名:无痕模式会禁用自定义代理、缓存和部分扩展,能排除这些因素的干扰。如果无痕模式能正常访问,那就是普通窗口的缓存或扩展在搞鬼。
    • 检查浏览器代理设置:看看是不是不小心开启了代理服务器(包括自动PAC配置),导致浏览器走了错误的路由路径。可以暂时关闭所有代理再试。
  • 验证服务器的监听配置
    虽然curl能拿到响应,但还是要确认服务器服务(比如Nginx、Apache)是不是监听了正确的地址。登录虚拟机:

    vagrant ssh
    

    然后执行命令查看监听端口和地址(以Linux为例):

    sudo netstat -tulpn | grep -E '(nginx|apache)'
    

    如果结果里的监听地址是127.0.0.1,那意味着服务只接受虚拟机内部的请求,这种情况下宿主机的curl不应该能访问——不过你说curl正常,大概率是0.0.0.0(监听所有地址),但还是确认一下更稳妥。

  • 排查防火墙规则

    • 宿主机Windows防火墙:虽然ICMP(ping)能通过,但HTTP/HTTPS请求可能被防火墙拦截。可以临时关闭Windows Defender防火墙测试,如果能访问了,就需要在防火墙里添加入站规则,允许80(HTTP)和443(HTTPS)端口的流量。
    • 虚拟机内防火墙:比如Linux系统的iptablesufw,登录虚拟机后执行:
      sudo iptables -L  # 查看iptables规则
      # 或者
      sudo ufw status  # 如果用了ufw防火墙
      
      检查是否有规则阻止了外部的HTTP/HTTPS请求,有的话调整规则放行即可。
  • 重点关注.dev域名的特殊限制
    这里有个很容易忽略的点:.dev现在是ICANN官方的顶级域名,Chrome、Firefox等主流浏览器默认强制.dev域名使用HTTPS。如果你的服务器只配置了HTTP服务,浏览器会自动尝试跳转到HTTPS,但服务器没部署HTTPS证书,就会直接出现“无法连接”的错误。
    解决方法:

    • 临时把Hosts里的域名改成非强制HTTPS的后缀,比如.test.local
    • 在虚拟机服务器上配置HTTPS(哪怕是自签名证书),然后浏览器信任该证书即可。
  • 排查IPv6干扰
    部分浏览器会优先尝试IPv6连接,如果你的Hosts只配置了IPv4,而系统自动生成了该域名的IPv6解析,可能导致浏览器连接失败。可以试试:

    • 在Hosts文件里添加::1 test.dev(把IPv6本地回环绑定到域名);
    • 暂时禁用浏览器的IPv6支持(比如Chrome可以添加启动参数--disable-ipv6)。

内容的提问来源于stack exchange,提问作者Das123

火山引擎 最新活动