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
等工具构建立体化监控体系。