在 Vagrant VM 上访问 Node.js

在 Vagrant VM 上访问 Node.js

我正在使用通过 Vagrant 托管在 OSX 上的 Centos VM,但似乎无法连接到在客户 Centos 机器上运行的 Node.js。

我已经安装了 Nginx 和 Node.js,并已将它们的端口从主机转发到客户机。

config.vm.network :forwarded_port, guest: 8080, host: 8080 
config.vm.network :forwarded_port, guest: 8124, host: 8124

启动 Node.js 后,我可以通过“wget 127.0.0.1:8124”在虚拟机中本地访问它,但从主机上却不行。

我可以从主机上毫无问题地访问端口 8080 上的 Nginx 实例。尽管我计划在端口 8124 上运行 Node.js,但停止 Nginx 然后在端口 8080 上运行 Node.js(肯定会转发到 Centos VM)仍然不起作用。

我已经停止了 Iptables 服务,所以不要认为这会阻止任何请求。

当 Node.js 在 Centos 客户虚拟机中运行时,我需要做什么才能让它接受来自主机的请求?

我正在运行的 Node 脚本是https://github.com/guzzle/guzzle/blob/master/tests/Guzzle/Tests/Http/server.js然而,我认为这并不相关,因为请求正在到达节点服务器。

答案1

https://github.com/guzzle/guzzle/blob/master/tests/Guzzle/Tests/Http/server.js#L132

参见第 132 行。您的应用仅绑定到环回接口。快速 netstat 应该可以确认这一点。

$ sudo netstat -ltpn | grep 8124
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8142            0.0.0.0:*               LISTEN      node

上述命令的输出应显示端口 8142 上的节点进程绑定到 0.0.0.0 而不是 127.0.0.1

相关内容