在互联网上发布Node.JS服务器

我有一个Node.JS服务器,在localhost上正常工作。 现在我想从我的机器托pipe的互联网上访问。 我公开的IP地址( Google告诉我的那个IP地址)似乎不是“可访问的”:

 https.createServer({ key: privateKey, cert: certificate }, server).listen(80, '86.151.23.17'); 

以下Node.JS错误失败:

 Error: listen EADDRNOTAVAIL at errnoException (net.js:770:11) at Server._listen2 (net.js:893:19) at listen (net.js:937:10) at Server.listen (net.js:994:9) at dns.js:71:18 at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

如何将我的Node.JS服务器发布到我的公共IP地址?

[注:我没有其他的networking服务器运行。 另外,我已经尝试了各种不同的端口,如这里所build议的。]

您最有可能位于路由器后面,因此您的公共IP无法在路由器本身的任何位置使用。 你需要做的是侦听你的私有IP(通常在192.168。*范围内)并在你的路由器上设置一个端口。

如果你在Linux上,你也可以使用一个> 1024而不是80的端口,所以你不必以root身份运行节点。 在设置端口转发时,您可以简单地将端口80转发到运行节点服务器的任何端口。

你的应用程序应该听其他的IP地址,例如

 app.listen(3000,'0.0.0.0'); 

要不就

 app.listen(3000); 

然后,您必须在调制解调器中打开端口转发。 像这样http://www.dlink.com/uk/en/support/faq/routers/wireless-routers/dkt-series/how-do-i-open-up-ports-to-my-computer-port-转发- -此路由器上

最后你可以看到你的应用程序在这里的IP地址https://whatismyipaddress.com/