我正在尝试将我的项目设置到虚拟机中,以便我可以从主机上使用它。我在 vagrantfile 中设置了端口转发,当我运行“vagrant up”时,一切正常,没有错误。但是当我尝试从主机访问 VM 中的应用程序时,却无法访问。我的 vagrant 文件非常简单:
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
开始时我得到了这个:
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 8001 => 4567 (adapter 1)
default: 22 => 2222 (adapter 1)
看起来一切正常,但当我尝试从主机访问 127.0.0.1:4567 时(我在 127.0.0.1:8001 上的客户机上运行我的应用程序),我ERR_EMPTY_RESPONSE
在浏览器中收到 err_code。我做错了什么?
答案1
首先,如果事实并非如此,我很抱歉,我没有评论的声誉。
也许你的服务正在监听127.0.0.1当它应该倾听时0.0.0.0您可以在客户机上运行以下命令来检查它:
netstat -lnptu | grep ':8001'
在第四列你应该得到0.0.0.0:8001。如果不是,请在您正在运行的服务上查找绑定选项。
PS:如果是 Sinatra 服务器(我根据主机端口号猜测),请查看:绑定关于这个话题页。