无法连接到ubuntu xenial上的nodejs

时间:2016-10-24 13:34:49

标签: node.js ubuntu vagrant virtualbox

我正在使用vagrant在virtualbox上创建一台机器。该机器只有全新安装的Ubuntu(已更新)和节点。

node server.js 可以在我的系统中找到安装。可以看到" Hello world"在铬。 但是,当我进入我的机器并在服务器上使用 node server.js 时,我在chrome上获得了ERR_CONNECTION_RESET。

这是我的所有代码

Vagrantfile:

  Vagrant.require_version ">= 1.8.6"

  Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/xenial64"

      config.vm.network "forwarded_port", guest: 3000, host: 3000
      config.vm.synced_folder ".", "/var/www/", :mount_options => ["dmode=777", "fmode=666"]

      config.vm.provider "virtualbox" do |virtualbox|
        virtualbox.name = "vagrant"
        virtualbox.memory = 512
        virtualbox.cpus = 1
        virtualbox.gui = false
      end
  end

server.js

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

软件版本:

  • windows 10 Home
  • vagrant 1.8.6
  • virtualbox 5.1.8
  • ubuntu xenial 64
  • node v6.9.1

1 个答案:

答案 0 :(得分:1)

在Vagrant中运行时,地址127.0.0.1不一定映射到'localhost'。删除主机名,你应该没问题:

server.listen(port, () => {
  console.log(`Server listening ${port}/`);
});

省略the hostname defaults to 0.0.0.0