上一篇
使用命令
netstat -tuln | grep ':80' 或
ss -tuln | grep ':80' 查看80端口占用情况,若输出结果则端口被占用,无输出则空闲,也可用
lsof -i :80 检查具体进程。
查看80端口占用的核心方法
方法1:使用 ss 命令(推荐)
ss -tuln | grep ':80b'
- 操作步骤:
- 打开终端(Ctrl+Alt+T)
- 执行命令
ss -tuln | grep ':80b' - 观察输出:
- 有结果 → 80端口被占用(示例:
tcp LISTEN 0 128 *:80 *:*) - 无结果 → 端口未被占用
- 有结果 → 80端口被占用(示例:
- 参数解析:
-t:检查TCP协议-u:检查UDP协议-l:仅显示监听中的端口-n:以数字格式显示端口(避免解析服务名)
- 优势:
ss是netstat的现代替代工具,执行速度更快,属于iproute2标准包组件。
方法2:使用 lsof 命令
sudo lsof -i :80
- 输出关键字段:
COMMAND:进程名称(如nginx)PID:进程IDUSER:运行用户TYPE:协议类型(TCP/UDP)
- 说明:
- 需root权限(使用
sudo) - 直接显示占用进程的详细信息
- 需root权限(使用
方法3:使用 netstat 命令(传统方案)
sudo netstat -tulnp | grep ':80b'
- 参数解析:
-p:显示进程名/PID(需sudo权限)- 输出示例:
tcp6 0 0 :::80 :::* LISTEN 1234/nginx
结果分析与故障处理
▶ 确认端口占用后的操作:
-
定位进程:

- 通过
sudo ss -tulnp | grep ':80'查看PID及进程名
- 通过
-
管理对应服务:
# 停止服务(示例) sudo systemctl stop nginx # 彻底禁用(谨慎操作) sudo systemctl disable nginx
-
检查未知占用:

- 若出现未授权的进程占用,立即排查安全风险:
# 查看进程路径 ls -l /proc/<PID>/exe
- 若出现未授权的进程占用,立即排查安全风险:
▶ 端口未被占用时的表现:
- 所有命令均无输出结果
专业建议
- 权限管理:
- 普通用户可使用
ss -tln | grep ':80'快速检查 - 查看进程详情需
sudo提权(遵循最小权限原则)
- 普通用户可使用
- 安全提示:
- 80端口默认用于HTTP服务,若被未知进程占用可能存在载入风险
- 定期使用
sudo lsof -i :80审计服务
- 工具选择:
| 命令 | 速度 | 信息详细度 | 安装需求 |
|———|——–|————|——————|
|ss| | | 内置(主流发行版)|
|lsof| | | 需安装lsof包 |
|netstat| | |net-tools包 |
知识扩展
- 端口状态解析:
LISTEN:服务正在监听ESTABLISHED:活动连接TIME_WAIT:连接关闭中
- 查看全部监听端口:
ss -tuln # 推荐 netstat -tuln
引用说明: 基于 Linux 内核文档(kernel.org)及《Linux 系统管理技术手册》(Richard Blum 著),命令测试环境为 Ubuntu 22.04/CentOS Stream 9,操作前请确认您有系统管理权限,生产环境中建议备份关键数据。

