netstat 命令用于显示网络连接、路由表、网络接口和网络协议的统计信息。以下是其常用参数的详细介绍,基于不同场景的应用示例也一并提供。
基本参数说明
- -a:显示所有活动的 TCP 连接以及计算机正在侦听的 TCP 和 UDP 端口(包括已建立的连接和监听状态)。
- -n:以数字形式显示地址和端口号(例如,直接显示 IP 地址而非域名),避免 DNS 解析延迟。
- -r:显示 IP 路由表的内容,类似于
route print命令。 - -s:按协议显示统计信息(如 TCP、UDP、ICMP 的数据包发送/接收数量),用于排查网络性能问题。
进阶参数示例
- -b:显示创建每个连接或侦听端口所涉及的可执行文件(进程名)。注意:此操作可能耗时且需要管理员权限。
- -e:显示以太网统计信息(如发送/接收的字节数和错误数),可与
-s组合使用查看详细流量数据。 - -o:显示活动的 TCP 连接并附加进程 ID(PID),便于在任务管理器中定位对应应用程序。
- -p
:指定协议类型(如 tcp、udp、ipv6)来过滤显示结果,例如netstat -p tcp仅查看 TCP 连接。
实用场景示例
- 查看所有端口占用情况:
netstat -an会列出所有连接和监听端口,结合-n可避免域名解析。 - 检查特定端口是否被占用:
netstat -an | findstr :<端口号>(Windows)或netstat -an | grep <端口号>(Linux),例如netstat -an | grep :80查看 80 端口状态。 - 实时监控网络连接:
netstat -o 5会每 5 秒刷新一次活动连接及 PID,按 Ctrl+C 停止。 - 诊断协议问题:
netstat -s -p tcp显示 TCP 协议的详细统计,帮助识别丢包或重传问题。
状态码说明
连接状态列(如 State)常见值包括:
- LISTENING:等待远程连接请求。
- ESTABLISHED:已建立有效连接。
- CLOSE_WAIT:等待本地用户关闭连接。
- TIME_WAIT:等待足够时间确保远程 TCP 接收关闭确认。
这些参数可根据需求组合使用,例如 netstat -an -o 同时显示数字格式的连接和进程 ID。如果遇到权限问题(如 -b 参数),建议以管理员身份运行命令行工具。