netstat 命令完全指南netstat(Network Statistics)是一个用于监控网络连接、路由表、接口统计等信息的命令行工具。以下是对其功能的详细解析,涵盖常用命令、高级用法及实际场景示例。
目录一、基本语法与常用选项二、核心功能详解三、高级用法与组合命令四、实际场景示例五、跨平台差异与替代工具六、常见问题与技巧
一、基本语法与常用选项1netstat [选项] [间隔时间]
常用选项速查表
选项
功能描述
-a
显示所有连接(包括监听和非监听)
-t
仅显示 TCP 协议连接
-u
仅显示 UDP 协议连接
-l
仅显示监听状态的端口
-n
禁用域名解析(显示 IP 和端口号)
-p
显示进程 PID 和程序名(需 root 权限)
-r
显示路由表信息
-s
按协议统计网络数据包
-c
持续刷新输出(默认间隔 1 秒)
-e
显示扩展信息(如接口 MTU)
-4/-6
仅显示 IPv4 或 IPv6 连接
二、核心功能详解1. 查看所有网络连接1netstat -a
输出列说明:
Proto: 协议类型(TCP/UDP)
Recv-Q/Send-Q: 接收/发送队列大小
Local Address: 本地地址与端口
Foreign Address: 远程地址与端口
State: 连接状态(如 ESTABLISHED, LISTEN)
2. 过滤 TCP/UDP 连接12netstat -at # 仅 TCPnetstat -au # 仅 UDP
3. 显示监听端口1netstat -lntu
组合选项:
-l: 仅监听端口
-n: 数字格式
-t/-u: 协议过滤
4. 查看进程与网络关联1sudo netstat -tulnp
示例输出:
123Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
5. 网络接口统计1netstat -i
关键指标:
RX-OK/TX-OK: 成功接收/发送的数据包
RX-ERR/TX-ERR: 错误数据包数量
MTU: 最大传输单元
三、高级用法与组合命令1. 按状态统计 TCP 连接数1netstat -ant | awk '/^tcp/ {print $6}' | sort | uniq -c
输出示例:
12310 ESTABLISHED 2 LISTEN 1 TIME_WAIT
2. 查找占用特定端口的进程1sudo netstat -tulnp | grep :80
3. 实时监控网络活动1watch -n 1 "netstat -atn | grep ESTABLISHED"
4. 路由表分析1netstat -rn
关键列:
Destination: 目标网络
Gateway: 网关地址
Genmask: 子网掩码
Iface: 网络接口
四、实际场景示例场景 1: 诊断端口冲突12345# 查看 8080 端口是否被占用sudo netstat -tulnp | grep :8080# 若发现占用进程,终止该进程kill -9
场景 2: 分析网络吞吐量12# 查看接口统计(每秒刷新)netstat -ie 1
场景 3: 追踪异常连接12# 筛选所有处于 SYN_SENT 状态的连接netstat -ant | grep SYN_SENT
五、跨平台差异与替代工具1. 操作系统差异
功能
Linux
macOS
Windows
显示进程名
-p
-v
不支持
持续刷新
-c
-w <秒>
无类似参数
2. 替代工具推荐
ss (Linux): 查看文件与网络连接关联
1ss -tulnp # 替代 netstat -tulnp
lsof: 查看文件与网络连接关联
1lsof -i :80 # 查看 80 端口占用情况
六、常见问题与技巧1. TIME_WAIT 状态连接
原因: TCP 正常关闭后的等待状态,确保数据完整性。
解决: 通常无需干预,可通过调整内核参数优化。
2. netstat 与 ss 的选择
优先 ss: 在 Linux 中,ss 直接读取内核数据,速度更快。
3. 统计总连接数1netstat -ant | wc -l
4. 过滤特定 IP 的连接1netstat -an | grep 192.168.1.100