【netstat命令详解】`netstat` 是一个在 Linux 和 Windows 系统中常用的网络状态查看工具,主要用于显示与 IP、TCP、UDP 和 ICMP 协议相关的连接信息。通过 `netstat`,用户可以查看当前系统的网络连接、监听端口、路由表等信息,是排查网络问题的重要工具。
一、netstat 命令基本功能总结
| 功能 | 描述 |
| 显示所有活动的网络连接 | 查看系统当前正在使用的网络连接 |
| 显示监听中的端口 | 查看哪些服务正在监听特定的端口 |
| 显示路由表 | 查看系统的路由信息 |
| 显示统计信息 | 查看 TCP、UDP、ICMP 的数据包统计 |
| 显示详细连接信息 | 包括协议类型、本地地址、远程地址、状态等 |
二、常用 netstat 命令参数说明
| 命令参数 | 说明 |
| `-a` | 显示所有活动的连接和监听端口 |
| `-n` | 以数字形式显示地址和端口(不进行域名解析) |
| `-t` | 显示 TCP 连接 |
| `-u` | 显示 UDP 连接 |
| `-l` | 显示监听中的套接字 |
| `-p` | 显示进程 ID 和程序名称(需 root 权限) |
| `-r` | 显示路由表 |
| `-s` | 显示统计信息(如 TCP、UDP、IP 等) |
| `-i` | 显示网络接口信息 |
| `-o` | 显示连接的进程 ID(Windows 下可用) |
三、常见使用场景示例
| 使用场景 | 示例命令 | 说明 |
| 查看所有 TCP 连接 | `netstat -at` | 显示所有 TCP 连接 |
| 查看所有监听端口 | `netstat -lntup` | 显示监听的 TCP 端口及对应进程 |
| 查看所有 UDP 连接 | `netstat -au` | 显示所有 UDP 连接 |
| 查看路由表 | `netstat -r` | 显示系统路由表 |
| 查看统计信息 | `netstat -s` | 显示 TCP、UDP、IP 的统计数据 |
| 查看网络接口信息 | `netstat -i` | 显示网络接口的收发数据统计 |
四、netstat 输出字段解释
以下是一个典型的 `netstat -ant` 输出示例:
```
tcp 0 0 192.168.1.10:22 192.168.1.5:54321ESTABLISHED
```
| 字段 | 说明 |
| tcp | 协议类型(TCP/UDP) |
| 0 | 接收队列中的数据量 |
| 0 | 发送队列中的数据量 |
| 192.168.1.10:22 | 本地地址和端口 |
| 192.168.1.5:54321 | 远程地址和端口 |
| ESTABLISHED | 当前连接状态 |
五、注意事项
- 在 Linux 中,部分功能需要 root 权限才能查看进程信息(如 `-p` 参数)。
- 在 Windows 中,`netstat` 的参数略有不同,例如 `-o` 可用于显示进程 ID。
- `netstat` 已逐渐被 `ss` 和 `ip` 命令替代,但在许多系统中仍广泛使用。
六、总结
`netstat` 是一个强大且实用的命令行工具,能够帮助系统管理员快速了解网络状态和连接情况。虽然随着系统发展,一些新命令如 `ss` 和 `ip` 逐步取代了它的部分功能,但 `netstat` 依然在许多场景下具有不可替代的作用。掌握其常用参数和输出格式,对于日常网络管理和故障排查非常有帮助。


