如何在宿主机浏览器中运行Vagrant(ubuntu/focal64)内的HTML文件?
在Vagrant Ubuntu/focal64中让HTML文件在宿主机浏览器显示的两种方案
可以用类似X11转发的方式实现,不过还有更高效的常规方案,以下是具体操作:
方案一:X11转发运行虚拟机内的浏览器
这种方式是把虚拟机里的浏览器GUI界面转发到宿主机显示:
- 先确保宿主机装了X11服务器:Windows用VcXsrv或Xming,macOS用XQuartz,Linux系统自带无需额外安装
- 编辑Vagrantfile,开启X11转发功能,添加或修改这一行:
config.ssh.forward_x11 = true - 重启虚拟机:
vagrant reload - 进入虚拟机:
vagrant ssh - 安装浏览器(以Firefox为例):
sudo apt update && sudo apt install -y firefox - 运行浏览器打开你的HTML文件,替换成实际路径:
此时宿主机的X11服务器会自动转发Firefox窗口,你就能在宿主机看到HTML内容了。firefox file:///home/vagrant/your-file.html
方案二:端口映射+轻量HTTP服务器(更推荐)
X11转发带GUI窗口比较占资源,直接通过网络服务暴露HTML是更常用的网页测试方式:
- 编辑Vagrantfile,添加端口映射,把虚拟机的8000端口映射到宿主机的8000端口(端口可自行调整):
config.vm.network "forwarded_port", guest: 8000, host: 8000 - 重启虚拟机:
vagrant reload - 进入虚拟机,切换到HTML文件所在的目录,启动轻量HTTP服务器:
- Python3环境:
python3 -m http.server 8000 - Python2环境:
python -m SimpleHTTPServer 8000
- Python3环境:
- 宿主机打开浏览器,访问
http://localhost:8000/your-file.html(替换成你的文件名),直接就能看到HTML内容。
两种方案对比:X11转发适合需要直接操作虚拟机内浏览器的场景;端口映射的方式更符合网页开发的常规流程,性能更优,日常测试更推荐后者。
内容的提问来源于stack exchange,提问作者Stephane. T NOUAFFO
相关产品推荐
相关产品推荐

