无法连接到nodejs服务器

时间:2013-09-17 14:06:58

标签: node.js

我在服务器上运行Apache。转到我的地址x.x.x.x:port加载/ var / www中的index.html页面。当我停止服务器时,我再也无法连接(一切都好)。

现在我使用node server.js启动节点服务器(下面的server.js文件也位于/ var / www中)。

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(port, 'x.x.x.x');
console.log('Server running at http://x.x.x.x:port/');

这给出了错误listen EADDRNOTAVAIL,但我没有运行任何其他节点服务器(此端口没有运行其他进程)。

我也试过省略IP地址,只是这样听:listen(port);

这不会返回任何错误,但我无法连接到服务器(浏览器说:Firefox can't establish a connection to the server at x.x.x.x:p.

3 个答案:

答案 0 :(得分:3)

我发现了问题。您无需指定主机名:

listen(port, 'x.x.x.x')

应该只是

listen(port)

否则服务器将不接受任何连接,除了指向指定ip的连接。

答案 1 :(得分:2)

该端口正在使用或不可用。尝试使用不同的端口:

listen(88, 'x.x.x.x');

并查看是否连接。另外,请确保x.x.x.x实际上是服务器的IP地址。您可以通过以下方式收听所有IP:

listen(88, '0.0.0.0');

或完全退出host / ip部分。如果它确实在另一个端口上连接,您只需要查找正在使用所需端口的内容。如果是端口80,请使用:

sudo netstat -tulpn | grep :80

使用该端口获取程序。

答案 2 :(得分:0)

听起来这个端口被锁定并正在使用..

以下命令将为您提供正在运行的节点进程列表。

ps | grep node

要释放该端口,请使用以下命令停止该过程。

kill <processId>