netstat 工具手册速览
一、工具基础介绍
1.1 核心功能定位
netstat(Network Statistics)是系统内置网络诊断工具,用于监控TCP/IP协议栈状态,提供以下核心功能:
- 网络连接监控(TCP/UDP端口状态)
- 路由表查看与调试
- 网络接口统计信息
- 协议统计(IP/ICMP/TCP/UDP)
- 多播组成员关系查询
1.2 版本差异说明
| 系统平台 | 典型路径 | 特性差异 |
|---|---|---|
| Linux | /bin/netstat | 支持--numeric-ports参数 |
| Windows | C:\Windows\System32\ | 集成-b参数显示进程详情 |
| macOS | /usr/sbin/netstat | 兼容BSD语法 |
二、核心参数详解
2.1 基础显示模式
| 参数 | 功能说明 | 示例输出 |
|---|---|---|
| -a | 显示所有连接(含监听) | tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN |
| -t | 仅显示TCP协议 | tcp6 1 0 ::1:631 :::* LISTEN |
| -u | 仅显示UDP协议 | udp 0 0 192.168.1.100:123 0.0.0.0:* |
| -w | 显示RAW套接字(Linux特有) | raw6 0 0 :::58 :::* 7 |
2.2 高级过滤选项
| 参数组合 | 功能说明 | 典型用例 |
|---|---|---|
| -n --numeric | 禁用域名解析,显示数字地址 | netstat -antp |
| -p --program | 显示进程PID/名称(需root权限) | `netstat -tulnp |
| -e --extend | 显示扩展统计信息 | netstat -e 显示接口错误计数 |
| -c --continuous | 持续刷新输出(类似top命令) | netstat -ct 1 每秒刷新TCP状态 |
2.3 路由相关参数
| 参数 | 功能说明 | 示例输出 |
|---|---|---|
| -r | 显示内核路由表 | Kernel IP routing table |
| -n | 显示数字地址(替代主机名) | 192.168.1.0/24 dev eth0 |
| -F | 显示FIB路由信息(Linux特有) | netstat -rF |
三、典型应用场景
3.1 端口占用排查
# 查找80端口占用进程
netstat -tulnp | grep 80
# 输出解析:
tcp6 0 0 :::80 :::* LISTEN 1234/nginx: master
- 字段说明:Proto(协议)/Local Address(本地地址)/PID/Program(进程名)
- 解决方案:根据PID使用
kill -9 PID终止进程或调整服务配置
3.2 连接状态分析
# 统计TCP各状态连接数
netstat -ant | awk '{print $6}' | sort | uniq -c
# 典型输出:
5 ESTABLISHED
1 LISTEN
2 TIME_WAIT
- 关键状态:
ESTABLISHED:活跃连接TIME_WAIT:等待2MSL关闭CLOSE_WAIT:被动关闭方未释放资源
3.3 路由表调试
# 显示完整路由表
netstat -rn
# 输出解析:
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
- 路由标记:
- UG:网关路由(Gateway)
- U:活动路由
- H:目标主机路由
3.4 接口统计监控
# 显示网络接口吞吐量
netstat -i
# 输出解析:
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 125342 0 0 0 89214 0 0 0 BMRU
- 关键指标:
- RX-OK/TX-OK:成功接收/发送包数
- RX-ERR/TX-ERR:错误包计数
- Collisions:冲突次数(以太网环境)
四、性能优化技巧
4.1 实时监控模式
# 持续监控TCP连接变化
watch -n 1 "netstat -ant | grep ESTABLISHED | wc -l"
# 输出示例:
Every 1.0s: 12 ESTABLISHED
- 应用场景:压力测试期间监控并发连接数
- 扩展工具:
iftop/nload实现带宽实时监控
4.2 批量处理脚本
# 生成活跃连接快照
netstat -ant > connections.log
# 统计高频连接IP
awk '{print $5}' connections.log | cut -d: -f1 | sort | uniq -c | sort -nr
- 安全分析:识别异常连接源IP
- 自动化集成:配合
cron定时任务生成日报表
4.3 替代工具对比
| 工具名称 | 优势特性 | 典型用例 |
|---|---|---|
| ss | 更快更详细的socket统计 | ss -s 显示内存使用情况 |
| ip | 现代路由管理工具 | ip route show table all |
| lsof | 显示打开文件与网络连接关联 | lsof -i :25 排查SMTP端口占用 |
| nmap | 网络探测与安全审计 | nmap -sT localhost 端口扫描 |
五、故障排查指南
5.1 常见问题诊断
-
连接泄漏:持续增长的
TIME_WAIT状态netstat -ant | grep TIME_WAIT | wc -l解决方案:调整内核参数
net.ipv4.tcp_max_tw_buckets -
端口耗尽:
netstat -an显示大量CLOSE_WAIT
解决方案:检查应用层资源释放逻辑 -
路由异常:
netstat -rn显示重复路由条目
解决方案:使用ip route flush清理冲突路由
5.2 高级调试技巧
# 显示TCP内存使用统计
netstat --tcp -s
# 输出片段:
123456789 packets received
1000 packets to unknown port received
...
- 关键指标:
packets retransmitted:重传包数(网络质量指标)connections reset:异常终止连接数
5.3 Windows专属参数
| 参数 | 功能说明 | 示例输出 |
|---|---|---|
| -b | 显示可执行文件路径 | [java.exe] TCP 0.0.0.0:8080 ... |
| -o | 显示进程ID | TCP 192.168.1.100:139 0.0.0.0:0 LISTENING 4 |
| -f | 显示完全限定域名(FQDN) | netstat -af TCP |
本手册系统阐述了netstat工具的核心功能、参数详解及实战案例,为网络管理员、系统工程师及安全运维人员提供全场景诊断指南。随着现代网络监控工具的发展,建议结合ss、ip等工具构建立体化监控体系。
549

被折叠的 条评论
为什么被折叠?



