必须先执行netstat -ano获取所有监听端口及pid,再用findstr筛选指定端口,或用管理员权限powershell命令get-nettcpconnection直接输出端口、协议、进程名与路径,最后可用resmon图形化验证。

当你需要确认 Windows 10 系统中哪些程序正在后台监听网络连接,比如排查远程桌面(3389)、HTTP(80)、数据库(3306)等端口是否被意外开启,就必须获取所有处于 LISTENING 状态的 TCP 端口及其关联的进程标识符(PID),这是安全审计和故障诊断的第一步。
用 netstat -ano 全量列出所有监听端口及 PID
这一步是基础操作,必须先执行,否则后续筛选无从谈起。netstat -ano 命令会一次性输出系统全部网络连接快照,包括所有监听中的 TCP 和 UDP 端口,以及每个连接绑定的 PID——这个数字是后续定位程序的关键桥梁。
同时按下 Win + R 键,输入 cmd,按回车启动命令提示符。
在窗口中直接输入:netstat -ano,然后回车。等待几秒,直到滚动停止、光标重新出现。
重点查看输出中 State 列值为 LISTENING 的 TCP 行(例如 0.0.0.0:445 或 127.0.0.1:8080),这些就是当前正在监听的本地端口;对应行最右侧的数字即为该端口所属进程的 PID。
注意:UDP 行没有 State 字段,只需找 Local Address 中含冒号且 Foreign Address 为 * 或空的条目(如 0.0.0.0:53),它们也属于开放监听状态。
用 findstr 快速筛选指定端口(可选但推荐)
如果你只关心某个具体端口(比如 80、3389、445),人工扫屏极易漏看,用 findstr 过滤能瞬间定位,避免误判已关闭或未监听的端口。
方法一:在上一步打开的命令提示符中,直接输入:netstat -aon | findstr ":3389"(将 3389 替换为你想查的端口号,保留冒号)。
方法二:若上一步无返回,说明系统可能不严格匹配冒号格式,立即尝试:netstat -aon | findstr "3389"(去掉冒号,仅匹配数字)。
只要端口确实在监听,两种方式必有一种能返回完整一行;该行末尾的数字就是它的 PID,记下来即可进入下一步。
用 PowerShell 一键获取端口、协议、进程名与路径
这是最省事的方法,跳过 PID 查找和映射环节,直接输出可读性最强的结果。尤其适合要确认进程是否可信(比如是不是 svchost.exe 下的合法服务,还是某个陌生路径下的可疑程序)。
第一步:右键“开始”按钮 → 选择 Windows Terminal(管理员) 或 Windows PowerShell(管理员)。
第二步:粘贴并执行以下命令(以查询所有监听中的 TCP 端口为例):
Get-NetTCPConnection -State Listen | ForEach-Object { $pid = $_.OwningProcess; [PSCustomObject]@{Port=$_.LocalPort; Protocol=$_.Protocol; State=$_.State; ProcessName=(Get-Process -Id $pid -ErrorAction SilentlyContinue).Name; PID=$pid; Path=(Get-Process -Id $pid -ErrorAction SilentlyContinue).Path} }
第三步:若只想查某一个端口(如 80),把 -State Listen 换成 -LocalPort 80 即可,输出字段包含 Port、ProcessName、Path,一目了然。
【注意】PowerShell 命令需以管理员身份运行,否则部分系统进程(如 lsass.exe、winlogon.exe)的路径信息将为空。
用资源监视器图形化验证监听端口详情
如果你更习惯看界面,或者需要交叉核对命令行结果是否准确,资源监视器能实时展示每个监听端口绑定的完整进程路径、用户名、TCP/UDP 协议类型,甚至当前网络活动速率,比纯命令行更直观。
按下 Win + R,输入 resmon,回车启动资源监视器。
切换到 网络 选项卡 → 展开下方 监听端口 区域。
列表自动按端口号排序,每行显示协议、端口、进程名称、PID、用户、完整路径;点击列标题可任意排序,双击某行还能直接跳转到“详细信息”页高亮对应进程。











