需识别listening状态的tcp端口及foreign address为空的udp端口:一、netstat -ano全量查看并记pid;二、findstr精准筛选高危端口如445/3389;三、powershell用get-nettcpconnection直接查进程名;四、资源监视器图形化验证。

要确认 Windows 10 系统当前正在监听哪些网络端口,特别是处于 LISTENING 状态的 TCP 端口和无远程地址的 UDP 端口,必须区分“已开启”和“正在监听”——只有 LISTENING 的 TCP 和 Foreign Address 为空的 UDP 才代表对外暴露风险,单纯 ESTABLISHED 或 TIME_WAIT 不构成开放端口。
用 netstat -ano 全量查看所有监听端口
这是最基础、无需安装任何工具的方法,适用于所有标准 Win10 安装环境,输出包含端口号和对应进程 PID。
按下 Win + R,输入 cmd 并回车,打开命令提示符。
右键命令提示符窗口标题栏 → 选择“以管理员身份运行”,否则可能漏掉系统级进程的监听信息。
输入命令:netstat -ano 并回车。等待几秒,完整列表会滚动输出。
重点查找 State 列为 LISTENING 的 TCP 行,以及 UDP 行中 Local Address 含冒号端口号(如 0.0.0.0:445)、但 Foreign Address 显示为 * 或空白的条目——这些才是真正开启并等待连接的端口。每行末尾数字即为 PID,务必记下。
精准筛选指定高危端口是否开启
当你怀疑 445、3389、135、139 等常见攻击入口是否被启用时,人工扫全量列表极易遗漏,直接过滤更可靠。
方法一:在已打开的管理员命令提示符中,输入 netstat -ano | findstr ":445" 回车。若返回结果,说明该端口确实在 LISTENING 状态。
方法二:如果上一步无输出,换用 netstat -ano | findstr " 445 "(前后加空格),避免匹配到 1445 或 4450 这类干扰值。
方法三:一次性查多个端口,输入 netstat -ano | findstr ":135\|:139\|:445",竖线 \| 是正则或操作符,Windows 命令行原生支持,不用额外安装工具。
注意:findstr 匹配的是整行文本,端口号前后加空格或冒号能显著降低误匹配概率,否则搜 80 可能命中 8080 或 1800。
用 PowerShell 直接定位监听端口所属进程
跳过手动查 PID → tasklist 匹配的繁琐步骤,PowerShell 能一步返回进程名,适合快速判断服务归属。
第一步:右键“开始”按钮 → 选择“Windows PowerShell(管理员)”。
第二步:执行命令:Get-NetTCPConnection -LocalPort 445 | Select-Object -ExpandProperty OwningProcess,将 445 替换为你关心的端口号。
第三步:记下返回的 PID(比如 724),立即执行:Get-Process -Id 724 | Select-Object ProcessName,Path。
输出中的 ProcessName 就是真实占用者,例如 svchost.exe 很可能关联着 SMB 服务,lsass.exe 则与 Windows 认证强相关——不要随意终止这类系统进程。
通过资源监视器图形化验证端口状态
适合不熟悉命令行、或需要实时观察端口活跃度的用户,界面直观且可刷新监控。
按 Ctrl + Shift + Esc 打开任务管理器 → 切换到“性能”选项卡 → 点击左下角“打开资源监视器”。
切换到“网络”页签 → 展开“监听端口”区域,这里会列出所有当前处于 LISTENING 状态的 TCP/UDP 端口,含协议、本地地址、端口、PID、进程名称。
点击任意列头(如“进程”)可排序,快速识别高频监听进程;勾选“显示来自所有用户的进程”确保不遗漏系统服务。











