【问题标题】:Address already in use... Linux web server on Node地址已在使用中... Node 上的 Linux Web 服务器
【发布时间】:2020-05-25 07:09:18
【问题描述】:

我在 linux 上运行一个网络服务器,我试图在浏览器上远程访问我的应用程序。但是,当我运行 nodemon 时,我一直遇到同样的问题。地址/端口已被使用。

问题开始使用端口 3000。它启动正常,但向服务器发出的任何请求都会导致它崩溃,并输出相同的输出:“端口已在使用中。”

我尝试过多次更改端口。 我尝试使用端口 80 将其路由到我的 Web 域。 我尝试将 >1024 端口预路由到端口 80。 我已经尝试重新安装依赖项并重新启动服务器。 一切都无济于事。

这是我使用 express 启动服务器的方法:

const app = express(),
  server = require('http').createServer(app);
  
const port = 80 || 8080;

server.listen(port, "[address]");

根据我的 ss -npl 日志,您可以看到该端口正在使用中。还有什么可能导致这个问题?

以下是一些日志以获取更多信息: nodemon log address:port log

编辑:很多时候服务器会正​​常启动并在收到请求后立即崩溃。

【问题讨论】:

    标签: node.js express server


    【解决方案1】:

    首先不指向port = 80 || 8000。它将永远是80。对于这个问题,当您使用 linux 时,默认情况下限制了 sudo 权限授予您的服务器。

    你可以参考这个Wikipedia article

    另一种方法是将端口80 重定向到其他一些端口。您可以运行以下命令来执行此操作:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多