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