繁体   English   中英

Ubuntu 20.04 上的 NodeJS - 无法启动服务器,因为地址正在使用 (:::80) 但我找不到任何侦听该地址的端口

[英]NodeJS on Ubuntu 20.04 - Cannot start server because address in use (:::80) but I can't find any port listening to that address

运行以下命令时:

sudo node server/server.js

我收到以下错误:

Listening on port 80 events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::80
    at Server.setupListenHandle [as _listen2] (net.js:1280:14)
    at listenInCluster (net.js:1328:12)
    at Server.listen (net.js:1415:7)
    at Function.listen (/home/app/node_modules/express/lib/application.js:618:24

但是,在查看类似问题时,建议我找到使用端口的进程并结束它。

在 root 和普通用户上运行以下命令时:

lsof -n -i:80

网络统计-tulpn | grep:80

我得到 0 个结果,没有 output 返回。

杀死节点守护程序(使用 pkill 节点)然后重新启动它也不起作用。

更改端口奇怪地给出了相同的错误:

Error: listen EADDRINUSE: address already in use :::8080

为什么我仍然收到此错误?

编辑服务器代码:

// optional: allow environment to specify port
const port = process.env.PORT || 80;

// wire up the module
const express = require("express");

var http = require("http");
var request = require("request");

// create server instance
const app = express();
// bind the request to an absolute path or relative to the CWD

app.use(express.static(path.join(__dirname, "../dist")));

app.use(express.json());

app.listen(port, () => {
  console.log(`This app is listening at http://localhost:${port}`);
});

...

您好,您可以上传 server.js 内容吗? 您必须在其他端口上运行 http 服务器或尝试停止 nginx 或 Apache2 服务(如果您安装了它们)

简单地杀死进程:: sudo kill $(sudo lsof -t -i:8080)

将 8080 替换为您的地址,然后重新运行您的应用程序。 如果您想知道所有正在使用的端口或地址,只需从 ubuntu snap store 安装 nmap 并使用终端使用命令扫描所有端口

nmap localhost

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM