Linux 怎么查看谁在使用 80 端口?

文章导读
最直接的办法是用 ss 或 netstat 配合 sudo 查看监听 80 端口的进程名和 PID。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
A A

最直接的办法是用 ssnetstat 配合 sudo 查看监听 80 端口的进程名和 PID。

先说结论:优先用 ss -tlnp,权限不够加 sudo

  • 先确认:普通用户看不到进程名,必须提权
  • 先处理:拿到 PID 和程序名再操作
  • 再验证:重新检查端口是否释放或服务是否启动

命令速用版

sudo ss -tlnp | grep :80
sudo netstat -tlnp | grep :80
sudo lsof -i :80

为什么会这样

80 端口是 HTTP 服务的默认端口,属于特权端口(1024 以下)。Linux 系统要求绑定这类端口的进程必须具备 root 权限,因此查看时也需要相应权限才能看到完整的进程信息。常见占用该端口的服务包括 Nginx、Apache、Docker 容器映射或某些系统服务。

Linux 怎么查看谁在使用 80 端口?

分步处理

1. 使用带权限的命令查看占用情况:

sudo ss -tlnp | grep :80

2. 识别输出中的 PID/Program name 列。例如看到 nginxapache2 以及对应的数字 PID。

Linux 怎么查看谁在使用 80 端口?

3. 根据业务需求决定操作。如果是意外占用,可停止对应服务:

Linux 怎么查看谁在使用 80 端口?
sudo systemctl stop nginx

4. 如果是容器占用,需检查 Docker 端口映射配置。

怎么验证是否生效

再次运行查看命令,若没有输出或 80 端口不再显示监听状态,说明端口已释放。也可以尝试启动你原本想运行的服务,看是否报错“地址已使用”。

常见坑

  • 忘记加 sudo:普通用户运行命令可能只显示端口号,看不到进程名,导致无法判断是谁占用。
  • IPv6 干扰:有时看到 :::80 表示 IPv6 监听,同样会占用 IPv4 的 80 端口,需一并处理。
  • 容器环境:Docker 桥接模式下,宿主机查看可能只显示 docker-proxy 进程,需进入容器内部进一步排查。