从Windows访问在Vagrant box上运行的Rails服务器

3
我正在使用Windows机器,在运行ubuntu/xenial64的Vagrant box上安装了Rails。当我ssh进入该box并创建一个Rails应用程序,cd进入文件夹并运行rails server时,它告诉我:

Rails 5.1.2应用程序在http://localhost:3000上以开发模式启动

监听tcp://0.0.0.0:3000

现在我想在我的Windows机器上访问localhost:3000,但它显示未找到。如何使Rails服务器对Windows可用?


您需要使用 IP 地址进行访问。 - Deepak Mahakale
2
你还需要使用 rails s -b 0.0.0.0 命令启动服务器。 - Deepak Mahakale
不,从vagrant box的终端检查IP地址是什么。 - Deepak Mahakale
好的 - 我这样做并为 enp0s3 获取:inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0。但访问它们会得到“连接超时”的响应。 - GluePear
请查看@shubham-wadzirkar的答案,可能会有所帮助。 - Deepak Mahakale
显示剩余2条评论
2个回答

8

您需要确保已将端口3000从虚拟机转发到主机,可以在Vagrantfile中添加以下行:

config.vm.network "forwarded_port", guest: 3000, host: 3000

这样,您就可以从Windows机器上的localhost:3000访问rails应用程序。

正如其他人所说,最好使用rails server -b 0.0.0.0启动rails服务器,以便绑定到所有网络接口。


3
我正在使用VirtualBox(运行Ubuntu 14)来开发我的rails应用程序。我已经做了以下更改以便在Windows机器上访问localhost:
步骤1:
- 进入“设置 -> 网络”,将NAT适配器更改为桥接适配器。同时在“网络 -> 高级”中勾选混杂模式的“允许所有”。 - 重新启动您的虚拟机/盒子。
步骤2:
- 按照您的流程操作,直到运行“rails server”命令。只需修改命令为“rails server -b 0.0.0.0”,等待服务器启动即可。 - 获取您的盒子的IP地址(运行ifconfig),然后在Windows中打开任何浏览器,并将URL设置为ip_address_of_your_box:3000。 例如:http://10.0.0.191:3000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接