节点JS没有监听服务器上的端口1337

时间:2015-07-01 04:16:43

标签: javascript node.js http server nvm

我试图在Google托管的特定灯泡服务器上打开一个端口,我通过ssh与服务器连接。

我已经按照this链接配置了nvm和最新的Node JS(v0.12.5)。安装完成后,我在" server.js"中使用了此演示代码。文件并使用命令" node server.js",它看起来像Node JS正在运行,给出了这条消息" Server ready"在服务器控制台。现在的问题是,当我使用" netstat -n"检查开放端口时,我看不到任何1337端口打开,它应该是。我还尝试使用" serverIPaddress:1337"通过浏览器进行连接,但我得到了#34; Conecting ..."消息然后没有任何反应。

任何想法我搞砸了? 我还要将服务器IP地址(localhost:127.0.0.1)或(globalIPaddress)与server.js文件放在一起。

P.S:请在下面找到server.js文件脚本。



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




4 个答案:

答案 0 :(得分:6)

尝试删除“127.0.0.1”或将其更改为Item.insert(item); - 以侦听所有界面。 请参阅文档了解详细信 https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback

使用当前设置,服务器仅接受来自localhost的连接。 您还需要调整防火墙以打开远程服务器上的1337端口

答案 1 :(得分:3)

你有两个问题:

1)“127,0,0,1”表示"localhost" - 如果您希望远程客户端连接,则不适合。

2)端口1337可能(或可能不)通过防火墙打开。听起来好像不是。

建议更改:

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

这假设您的远程服务器没有某个其他Web服务器已绑定到端口80.如果您修改的程序因“正在使用的端口”错误而死,请尝试端口8080.或端口8888。

答案 2 :(得分:0)

只需将端口号设置为侦听而不是同时使用端口号和ip-adress

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

如果您想使用ip地址而不是服务器只能从本地访问,网址为127.0.0.1:1337,您将无法使用localhost访问它:1337

答案 3 :(得分:0)

是的,我已经尝试过多次发送到服务器,但是有时不起作用-如果您使用:

"lsof -P -iTCP | grep LISTEN"

您可以在 -bash 中检查该过程。

然后确定有多少个端口在工作。您可以使用以下命令终止该过程:

"kill -9 process_id".

正在使用的端口”表示该端口正在被其他应用程序使用或正在其上运行程序。

例如示例:

iTunes有时不允许您使用同一端口发送。

为此,退出该应用程序更好,然后尝试稍后发送。