上一篇
Linux如何检测80端口占用?
- Linux
- 2025-06-09
- 9
使用命令 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 *:*)
- 无结果 → 端口未被占用
- 参数解析:
- -t:检查TCP协议
- -u:检查UDP协议
- -l:仅显示监听中的端口
- -n:以数字格式显示端口(避免解析服务名)
- 优势:ss 是 netstat 的现代替代工具,执行速度更快,属于 iproute2 标准包组件。
方法2:使用 lsof 命令
sudo lsof -i :80
- 输出关键字段:
- COMMAND:进程名称(如nginx)
- PID:进程ID
- USER:运行用户
- TYPE:协议类型(TCP/UDP)
- 说明:
- 需root权限(使用sudo)
- 直接显示占用进程的详细信息
方法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,操作前请确认您有系统管理权限,生产环境中建议备份关键数据。