我试图在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');

答案 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有时不允许您使用同一端口发送。
为此,退出该应用程序更好,然后尝试稍后发送。