Web服务器中只能远程访问端口3000

时间:2019-08-09 13:46:02

标签: node.js centos pm2

我试图在同一台服务器(位于不同端口)中托管多个nodejs应用程序。

我正在端口3000、3001和3002中运行3个应用程序。

我能够同时运行所有这三个程序,但是问题是,只有当该应用程序在端口3000中运行时,才可以通过互联网(邮递员)访问它,但是当该应用程序在任何其他应用程序中运行时端口(3001或3001 ..)虽然成功运行,但无法通过互联网访问。

我尝试更新csf文件并在TCP_IN =“ 20,443,465,21,22,587,993,25,53,80,110,143,995,3000,3001,3001”和TCP_OUT中添加所有端口后重新启动防火墙

app.listen(PORT, () => {
    console.log("Server is running on port: " + PORT)
});

--or--

const PORT = process.env.PORT || 3001;
app.listen(PORT, () => {
    console.log("Server is running on port: " + PORT)
});

--or--

const PORT = process.env.PORT || 3002;
app.listen(PORT, () => {
    console.log("Server is running on port: " + PORT)
});

另外,我将所有规则刷新到了防火墙(iptables)中,当前的iptables看起来像:

target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

我希望我应该能够在任何开放端口中运行任何nodejs应用程序,并且应该可以通过Internet进行访问。

1 个答案:

答案 0 :(得分:0)

似乎您遇到端口问题。我建议您执行以下操作可能对此有所帮助。

  1. 您可以更改端口号并尝试。

  2. 您可以使用traceroute来检查通过以下方式访问的这些端口(3000, 3001 3002 ) 特定的服务器。在https://serverfault.com/questions/49235/traceroute-tcp-equivalent-for-windows

  3. 上查看有关traceroute的更多信息