NodeJs服务器不能从互联网上访问

我是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.***.**访问服务器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连接。

我在这里错过了什么? 我该怎么办? 是因为窗户吗? 或者是什么?

欣赏任何帮助。

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

好吧,我把自己搞清楚了,跟nodejs本身没有关系(whoooops)。 由于我在路由器后面,所以必须在路由器中设置端口转发。 然后,即使我已经在防火墙中定义了一个规则来允许传入连接nodejs,但它仍然阻塞传入的连接,所以我不得不在Global Rules定义一个规则,以允许传入连接到我想要的端口。