系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

netstat

列出 TCP/UDP 连接、监听端口和协议统计,按 PID 找进程。

补充说明

netstat 读取本机网络栈的连接表、监听端口、以太网计数和路由表。最常用的组合是 -a(全部连接和监听)、-n(数字形式,不做名称解析)、-o(显示 PID),再加 -p tcp 或 -p udp 过滤协议。它适合回答“谁在监听 443、这个连接属于哪个进程、为什么端口没起来”。

边界:它是某一瞬间的快照,不是实时监控;PID 可能被复用,-b 查可执行文件又慢又需要管理员权限。UDP 没有连接状态,-a 才会显示监听项。路由表用 -r 查看,但等价于 route print;更结构化的结果用 PowerShell 的 Get-NetTCPConnection。

Windows 10/11 都保留 netstat。IPv4 和 IPv6 是分开的,-p tcp 不会显示 tcpv6;双栈服务常同时监听 0.0.0.0 和 [::]。输出列名会随系统语言变化,脚本不要解析列名。

常用示例

# 1. 全部连接和监听,数字形式,带进程 PID
C:\> netstat -ano

# 2. 只看 443 端口;先定位 PID,再用 tasklist 查进程
C:\> netstat -ano | findstr :443

# 3. 显示可执行文件,需管理员权限,且可能较慢
C:\> netstat -abno

# 4. 查看路由表,等价于 route print
C:\> netstat -r

# 5. 查看 TCP 协议统计,判断重传、失败连接是否异常
C:\> netstat -s -p tcp

# 6. 每 5 秒刷新一次以太网计数,观察错误和丢弃
C:\> netstat -e 5

# 7. 只看 IPv6 TCP 连接,双栈排障时避免漏看
C:\> netstat -ano -p tcpv6

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. netstat -ano 的三个参数各解决什么问题?为什么排障时通常一起用?
  2. 看到大量 TIME_WAIT 需要处理吗?CLOSE_WAIT 多说明什么?
  3. 为什么 netstat -p tcp 可能漏掉 IPv6 的监听端口?
答案
  1. -a 显示全部连接和监听,-n 用数字避免解析延迟,-o 给出 PID;组合后能快速把端口和进程对应起来。
  2. TIME_WAIT 通常是正常的主动关闭残留;CLOSE_WAIT 多说明应用没有关闭连接,需查应用。
  3. -p tcp 只选 IPv4 TCP,IPv6 是 tcpv6;双栈环境要同时看或省略 -p。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令