【发布时间】:2016-09-23 19:48:21
【问题描述】:
我希望使用 Node.js 在专用 PC 上托管 Web 服务器,但我似乎无法从本地网络以外的任何地方访问它。
从我在网上找到的内容来看,似乎我所要做的就是在不同网络上的浏览器中输入 externalIp:port,我应该会看到我的 Hello World,但是如果不通过暴露我的本地主机,我就无法让它工作类似 ngrok 的东西。
有谁知道我如何从 Internet 上的外部 pc 访问我的节点服务器,而不仅仅是 localhost?
这里是重现的步骤
require("http").createServer(function(request, response){
response.writeHeader(200, {"Content-Type": "text/plain"});
response.write("Hello World!");
response.end();
}).listen(8080);
- "node server.js" - 非常简单的服务器托管在端口 8080 上,它只发送“Hello World!”回应
- 在我的机器上检查 localhost:8080,查看“Hello World!”工作
- 从 ipchicken.com 获取外部 IP
- 在外部机器(电话、差异网络 pc)上检查 'externalIP':8080,无法正常工作
也许我缺少一些东西,但我认为这很简单
【问题讨论】:
-
不确定您的网络环境是什么样的,但如果您使用家庭路由器,则需要设置端口转发。
-
我认为一个问题可能是端口转发,有时最常见的问题是防火墙已打开。如果您的环境是 linux,那么您需要停止 iptables 和 windows 防火墙
标签: javascript node.js http server