无法从Internet访问NodeJs服务器

时间:2016-03-28 07:00:06

标签: node.js windows server

我是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);

我可以从localhost127.0.0.1192.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连接时。

我在这里缺少什么?我该怎么办?是因为窗户?或者什么?

感谢您的任何帮助。

2 个答案:

答案 0 :(得分:1)

您如何连接互联网?你有路由器吗?如果您有路由器,则需要将其配置为从外部IP和端口转发到PC的本地IP和端口。在节点服务器中,您需要侦听本地IP(在此IP路由器上将转发请求)。如果您没有路由器,则需要使用公共IP来侦听网卡。

答案 1 :(得分:0)

好的想出了我的自己,与nodejs本身无关(whoooops)。由于我首先在路由器后面,我不得不在我的路由器中设置端口转发。然后我甚至在防火墙中定义了一个规则来允许nodejs的传入连接,但它仍然阻止了传入的连接,因此我必须在Global Rules中定义一个规则以允许我所需端口的传入连接。