【linuxnetstat命令详解】`netstat` 是 Linux 系统中一个非常实用的网络状态查看工具,用于显示与 IP、TCP、UDP 和 ICMP 协议相关的连接信息。它可以用来监控系统上的网络连接、路由表、接口统计等信息,是排查网络问题的重要工具之一。
一、总结
`netstat` 命令可以显示当前系统的网络连接状态,包括监听端口、已建立的连接、接收和发送的数据包数量等。它支持多种选项,可以根据不同的需求输出不同的信息。以下是对 `netstat` 命令常用参数的总结:
| 参数 | 功能说明 | 
| `-a` | 显示所有活动的连接和监听端口 | 
| `-n` | 以数字形式显示地址和端口号(不进行 DNS 解析) | 
| `-t` | 显示 TCP 协议的连接 | 
| `-u` | 显示 UDP 协议的连接 | 
| `-l` | 显示监听中的端口 | 
| `-p` | 显示进程 ID 和进程名称(需 root 权限) | 
| `-r` | 显示路由表信息 | 
| `-s` | 显示每个协议的统计信息 | 
二、常用命令示例
| 命令 | 功能 | 
| `netstat -a` | 显示所有活动连接和监听端口 | 
| `netstat -an` | 显示所有连接和监听端口(数字形式) | 
| `netstat -at` | 显示所有 TCP 连接 | 
| `netstat -au` | 显示所有 UDP 连接 | 
| `netstat -lnt` | 显示监听中的 TCP 端口 | 
| `netstat -lnup` | 显示监听中的 UDP 端口及对应进程 | 
| `netstat -r` | 显示路由表 | 
| `netstat -s` | 显示各协议的统计信息 | 
三、输出字段解释
当运行 `netstat -ant` 时,输出通常包含以下字段:
| 字段 | 含义 | 
| Proto | 协议类型(如 tcp、udp) | 
| Recv-Q | 接收队列中等待处理的数据量 | 
| Send-Q | 发送队列中等待发送的数据量 | 
| Local Address | 本机的 IP 地址和端口号 | 
| Foreign Address | 对端的 IP 地址和端口号 | 
| State | 连接状态(如 LISTEN、ESTABLISHED、CLOSE_WAIT 等) | 
四、使用场景
1. 检查服务是否正常运行:例如,检查 Web 服务(80/443)是否在监听。
2. 排查连接问题:查看是否有大量处于 `CLOSE_WAIT` 或 `TIME_WAIT` 的连接。
3. 分析网络流量:通过统计信息判断是否有异常数据包。
4. 查找占用端口的进程:结合 `-p` 参数查看具体进程。
五、注意事项
- 使用 `-p` 参数需要 root 权限,否则无法看到进程信息。
- 部分系统可能默认未安装 `netstat`,可使用 `yum install net-tools` 或 `apt-get install net-tools` 安装。
- 在较新的 Linux 发行版中,`ss` 命令逐渐替代了 `netstat`,功能更强大且性能更好。
六、小结
`netstat` 是一个功能强大但简单的命令行工具,适合用于网络调试和问题排查。虽然其功能已经被 `ss` 和 `ip` 命令部分取代,但在实际工作中仍然具有很高的实用性。掌握它的基本用法,有助于快速定位网络相关的问题。

 
                            
