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

 cfn7831325 发布于 2022-12-04 01:16

我正在尝试使用Vagrant设置Node.js应用程序.在同一个Vagrant盒子里面还有一个Rails应用程序,工作正常.节点正在使用端口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框中启动了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)

azangru.. 12

得到了同事的答案.

原来,vagrant中的节点服务器正在监听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() {

现在一切正常.

1 个回答
  • 得到了同事的答案.

    原来,vagrant中的节点服务器正在监听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() {

    现在一切正常.

    2022-12-11 02:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有