【发布时间】:2016-07-15 10:17:21
【问题描述】:
我是 NodeJs 的新手。我在本地开发系统中启动了一个简单的 node.js 服务器,如下所示:
var http = require('http');
var fs = require('fs');
var server = http.createServer( function (req, res) {
console.log(req.url);
res.end();
}).listen(8000);
我可以从localhost、127.0.0.1 和192.168.1.103 访问服务器,但是当我尝试从我的公共IP 地址84.47.***.** 访问服务器时,我得到的只是:
超时
过去 2 小时我一直在阅读有关此问题的帖子,所有内容都只是说将主机设置为 0.0.0.0,如果没有提供,这是 node.js 的默认主机。
我可以 ping 我的公共 ip 并获得正确的结果。
我在 windows 8.1 上,windows 防火墙是 off,我在 comodo 防火墙中定义了自定义允许规则,只是为了确保甚至禁用了 comodo 防火墙。
当我检查 node.js 正在侦听 0.0.0.0:8000 和 :::8000(我认为是 IPv6)以获取 TCP 连接时。
我在这里缺少什么?我该怎么办?是因为窗户吗?还是什么?
感谢您对此的任何帮助。
【问题讨论】:
-
尝试改变... }).listen(8000); .......... to }).listen("0.0.0.0",8000);
-
@damitj07 ip 是第二个参数,
0.0.0.0是默认值。已经尝试过listen(8000,'0.0.0.0')。并且您的建议不正确并给出错误Error: listen EACCES 0.0.0.0