CurrPorts:查清是谁占用了电脑端口
安装本地网页工具时,有时会碰到“端口已被占用”的提示。知道端口号,却不知道该关哪个程序,光是重新启动软件不一定有用。
NirSoft 的 CurrPorts 就是用来查这件事的小工具。它把端口号、进程名称和连接状态放在一张表里,不用先记 PID,再到另一个窗口里对照。这次在 Windows 上试了它的查看、筛选和保存功能,下面用一个简单例子介绍。
软件介绍
CurrPorts 是一款免费的 Windows 网络连接查看工具,不需要安装,解压后就能运行。本文使用的是 64 位 2.80 版,并放入了官网提供的简体中文语言文件。
它查看的是这台电脑上的 TCP、UDP 端口和连接,不是扫描路由器里有哪些设备,也不是 Wi-Fi 密码查看器。它与局域网设备扫描工具的用途不同。
例如,一个本地服务占用了 18188 端口,CurrPorts 可以列出它属于哪个进程、进程 ID 是多少、绑定在哪个地址。程序已经与外部建立连接时,还可以查看远程地址和端口。

界面比较朴素,主要就是菜单和表格。它属于免费软件,不应把“免费下载”理解为已经开源。
主要功能
查看端口对应的程序。 进程名称、PID、本地端口、远程地址、状态等信息可以放在一起看。双击记录还能查看更详细的属性。
按条件缩小范围。 连接很多时,可以只看某个端口、某个进程,或者指定范围,避免在整张表里逐行找。
刷新并观察变化。 程序启动、退出或者连接结束后,再刷新列表,就能看到变化。软件也有自动刷新选项。
保存查询记录。 选中的结果可以保存为文本等格式,便于前后对照,或者交给负责排查的人看。
软件另外提供关闭 TCP 连接、结束进程等操作,但查看端口并不需要用到它们。刚开始用,先查清楚对应程序,不要看见陌生进程名就直接结束。
下载和打开
从 CurrPorts 官方页面 进入,下载链接在说明文字下方。普通的 Windows 64 位电脑选择 Download CurrPorts for x64,不要点网页里其他软件的链接。
这次下载的 ZIP 约 129 KB。完整解压到固定文件夹,运行其中名为 cports 的应用程序即可,不用安装 Node.js、Python,也不需要注册账号。
需要中文的话,在同一官方页面下方的语言列表中找到 Simplified Chinese,下载语言包,把里面的 cports_lng.ini 放到主程序旁边,再重新打开。本次选用的简体中文包对应 2.75,所以在 2.80 界面中仍有少量英文项目。
本次程序没有数字签名,下载后核对了官网公布的 SHA256,文件一致。若系统弹出安全拦截,先停下来核实来源,不要为了试一个工具关闭防护。
普通权限下就能查看很多记录;某些进程的完整信息、流量统计等有额外权限条件。本篇的端口查看和筛选没有提升管理员权限,也没有修改防火墙。
使用步骤
准备一个确定存在的测试端口
实际排查时,直接使用报错里给出的端口号即可。为了让例子可以照做,下面先在本机临时建立一个监听,端口号设为 18188。它只绑定 127.0.0.1,不向局域网开放,也不会提供网页内容。
打开 Windows 自带的 PowerShell,将下面这段完整粘贴进去执行:
$listener = [System.Net.Sockets.TcpListener]::new([System.Net.IPAddress]::Loopback, 18188)
try {
$listener.Start()
Write-Host "Demo listening on 127.0.0.1:18188. PID=$PID"
Read-Host 'Press Enter to stop this demo'
}
finally {
$listener.Stop()
}
终端显示 Demo listening 和 PID 后,先保持窗口开着,不要按回车。这里的 PID 就是后面用来对照的进程 ID,每台电脑、每次启动都可能不同。
如果启动时已经提示端口占用,不必继续硬开。可以直接在 CurrPorts 中查这个端口,或者把例子中的 18188 换成空闲端口,后面的筛选条件也相应修改。
只显示这个端口
打开 CurrPorts,从“选项”进入“高级筛选”,会出现标题为“编辑过滤器”的窗口。在输入框里填写:
include:local:tcp:18188
这条条件表示:只显示本地端口为 18188 的 TCP 项目。local 指本机一侧,不是远程服务器端口。

点击确定,回到主界面后刷新。如果列表还是全部连接,检查是否临时停用了筛选;英文选项叫 Disable All Filters,本次中文包把它译成了“显示所有筛选”,名称有些容易误解。
这次列表里只剩一条记录:进程是 powershell.exe,PID 为 23308,本地端口 18188,本地地址 127.0.0.1,状态为“正在监听”。它与刚才启动演示时显示的 PID 一致。
看不全列名或内容时,可以在“查看”菜单中使用自动调整列宽的项目。表格字体也能在这个菜单中调整。
“正在监听”表示程序在这个地址和端口上等待连接,不等于正在上传文件。这个例子没有连接到外部服务器,所以远程地址显示 0.0.0.0;不要把它当成一个正在通信的网站。
如果换成真实的端口占用问题,先核对程序名和路径,再决定是从程序自身退出、停止对应服务,还是让新程序改用另一个端口。系统进程或者不确定用途的程序,不要直接终止。
把结果保存下来
单击要保留的记录,按 Ctrl+S,也可以使用工具栏里的“保存选择的项目”。在保存窗口选择文本文件,指定位置和文件名后保存。
这次保存的文件重新打开后,能看到下面这些信息:
进程名称:powershell.exe
进程 ID:23308
协议:TCP
本地端口:18188
本地地址:127.0.0.1
状态:正在监听
上面摘出了与本例有关的字段,实际文件还包含路径等更多信息。需要截图发给别人时,也要检查有没有不方便公开的用户名、文件路径或地址。保存的是当时的查询记录,不是一直自动更新的连接列表。
停止演示,再刷新一次
回到刚才的 PowerShell 窗口,按一次回车,脚本就会停止自己建立的监听。
再回 CurrPorts 刷新,同一筛选条件下的那条记录消失,状态栏变成 0 个端口。我也用 Windows 的连接查询核对过,18188 已经不再监听。

这里的 0 只表示当前筛选条件没有匹配项,不是说整台电脑没有网络连接。之前保存的文本文件仍然在,可以保留作对照。
总结
CurrPorts 适合遇到端口占用、需要核对程序连接,或者想留一份排查记录的时候使用。对于只想查清“哪个程序占着这个端口”的人,筛选后的表格比一整屏连接信息容易看懂。
它不是杀毒软件,也不是防火墙。一个程序有很多连接、出现陌生地址,或者没有版本信息,都不能单凭这一点判断有问题。查到对应程序之后,仍要结合它的用途继续排查。
这次的查看、按端口筛选、保存记录,以及停止监听后的变化都完成了。需要这类功能,可以从这个小例子熟悉界面;只想知道有没有设备蹭网,则应选局域网设备扫描工具,不必混用。
项目与下载:NirSoft · CurrPorts
作者提示含AI生成内容。作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
