启动 TCP nodejs 服务器后被服务器阻止。为什么?

启动 TCP nodejs 服务器后被服务器阻止。为什么?

我最近在我的 VPS 上安装了 node,并尝试完成一个教程。我将此代码保存到 server.js 中,并在 putty 中点击 node server.js。我的 VPS 立即“禁止”了我,我无法访问它,但在其他计算机上我可以访问。

var net = require('net');
var server = net.createServer(function (socket) {
  console.log("Connection from " + socket.remoteAddress);
  socket.end("Hello World\n");
});
server.listen(7000, "localhost");
console.log("TCP server listening on port 7000 at localhost.");

此问题与服务器防火墙有关吗?我该如何解决?

答案1

由于没有更多关于您平台的信息,因此很难进行推测。但是,如果您可以从另一台机器通过 SSH 进入,请以iptables -Lroot 身份检查 iptables 规则。您可能会看到“fail2ban”链或类似链下的规则,这些规则与您的机器的 IP 地址有关。它们将以 DROP 或 REJECT 结尾,它们是您需要删除的规则,以重新获得对您的机器的访问权限。

要清除它们,首先您需要要删除的规则的行号;传递iptables -L --line-numbers以查看此内容。您将看到类似以下内容:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT  all  --  <some-ip>             anywhere  

然后您可以执行iptables --delete INPUT 1,这将删除我的示例中的规则。

相关内容