如何查看端口被哪个进程占用?Windows 与 Linux 全攻略
·
查看某个端口被哪个进程占用,是排查网络故障时的常见需求。不同操作系统下的方法略有不同,下面整理了 Windows 和 Linux 系统下的具体操作步骤。
🪟 Windows 系统
1. 使用命令提示符 (CMD)
这是最直接的方法。
步骤:
- 打开 CMD:按下
Win + R键,输入cmd,然后按回车。 - 查找占用端口的进程:在命令窗口中输入以下命令,将
<端口号>替换为你实际要查询的端口(例如8080):
netstat -ano | findstr :<端口号>
参数说明:
-a:显示所有连接和监听端口。-n:以数字形式显示地址和端口。-o:显示每个连接对应的进程ID (PID)。findstr:用于筛选包含特定端口号的行。
- 根据 PID 查找具体进程:命令执行后,会在最后一列显示一个数字,这就是占用该端口的进程 ID (PID)。然后,你可以用下面的命令查看这个 PID 对应的进程名称:
tasklist /fi "PID eq <PID>"
将 <PID> 替换为你上一步查到的数字。
2. 使用图形化工具(无需命令)
如果你不习惯用命令行,Windows 也提供了图形界面工具。
-
资源监视器:
- 按下
Win + R键,输入resmon,然后按回车。 - 在打开的“资源监视器”窗口中,切换到 “网络” 选项卡。
- 在 “监听端口” 区域,你可以看到所有正在监听的端口及其对应的进程名称。
- 按下
-
第三方工具:也有一些更直观的免费小工具,如 TCPView,可以让你以图形化方式查看所有端口的连接状态和所属进程。
🐧 Linux 系统
Linux 下主要依靠命令行,有几种常用的工具。
1. 使用 ss 命令(推荐)
ss 是 netstat 的现代替代品,速度更快,信息更全。
查看特定端口的进程:
sudo ss -lntp | grep :<端口号>
例如,查看 80 端口:
sudo ss -lntp | grep :80
参数说明:
-l:仅显示正在监听的端口。-n:以数字形式显示端口号,不解析为服务名。-t:仅显示 TCP 端口。-p:显示使用该端口的进程信息。grep:用于过滤出包含指定端口号的行。
2. 使用 lsof 命令
lsof 非常强大,可以列出系统打开的所有文件,而网络连接也被视为文件。
查看特定端口的进程:
sudo lsof -i :<端口号>
例如,查看 3306 端口:
sudo lsof -i :3306
这条命令会直接显示出占用该端口的进程名 (COMMAND)、进程ID (PID) 等关键信息。
安装 lsof:
如果系统尚未安装 lsof,可以使用以下命令安装:
-
Debian/Ubuntu 等基于 APT 的系统:
sudo apt update sudo apt install lsof -
RHEL/CentOS/Fedora 等基于 YUM/DNF 的系统:
sudo yum install lsof或(对于 Fedora 22+ 及 RHEL 8+):
sudo dnf install lsof -
Arch Linux/Manjaro:
sudo pacman -S lsof
安装完成后,即可使用 sudo lsof -i :<端口号> 命令查看端口占用情况。
3. 使用 netstat 命令(备用)
在一些较老的系统上,netstat 仍然可用。
查看特定端口的进程:
sudo netstat -tulnp | grep :<端口号>
例如,查看 8080 端口:
sudo netstat -tulnp | grep :8080
参数说明:
-t:显示 TCP 端口。-u:显示 UDP 端口。-l:仅显示监听端口。-n:以数字形式显示端口号。-p:显示进程的 PID 和名称。
📝 总结与对比
为了方便你快速查阅,我将不同系统下的常用命令总结如下:
| 操作系统 | 推荐命令 | 命令示例 (查看 8080 端口) | 说明 |
|---|---|---|---|
| Windows | netstat |
netstat -ano | findstr :8080 |
查找 PID,再用 tasklist 查进程名 |
| Linux | ss |
sudo ss -lntp | grep :8080 |
现代、快速,推荐使用 |
| Linux | lsof |
sudo lsof -i :8080 |
信息直接,可同时看到进程名和 PID |
| Linux | netstat |
sudo netstat -tulnp | grep :8080 |
经典命令,可在老系统上使用 |
请注意:
- 在 Linux 系统中执行这些命令时,通常需要
sudo来获取管理员权限。 - 在 Windows 系统中,为确保能查到所有进程的信息,建议以管理员身份运行命令提示符。
示符
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)