【netstat】在Linux和Windows系统中,`netstat`(Network Statistics)是一个非常实用的命令行工具,用于显示网络连接、路由表、接口统计信息、伪装连接、多播成员等。它可以帮助系统管理员或开发者快速了解当前系统的网络状态,排查网络问题。
一、netstat 命令总结
| 功能 | 命令示例 | 说明 |
| 显示所有连接 | `netstat -a` | 显示所有活动的连接和监听端口 |
| 显示TCP连接 | `netstat -at` | 只显示TCP协议的连接 |
| 显示UDP连接 | `netstat -au` | 只显示UDP协议的连接 |
| 显示监听端口 | `netstat -l` | 显示正在监听的端口 |
| 显示进程信息 | `netstat -p` | 显示与连接相关的进程ID(PID) |
| 显示详细信息 | `netstat -v` | 显示更详细的输出信息 |
| 显示路由表 | `netstat -r` | 显示IP路由表 |
| 显示接口统计 | `netstat -i` | 显示网络接口的统计信息 |
| 显示统计信息 | `netstat -s` | 显示各种协议的统计信息 |
二、常用组合命令
| 命令 | 用途 |
| `netstat -an` | 显示所有连接,并以数字形式显示地址和端口 |
| `netstat -antp` | 显示所有TCP连接,并显示进程信息 |
| `netstat -anu` | 显示所有UDP连接 |
| `netstat -rn` | 显示路由表,不进行DNS解析 |
| `netstat -i` | 显示网络接口的状态和统计信息 |
三、典型输出解释
以下是一个简单的`netstat -an`输出示例:
```
Active Connections
ProtoLocal AddressForeign AddressState
TCP192.168.1.5:5432110.0.0.1:80ESTABLISHED
TCP192.168.1.5:5432210.0.0.2:443 TIME_WAIT
UDP192.168.1.5:53 :LISTENING
```
- Proto:协议类型(TCP/UDP)
- Local Address:本地IP和端口
- Foreign Address:远程IP和端口
- State:连接状态(如ESTABLISHED、LISTENING、TIME_WAIT)
四、使用场景
- 排查网络故障:查看是否有异常连接或监听端口。
- 监控服务状态:确认某个服务是否正常运行并监听指定端口。
- 安全审计:检查是否存在未授权的连接或隐藏的服务。
- 性能分析:通过统计信息分析网络流量和延迟情况。
五、注意事项
- 在某些系统上,`netstat`可能已被`ss`(Socket Statistics)命令取代,但`netstat`仍然广泛使用。
- 使用`netstat -p`时需要root权限才能看到进程信息。
- 输出结果可能会因系统版本不同而略有差异。
通过合理使用`netstat`,可以更高效地管理和维护网络环境,是系统管理和网络调试中的必备工具之一。


