无业游民端口转发没有任何错误

use*_*864 2 vagrant

我正在尝试将我的项目设置到虚拟机中,以便我可以在我的主机上使用它。我已经在 vagrantfile 中设置了端口转发,当我运行 'vagrant up' 时一切正常,没有错误。但是当我尝试从主机访问 VM 中的应用程序时,我不能。我的流浪文件非常简单:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise32"
  config.vm.network :forwarded_port, host: 4567, guest: 8001
  config.vm.synced_folder "data", "/home/vagrant/projects/myapp/"

end
Run Code Online (Sandbox Code Playgroud)

一开始我得到这个:

==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 8001 => 4567 (adapter 1)
    default: 22 => 2222 (adapter 1)
Run Code Online (Sandbox Code Playgroud)

看起来一切正常,但是当我尝试从我的主机访问 127.0.0.1:4567(并且我在 127.0.0.1:8001 上的来宾机器上运行我的应用程序)时,我ERR_EMPTY_RESPONSE在浏览器中收到err_code。我做错了什么?

小智 5

首先,如果不是这样,我很抱歉,我没有评论的声誉。

也许你的服务在127.0.0.1上监听,而它应该在0.0.0.0上监听。您可以在来宾上运行此命令来检查它:

netstat -lnptu | grep ':8001'

在第四列你应该得到0.0.0.0:8001。如果不是这种情况,请在您正在运行的服务上查找绑定选项。

PS:如果它是 Sinatra 服务器(我是通过主机端口号猜测的),请查看此页面上的:bind主题。