掌握netstat:网络诊断必备命令全解析
netstat命令是Windows/Linux系统中查看网络状态的核心工具,主要用于排查网络问题。其基础语法为netstat [选项],常用参数包括:-a(显示所有连接)、-n(数字形式显示端口)、-s(协议统计信息)、-b(关联进程,需管理员权限)等。典型用法如netstat -ano查看端口占用情况,或配合findstr/grep过滤特定端口。该工具可显示TCP/UDP连接状态、路由表、以太网
·
netstat(network statistics)是 Windows 和 Linux 系统中用于显示网络连接、路由表、接口统计信息、伪装连接、多播成员等的命令行工具。它常用于排查网络问题和查看当前系统的网络状态。
一、基本语法
netstat [选项]
二、常用参数详解与完整示例说明
✅ 1. netstat —— 显示所有活动的 TCP 连接
作用:列出所有处于 Established 状态的 TCP 连接。
netstat
示例输出:
Proto Local Address Foreign Address State
TCP 192.168.1.5:50432 104.20.179.44:https ESTABLISHED
TCP 192.168.1.5:51234 142.251.42.174:https ESTABLISHED
✅ 2. netstat -a —— 显示所有连接和监听端口
作用:显示所有连接(包括监听状态)。
netstat -a
示例输出:
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 192.168.1.5:50432 104.20.179.44:https ESTABLISHED
UDP 0.0.0.0:5353 *:*
✅ 3. netstat -n —— 显示数字地址和端口号(不解析为名称)
作用:加快输出速度,避免 DNS 查询。
netstat -n
示例输出:
Proto Local Address Foreign Address State
TCP 192.168.1.5:50432 142.251.42.174:443 ESTABLISHED
UDP 0.0.0.0:5353 *:*
✅ 4. netstat -s —— 按协议显示统计信息
作用:显示 TCP、UDP、ICMP 和 IP 的统计信息。
netstat -s
示例输出:
IPv4 Statistics:
Packets Received = 1234567
Received Header Errors = 0
Received Address Errors = 0
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 123
Received Packets Delivered = 1234444
Output Requests = 987654
TCP Statistics for IPv4:
Active Opens = 1234
Passive Opens = 432
Failed Connection Attempts = 12
Reset Connections = 34
Current Connections = 5
Segments Sent = 987654
Segments Received = 1234567
Segments Retransmitted = 1234
✅ 5. netstat -e —— 显示以太网统计信息(如发送/接收的数据包数量)
netstat -e
示例输出:
Ethernet adapter 以太网:
Bytes 1234567890
Unicast packets 123456
Non-unicast packets 1234
Discards 0
Errors 0
Unknown protocols 0
✅ 6. netstat -r —— 显示路由表(Windows 中使用;Linux 中用 route print)
netstat -r
示例输出:
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.5 25
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.5 192.168.1.5 25
192.168.1.5 255.255.255.255 127.0.0.1 127.0.0.1 25
✅ 7. netstat -p <protocol> —— 指定协议过滤输出(如 tcp, udp)
netstat -p tcp
示例输出:
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 192.168.1.5:50432 142.251.42.174:https ESTABLISHED
✅ 8. netstat -b —— 显示每个连接关联的可执行程序(需要管理员权限)
netstat -b
示例输出:
Proto Local Address Foreign Address State PID
TCP 192.168.1.5:50432 142.251.42.174:https ESTABLISHED 1234
[chrome.exe]
✅ 9. netstat -o —— 显示与每个连接关联的进程 ID (PID)
netstat -o
示例输出:
Proto Local Address Foreign Address State PID
TCP 192.168.1.5:50432 142.251.42.174:https ESTABLISHED 1234
三、参数表格总结
| 参数 | 描述 | 示例 |
|---|---|---|
netstat |
默认显示已建立的 TCP 连接 | netstat |
-a |
显示所有连接和监听端口 | netstat -a |
-n |
显示数字形式的地址和端口 | netstat -n |
-s |
显示各协议的统计信息 | netstat -s |
-e |
显示以太网统计信息(收发数据包) | netstat -e |
-r |
显示路由表 | netstat -r |
-p <proto> |
指定协议(tcp, udp, icmp 等) | netstat -p tcp |
-b |
显示连接所使用的可执行文件(需管理员权限) | netstat -b |
-o |
显示连接对应的进程 ID(PID) | netstat -o |
四、组合使用示例
示例 1:查看所有 TCP 监听端口并显示 PID
netstat -ano -p tcp | findstr "LISTENING"
输出:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 4
可配合任务管理器查找 PID 对应的进程。
示例 2:查看某个端口被哪个程序占用(比如 8080)
netstat -ano | findstr :8080
输出:
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING 1234
然后使用:
tasklist | findstr 1234
获取该 PID 对应的程序名。
五、小贴士
- Windows 下运行
netstat需要管理员权限才能看到完整的进程信息。 - Linux 下
netstat已逐渐被ss和ip命令取代,但仍然广泛使用。 - 使用
findstr或grep可以对结果进行过滤。
如需进一步帮助,例如:
- 如何结合 PowerShell 脚本自动分析端口占用
- 如何在 Linux 中使用
ss替代netstat - 如何查看 UDP 多播组成员
欢迎继续提问 😊
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)