nodejs 没有在转发端口上接收请求

nodejs 没有在转发端口上接收请求

我正在尝试让我的路由器将对我的 noip 动态 dns 发出的请求转发到我的本地计算机,其中我有一个正在运行的 nodjs,等待端口 14555 上的请求。

我已经设置了 noip dns,以便在本地运行的 netcat 可以接收对端口 14555 的任何调用(即使用浏览器):

ncat -l -n -v -v -k -p 14555
Ncat: Version 5.59BETA1 ( http://nmap.org/ncat )
Ncat: Listening on 0.0.0.0:14555
Ncat: Connection from xxx.xxx.xxx.xxx:56409.
GET /socket.io/?EIO=3&transport=polling&t=1430939580269-4 HTTP/1.1
Host: someDomain.ddns.net:14555
Connection: keep-alive
...
NCAT DEBUG: Closing connection.
Ncat: Connection from 84.167.116.141:56411.

然而,尽管这个调用似乎传递了所有信息并到达了我的计算机,但节点却没有监听它。它没有收到任何东西:

HTTP server listening at 0.0.0.0:14555/

我的接收服务器配置如下:

var self = this;
// Start the server
this.httpServer = http.createServer(function(req, res){ 
    // Send HTML headers and message
    res.writeHead(200,{ 'Content-Type': 'text/html' }); 
    res.end('<h1>Hello Socket Lover!</h1>');
});

//Listen on the port for HTTP requests
this.httpServer.listen(cfg.port, '0.0.0.0');

console.log('HTTP server listening at 0.0.0.0:' + cfg.port + '/');

PS:这个问题最初是在服务器故障,但我被要求将其移到这里。

*编辑 1:我做了另一个实验,使用 nginx 监听端口 80 并转发端口 80,结果相同:调用到达本地计算机的端口 80,但 nginx 没有接收它。

答案1

我找到了解决方案。

事实证明,这是我的路由器的问题。

当从内部网络调用指向路由器本身的域时,“speedport W 732V”无法解析请求。

所以一切实际上都已经正常运行,我只需要从本地网络之外的设备进行检查。

由于这对我来说非常令人沮丧,所以我将这个问题留在这里,所以也许其他寻找答案的人会在这里找到帮助。

相关内容