node.js - 如何让 Node.js 服务器接受 Ubuntu 上的所有请求?

标签 node.js ubuntu

我有一个在 Mac 和 Windows 上运行的 Node.js 程序,两者都允许访问者通过互联网。我的设置非常简单:

var http = require('http');
var s = http.createServer();
s.listen(80, process.argv[2] || '127.0.0.1');

当我运行服务器时,我将使用 node server.js 0.0.0.0 触发 process.argv[2] 因此它不仅仅监听来自本地服务器的请求。

然而,当我将同一个服务器应用程序移至 Ubuntu 时,它停止工作。例如,如果 Ubuntu 服务器的 IP 地址为 172.18.x.x,则它将仅响应来自同一网络中 IP 地址为 172.18.x.x 的计算机的请求。如果设备的 IP 地址为 172.19.x.x,则它不会响应。如果转发的请求不是来自 IP 地址为 172.18.x.x 的路由计算机,它也不会响应转发的互联网调用!

最佳答案

这可能与 Node.js 无关。可能是您的 Ubuntu 系统阻止了连接。具体来说,某些防火墙或安全包作为您的应用程序之一的依赖项安装,或以其他方式安装。

关于node.js - 如何让 Node.js 服务器接受 Ubuntu 上的所有请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45279792/

相关文章:

node.js - 如何使用 Node.js 处理脆弱连接上的数据流?

node.js - 错误: Invalid protocol

mysql - MySQL安装期间自定义数据目录

azure - 无法启动namenode : Cannot assign requested address

ubuntu - phpinfo() 什么也没显示,但我所有其他 php 脚本都可以正常工作

ubuntu - vscode 没有运行并给出段错误

python - Pip 无法在 ubuntu 服务器上安装任何东西

node.js - 使用await和request-promise的问题

Node.JS 提高 cassandra 性能

node.js - 在express中将 "hook"放入app.response函数的正确方法是什么?