在日常开发或运维中,端口被占用是一个非常常见但又让人头疼的问题:服务启动不了、前端起不来、本地调试端口冲突等,大多都与端口占用有关。
下面整理几种在 Windows 11 中查看端口占用的常用方法,既包含命令行,也包含图形化工具,可根据实际使用习惯选择合适的方式。
1. 使用命令行查看端口(推荐)
命令行是相对快速且灵活的方式,适合精准排查某个端口是否被占用,以及对应的进程信息。
1.1 查看所有端口占用情况
打开 命令提示符(CMD) 或 Windows 终端,输入:
netstat -ano
参数说明:
-a:显示所有连接和监听端口。-n:以数字形式显示地址和端口号(不进行域名解析,速度更快)。-o:显示占用该端口的进程 ID(PID)。
执行后,输出中会出现类似如下的列表:
- 本地地址(Local Address)
- 外部地址(Foreign Address)
- 状态(State)
- PID(最后一列)
1.2 查找特定端口(以 8080 为例)
在只关心某个端口(比如 8080)时,可以结合 findstr 进行筛选:
netstat -ano | findstr :8080
执行后,如果该端口被占用,你会看到匹配的行,最后一列的数字就是占用该端口的 PID。
1.3 根据 PID 查找对应进程
拿到 PID 之后,可以反查具体是哪个程序占用了端口。在命令行中输入:
tasklist | findstr "PID号"
例如 PID 为 1234 时,可以这样查询:
tasklist | findstr "1234"
返回结果中会显示对应的可执行程序名称,比如 node.exe、java.exe 等。根据实际需求,可以结束相关进程,或在对应程序中调整端口配置。
2. 使用资源监视器(图形化界面)
在不熟悉命令行,或者需要一次性 更直观地查看所有端口状态 时,可以使用系统内置的 资源监视器。
操作步骤:
- 按下
Win + R,输入resmon并回车。 - 在打开的窗口中,点击顶部的 “网络” 选项卡。
- 在下方找到 “监听端口” 区域,点击右侧的小箭头展开列表。
- 列表中会显示所有正在监听的端口号、协议以及对应的进程名称和 PID。
- 可以点击 “端口” 列进行排序,以便快速找到目标端口。
这种方式适合通过图形界面查看整体端口占用情况,也方便与进程名称一一对应。
3. 使用任务管理器
任务管理器 也提供了查看端口的能力,不过信息相对基础,适合作为一个顺手的补充手段。
操作步骤:
- 按
Ctrl + Shift + Esc打开任务管理器。 - 切换到 “详细信息” 选项卡。
- 在列标题上右键点击,选择 “选择列”。
- 在弹出的窗口中勾选 “端口” 和 “协议”,点击确定。
- 此时列表中会显示每个进程占用的端口号和协议信息。
在日常已经习惯常驻任务管理器的场景下,这种方式也可以用来快速查看端口占用情况。
4. 使用第三方工具
在有 更强的可视化和管理需求 时,例如:
- 需要实时监控连接状态;
- 希望更便捷地结束某些连接或进程;
- 想要支持过滤、搜索、导出列表等高级功能;
可以考虑使用一些常见的第三方工具,例如:
- TCPView(微软 Sysinternals 套件中的工具);
- CurrPorts 等端口查看工具。
这些工具通常提供更丰富的过滤、排序和操作能力,相比系统自带工具更加灵活。
5. 小结:日常怎么查最省事?
-
日常排查单个端口是否被占用:
推荐直接在命令行使用:netstat -ano | findstr :端口号搭配:
tasklist | findstr "PID"简单高效,适合开发过程中快速定位问题。
-
需要直观查看所有端口状态:
建议使用 资源监视器(resmon),图形化界面一目了然,适合做整体观察。
整体来说:命令行排查问题最快,资源监视器适合全局视图,第三方工具适合重度使用和高级需求。根据具体场景选择合适的方法,即可在 Windows 11 环境下相对从容地处理各种端口占用问题。