上一篇
Linux如何检测80端口占用?
- Linux
- 2025-06-09
- 4171
使用命令
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,操作前请确认您有系统管理权限,生产环境中建议备份关键数据。