Skip to content

cmd 之 netstat 命令

以下是 Windows 系统中 netstat 命令的完整解析,结合核心功能、参数详解及实用场景,帮助您高效管理网络连接:


🔍 一、核心功能

netstat(Network Statistics)用于显示网络连接、路由表、接口统计等网络状态信息,是诊断端口占用、排查网络问题的核心工具。


⚙️ 二、关键参数详解

参数作用示例命令输出说明
-a显示所有连接和监听端口netstat -a包含 LISTENING(侦听中)、ESTABLISHED(已连接)等状态
-n以数字形式显示地址和端口号netstat -an避免DNS解析,加速输出(如 127.0.0.1:80
-o显示进程PIDnetstat -ano最后一列为进程ID,可关联任务管理器
-p按协议筛选(TCP/UDP)netstat -p tcp仅显示TCP连接
-b显示占用端口的可执行程序netstat -ab需管理员权限,显示进程名(如 [chrome.exe]
-s按协议统计流量netstat -s显示TCP/UDP/ICMP等数据包统计
-r显示路由表netstat -r等同 route print,显示网关信息
-e显示以太网流量统计netstat -e包含接收/发送字节数、错误数

🔧 三、典型应用场景

1️⃣ 端口占用排查(最常用)

batch
netstat -ano | findstr ":80"
  • 输出示例:
    TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1234
  • 操作链:
    netstat -ano → 根据端口查PID → taskkill /pid 1234 /f 结束进程。

2️⃣ 检测异常连接

batch
netstat -ano -p tcp | findstr "ESTABLISHED"
  • 筛选已建立连接,检查可疑IP。

3️⃣ 监控服务端口状态

batch
netstat -an | findstr "LISTENING"
  • 查看所有监听端口,确保关键服务(如Web服务80端口)已启动。

4️⃣ 网络流量分析

batch
netstat -e -s
  • -e:实时流量(字节/错误包)
  • -s:协议级统计(TCP重传率、UDP丢包等)。

⚠️ 四、注意事项

  1. 权限要求:

    • -b(显示进程名)需管理员身份运行CMD。
  2. 状态码解析:

    状态含义
    LISTENING端口正在监听
    ESTABLISHED连接已建立,数据传输中
    TIME_WAIT连接关闭中,等待释放资源
    CLOSE_WAIT对方已关闭连接,本地待关闭
  3. 替代工具:

    • ss(Linux)或 Get-NetTCPConnection(PowerShell)功能更强,但 netstat 兼容性最佳。

💡 五、高效组合技巧

batch
:: 1. 查看80端口占用进程名(需管理员)
netstat -ano -p tcp | findstr ":80.*LISTENING"
tasklist | findstr "PID"
 
:: 2. 持续刷新监控(每2秒)
netstat -ano 2 | findstr "ESTABLISHED"
 
:: 3. 统计TCP连接数 
netstat -an -p tcp | find /c "ESTABLISHED"

📊 六、输出字段解析

列名说明示例值
协议TCP/UDPTCP
本地地址本机IP:端口0.0.0.0:80
外部地址远程IP:端口192.168.1.10:54321
状态连接状态ESTABLISHED
PID进程ID5678

完整参数列表可通过 netstat /? 查看。