在 Linux 系统中,可以通过以下方法查看 TCP/UDP 网络连接数,并统计不同网卡的总连接数:
1. 使用 ss 命令
ss 是现代 Linux 系统中用于查看套接字统计信息的工具。
# 查看所有 TCP 连接
ss -t | wc -l
# 查看所有 UDP 连接
ss -u | wc -l
说明:
•-t:显示 TCP 连接。
•-u:显示 UDP 连接。
•wc -l:统计行数,表示连接数。
2. 使用 netstat 命令
虽然 netstat 已被弃用,但仍然可以用来统计连接数。
# 查看所有 TCP 连接数
netstat -ant | wc -l
# 查看所有 UDP 连接数
netstat -anu | wc -l
说明:
•-a:显示所有连接。
•-n:数字格式显示地址和端口。
•-t:显示 TCP 连接。
•-u:显示 UDP 连接。
3. 按网卡统计连接数
如果需要统计每个网卡的连接数,可以结合 ss 命令和 awk 或其他工具进行筛选。例如:
# 按网卡统计 TCP 连接数
ss -t -i | grep -E “eth0|wlan0” | wc -l
# 替换网卡名称为实际名称 (如 `eth0`, `wlan0`)
4. 使用 /proc 文件系统
/proc/net/tcp 和 /proc/net/udp 文件提供了当前 TCP 和 UDP 连接的详细信息。
# 查看 TCP 连接数
cat /proc/net/tcp | wc -l
# 查看 UDP 连接数
cat /proc/net/udp | wc -l
说明:
•减去标题行可以获得实际连接数(通常为第一行)。
5. 结合网卡信息统计
可以使用 iftop 或 nload 等工具实时监控特定网卡的网络流量和连接数,或者结合以下命令筛选。
# 结合 IP 信息筛选网卡数据 (以 eth0 为例)
ss -t -n | grep -E “eth0” | wc -l
6. 使用 lsof 命令
lsof 也可以列出与网卡相关的连接。
# 查看 TCP 连接
lsof -iTCP | wc -l
# 查看 UDP 连接
lsof -iUDP | wc -l
如果有更复杂的需求,比如持续监控或按状态分类统计,可以使用脚本或监控工具(如 Prometheus + Grafana)实现。需要进一步深入分析吗?