You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Windows虚拟机访问Vagrant(Ubuntu)虚拟机部署的网站?

解决Vagrant Ubuntu虚拟机与VirtualBox Windows虚拟机的网络互通问题

我之前也碰到过类似的跨虚拟机网络不通的坑,给你几个针对性的排查和解决步骤,应该能帮你搞定:

1. 在Vagrantfile里定义统一的内部网络,避免Vagrant覆盖配置

Vagrant启动时会接管虚拟机的网络设置,所以手动在VirtualBox里改的配置肯定会被冲掉。正确的做法是直接在Vagrantfile里指定内部网络,这样Vagrant启动时就会用这个配置,不会再覆盖:

# 在Vagrantfile中添加这段配置
config.vm.network "private_network", type: "dhcp", virtualbox__intnet: "my-dev-network"

这里的my-dev-network是自定义的内部网络名称,你可以改成自己喜欢的。配置好后,执行vagrant reload让Vagrant重新加载网络设置。

然后打开VirtualBox,找到你的Windows虚拟机,进入设置 -> 网络,把网络连接方式改成内部网络,并且选择刚才定义的my-dev-network名称,保存后重启Windows虚拟机。

2. 确认两台虚拟机在同一网段

  • 在Ubuntu虚拟机里执行ip a,找到对应的内部网络接口(一般是enp0s8之类的),记下它的IP地址,比如192.168.56.101。
  • 在Windows虚拟机里打开命令提示符,执行ipconfig,找到内部网络的IP,确保它和Ubuntu的IP在同一网段(比如192.168.56.x)。如果Windows没自动获取到IP,可以手动设置一个同网段的静态IP,子网掩码设为255.255.255.0。

3. 检查Ubuntu的防火墙设置

Ubuntu默认启用的ufw防火墙可能会阻止Windows虚拟机的请求,先临时关闭防火墙测试:

sudo ufw disable

如果关闭后能ping通或者访问网站了,再针对性地开放网站需要的端口(比如80、443):

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

4. 排查跨虚拟机通信的链路

如果上面的步骤还没解决,可以逐步排查:

  • 先在Mac主机上ping Ubuntu虚拟机的IP,如果能通,说明Vagrant的网络配置在主机侧是正常的。
  • 再在Windows虚拟机里ping Mac主机的IP,如果能通,说明Windows和主机的网络是连通的。
  • 如果前两步都正常,但Windows ping不通Ubuntu,检查Mac的系统防火墙:打开系统设置 -> 网络 -> 防火墙,确保允许VirtualBox相关的网络流量通过。

5. 尝试静态IP配置(可选)

如果DHCP方式有问题,可以在Vagrantfile里指定静态IP,这样更稳定:

config.vm.network "private_network", ip: "192.168.56.101", virtualbox__intnet: "my-dev-network"

然后把Windows虚拟机的IP手动设为192.168.56.102,子网掩码255.255.255.0,不需要设置网关,因为是内部网络直接通信。

按照这些步骤走下来,应该能让Windows虚拟机正常访问Vagrant里的网站了。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:26:05