外部Hello world服务器节点js

时间:2016-09-23 19:48:21

标签: javascript node.js http server

我希望使用Node.js在专用PC上托管Web服务器,但我似乎无法从本地网络以外的任何地方访问它。

从我在网上发现的情况来看,似乎所有我要做的就是在不同网络的浏览器中输入externalIp:port我应该看到我的Hello World,但是我不能让它工作而不暴露我的localhost像ngrok这样的东西。

有谁知道如何从互联网上的外部电脑访问我的节点服务器而不仅仅是本地主机?

以下是重现的步骤

require("http").createServer(function(request, response){
  response.writeHeader(200, {"Content-Type": "text/plain"});
  response.write("Hello World!");
  response.end();
}).listen(8080);
  1. " node server.js" - 非常简单的服务器托管在端口8080上,只发送“Hello World!”#39;响应
  2. 在我的机器上查看localhost:8080,查看" Hello World!"工作
  3. 从ipchicken.com获取externalIP
  4. 在外部机器(手机,差分网络电脑)上检查' externalIP':8080,永远无法正常工作
  5. 也许有一些我想念的东西,但我觉得这很简单

3 个答案:

答案 0 :(得分:1)

事实证明,我在Optimum使用的路由器有一个特殊的"设置页面允许端口80流量。并且在端口转发页面上的任何位置都没有链接。因此,在完成所有端口转发后,请确保遵循以下链接:

http://optimumdev.custhelp.com/app/answers/detail/a_id/2140/related/1

答案 1 :(得分:0)

您需要将服务绑定到所有可用的ip接口,将listen 8080更改为:

require("http").createServer(function(request, response){
   response.writeHeader(200, {"Content-Type": "text/plain"});
   response.write("Hello World!");
   response.end(); 
   }).listen(8080, "0.0.0.0")

答案 2 :(得分:0)

假设您有一个标准的家庭网络设置,您不能只是向外部IP地址发送请求,并希望它能够神奇地到达您的计算机。请求将到达您的路由器,路由器不知道如何处理它。您需要配置路由器以将端口8080上的请求转发到您的本地地址(可能类似于192.168.0.x)。即使这可能还不够。您可能需要在计算机上配置软件防火墙,以允许该端口上的传入请求。希望这会有所帮助:)