cmd 之 netstat 命令
以下是 Windows 系统中 netstat
命令的完整解析,结合核心功能、参数详解及实用场景,帮助您高效管理网络连接:
🔍 一、核心功能
netstat
(Network Statistics)用于显示网络连接、路由表、接口统计等网络状态信息,是诊断端口占用、排查网络问题的核心工具。
⚙️ 二、关键参数详解
参数 | 作用 | 示例命令 | 输出说明 |
---|---|---|---|
-a | 显示所有连接和监听端口 | netstat -a | 包含 LISTENING (侦听中)、ESTABLISHED (已连接)等状态 |
-n | 以数字形式显示地址和端口号 | netstat -an | 避免DNS解析,加速输出(如 127.0.0.1:80 ) |
-o | 显示进程PID | netstat -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丢包等)。
⚠️ 四、注意事项
权限要求:
-b
(显示进程名)需管理员身份运行CMD。
状态码解析:
状态 含义 LISTENING
端口正在监听 ESTABLISHED
连接已建立,数据传输中 TIME_WAIT
连接关闭中,等待释放资源 CLOSE_WAIT
对方已关闭连接,本地待关闭 替代工具:
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/UDP | TCP |
本地地址 | 本机IP:端口 | 0.0.0.0:80 |
外部地址 | 远程IP:端口 | 192.168.1.10:54321 |
状态 | 连接状态 | ESTABLISHED |
PID | 进程ID | 5678 |
完整参数列表可通过
netstat /?
查看。