gpt4 book ai didi

node.js - 无法连接到 Vagrant 中的 Node.js

转载 作者:搜寻专家 更新时间:2023-11-01 00:10:27 25 4
gpt4 key购买 nike

我正在尝试使用 Vagrant 设置 Node.js 应用程序。在同一个 Vagrant 盒子中还有一个 Rails 应用程序,它工作正常。 Node 正在使用端口 3001,所以这里是 Vagrantfile 中的配置设置:

  # Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "puppetlabs/ubuntu-14.04-32-puppet"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network :forwarded_port, host: 4567, guest: 3000
config.vm.network :forwarded_port, host: 5678, guest: 3001

所以,我在 Vagrant box 中启动了 Node。这表明在 Vagrant 框内它响应端口 3001 上的请求:

vagrant@localhost:~$ wget 127.0.0.1:3001
--2014-12-24 06:37:40-- http://127.0.0.1:3001/
Connecting to 127.0.0.1:3001... connected.
HTTP request sent, awaiting response... 200 OK

客机监听3001端口:

$ sudo netstat -ltpn | grep 3001
tcp 0 0 127.0.0.1:3001 0.0.0.0:* LISTEN 1422/node

主机正在监听端口 5678:

sudo netstat -ltpn | grep 5678
tcp 0 0 0.0.0.0:5678 0.0.0.0:* LISTEN 30966/VBoxHeadless

然而,我无法从主机浏览器连接到该应用。

可能是什么问题?

更新 vagrant up 的输出:

[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 3000 => 4567 (adapter 1)
[default] -- 3001 => 5678 (adapter 1)

最佳答案

从同事那里得到了答案。

原来,vagrant 中的 Node 服务器正在监听 localhost,而它应该监听的是 0.0.0.0:

所以 www 文件中的这一行:

var server = app.listen(app.get('port'), 'localhost', function() {

必须更改为:

var server = app.listen(app.get('port'), '0.0.0.0', function() {

现在一切正常。

关于node.js - 无法连接到 Vagrant 中的 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27638889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com