1. Linux网络诊断利器:netstat命令深度解析
在Linux系统管理和网络故障排查中,netstat命令就像外科医生的听诊器,能让我们直观地观察系统的网络连接状态。这个诞生于BSD系统的工具经过多年发展,已成为Linux管理员日常必备的瑞士军刀。无论是检查开放端口、追踪异常连接,还是分析网络流量统计,netstat都能提供关键数据支撑。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. netstat命令核心功能解析
2.1 基础语法与常用参数
netstat的基本命令格式为:
bash复制netstat [选项]
最常用的参数组合是:
bash复制netstat -tulnp
其中:
- -t:显示TCP连接
- -u:显示UDP连接
- -l:仅显示监听端口
- -n:以数字形式显示地址和端口
- -p:显示进程信息
经验提示:在生产环境中务必加上-n参数,可以避免耗时的DNS反向解析,显著提升命令响应速度。
2.2 连接状态解读
执行netstat -ant后,常见的连接状态包括:
- ESTABLISHED:已建立的活跃连接
- LISTEN:服务监听状态
- TIME_WAIT:连接关闭后的等待状态
- CLOSE_WAIT:远程端已关闭,本地等待关闭
通过分析这些状态可以判断:
- 是否存在异常持久连接(大量ESTABLISHED)
- 服务是否正常监听(LISTEN状态)
- 是否有连接泄漏(堆积的TIME_WAIT)
3. 实战应用场景
3.1 服务端口检查
要确认Nginx是否在80端口监听:
bash复制netstat -tlnp | grep ':80'
输出示例:
code复制tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx
3.2 连接数统计
统计各状态的TCP连接数:
bash复制netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
典型输出:
code复制ESTABLISHED 25
TIME_WAIT 18
LISTEN 5
3.3 网络流量分析
使用-s参数查看协议统计:
