部署 Vagrant 需要在本地访问虚拟机中的项目,按照教程步骤访问不了,问题出现在哪里?

runup · 2015年03月03日 · 最后由 ywjno 回复于 2015年03月03日 · 5583 次阅读

问题: 需要在本地访问虚拟机中的项目,按照教程步骤访问不了,问题出现在哪里? 环境: windows7&ubuntu14.04 步骤: 1、在配置文件 Vagrantfile 中添加语句:config.vm.network "private_network", ip: "192.168.33.10" 2、在命令行中执行 vagrant reload 或者关闭重新启动 3、在虚拟机的 rails 项目中启动 rails s,并且项目启动成功 在本地浏览器中访问地址:http://192.168.33.10:3000/,无法显示网页

#1 楼 @MrPasserby 添加了 rails s -b 0.0.0.0 语句,但是没有成功,ubuntu 的防火墙设置不知如何下手

不清楚你的网络环境如何,不过可以尝试使用不一样的 ip,比如 config.vm.network "private_network", ip: "33.33.33.10" 这样的配置 就可以通过 33.33.33.10:3000 来访问了

#3 楼 @Teddy 我试试,但是变化 ip 地址有什么用呢?

假设你用的是 VirtualBox 虚拟机器是使用的 nat 网络,而 host 是不能访问到 nat 网络下的 guest 的,(我也不知道 vagrant ssh 是如果进行的) 要么你修改你的虚拟机为 bridge 网络,这样虚拟机会使用你 host 一样的网络,但当你无非为你的虚拟机分配到 ip 时,比如限制严格的单位网络,你需要使用 host-only 网络

首先在 VirtualBox 的全局设置->网络里添加一个 Host-only 的网络,这个会在你本机的网络里添加一块网卡,分配 Ip 为 192.168.33.1 然后在 host 和 guest 里互相 ping 看是否存在防火墙问题. 启动 rails 时候要增加参数 -b 0.0.0.0 除了通过 host-only 的 ip 访问,你也可以在 Vagrantfile 里增加设置 config.vm.network :forwarded_port, guest: 3000, host: 3000 这样可以通过 localhot:3000 来访问。

config.vm.network :private_network, ip: "192.168.33.10" 试试这样呢,我是直接按照 http://happycasts.github.io/105-vagrant.html 这个的来做 vbox 的配置还有虚拟机里面的设置什么都不需要改

#6 楼 @ywjno 这个不是一样么?

#3 楼 @Teddy 改了 ip 就行了,不知是何种原理

#7 楼 @runup 不知,反正我的文件这样写的其他都是默认

需要 登录 后方可回复, 如果你还没有账号请 注册新账号