node.js - NodeJs 服务器无法从互联网访问

标签 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 访问服务器,但是当我尝试从我的服务器访问服务器时公共(public)IP地址84.47.***.**我唯一得到的是:

timeout

在过去的 2 个小时里,我一直在阅读有关此问题的文章,所有内容都只是说将主机设置为 0.0.0.0,如果没有提供,这是 node.js 的默认主机。

我可以 ping 我的公共(public) IP 并获得正确的结果。

我使用的是 Windows 8.1,Windows 防火墙关闭,并且我在 comodo 防火墙中定义了自定义允许规则,并且为了确保也禁用了 comodo 防火墙。

当我检查node.js正在监听0.0.0.0:8000:::8000(我认为是IPv6)的TCP连接。

我在这里缺少什么?我应该怎么办?是因为windows的原因吗?或者什么?

感谢对此的任何帮助。

最佳答案

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

关于node.js - NodeJs 服务器无法从互联网访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36257536/

相关文章:

java - 如何向 Java 应用程序的 Windows 资源管理器添加上下文菜单?

windows - 尝试从 Vim 编译和调试 C++

macos - 本地主机不适用于 Big Sur(Apache 和 Homebrew)

windows - ADFS SSL 证书 : What is the purpose of the secondary certificate?

javascript - 为什么使用类时我的 var 未定义?

javascript - 如何使用cheerio提取文本

node.js - prisma ORM 中的用户和好友关系模型

android - json 文件对象建模而不是 mongoose

c++ - 从树莓派到Windows平台

c - Unix系统编程: get a network identifier to be passed to getaddrinfo