使用netstat -ano等命令可识别监听端口及对应进程:一、netstat -ano全量列出监听端口与pid;二、findstr精准过滤指定端口;三、tasklist与wmic查询pid对应进程名及路径;四、资源监视器图形化查看;五、powershell一键获取端口、进程及签名信息。

如果您需要确认当前系统中哪些程序正在监听网络端口,以进行安全检查,则可能是由于存在未预期的服务或潜在恶意进程在后台开放端口。以下是解决此问题的步骤:
一、使用 netstat -ano 全量列出所有监听端口及对应 PID
该命令一次性输出本机所有 TCP/UDP 连接与监听端口,并附带进程标识符(PID),是识别端口监听行为最基础且通用的手段,适用于 Win10 系统安全初筛。
1、同时按下 Win + R 键,打开“运行”对话框。
2、输入 cmd 并按回车,启动命令提示符。
3、在命令提示符中输入:netstat -ano,然后按回车。
4、在输出结果中查找 State 列显示为 LISTENING 的 TCP 行,以及 UDP 行中 Foreign Address 为空但 Local Address 含冒号后数字(如 :445)的条目。
5、对应行最右侧的数值即为该端口关联的 PID,用于后续定位具体程序。
二、用 findstr 精准过滤指定端口的监听记录
当已知某高风险端口(如 445、135、3389)可能被异常程序监听时,该方法可跳过全量扫描,直接定位是否被占用及由哪个 PID 控制,显著提升安全排查效率。
1、在已打开的命令提示符中,输入格式命令(以端口 445 为例):netstat -aon | findstr ":445"。
2、若无返回结果,尝试去掉冒号执行:netstat -aon | findstr "445"(部分 Windows 版本对格式敏感)。
3、匹配成功后,输出行末尾的数字即为该端口对应的 PID(例如 789)。
三、通过 tasklist 查询 PID 所属进程名称及完整路径
仅获知 PID 无法判断程序可信度,必须将其映射为可识别的映像名称,并进一步获取其可执行文件路径,以便核查签名、数字证书及启动来源,这是识别合法服务与可疑监听的关键验证环节。
1、在命令提示符中输入:tasklist | findstr "789"(将 789 替换为上一步查得的真实 PID)。
2、输出结果中第一列为映像名称(如 svchost.exe、lsass.exe 或 java.exe)。
3、如需查看完整路径,输入:wmic process where "ProcessId=789" get Name,ExecutablePath,CommandLine。
四、使用资源监视器图形化查看监听端口及其安全上下文
资源监视器提供免命令、实时可视化的界面,可直接展示协议类型、完整进程路径、用户账户、CPU/内存占用及网络吞吐量,支持快速识别非系统账户启动的监听行为,适合交叉验证与直观安全评估。
1、同时按下 Win + R 键,输入 resmon 并按回车,启动资源监视器。
2、点击顶部选项卡中的 网络。
3、向下滚动至 监听端口(Listening Ports) 区域,此处按端口号排序列出所有处于 LISTEN 状态的端口。
4、选中任意一行,在上方“网络活动”面板中观察其 进程 名称、PID 及 用户 字段;右键该进程名可选择“转到详细信息”,查看其完整路径与会话状态。
五、使用 PowerShell 一键获取监听端口与进程签名信息
PowerShell 支持直接调用系统级网络对象并结合安全属性查询,可绕过手动匹配 PID 的步骤,直接输出进程名称、路径、数字签名状态及证书颁发者,为安全审计提供可信依据。
1、右键点击“开始”按钮,选择 Windows PowerShell(管理员) 以提升权限运行。
2、输入以下命令(以监听端口 3389 为例):Get-NetTCPConnection -LocalPort 3389 -State Listen | ForEach-Object { $p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue; if ($p) { [PSCustomObject]@{Port=$_.LocalPort; ProcessName=$p.ProcessName; Path=$p.Path; Signed=(Get-AuthenticodeSignature $p.Path).Status} } }。
3、若需检查全部监听端口,将 -LocalPort 3389 替换为 -State Listen。










