一文详解Linux系统监控网络状况的各种方法17认证网

正规官方授权
更专业・更权威

一文详解Linux系统监控网络状况的各种方法

在 Linux 系统中,监控网络状况的方法丰富多样,涵盖实时流量统计、连接状态分析、带宽占用排查、网络延迟测试等多个维度。以下从基础工具、实时监控、连接分析、进程级监控、抓包工具、性能统计、自动化监控等方面详细介绍:

一、基础网络信息查看

1. 查看网络接口状态

ifconfig 或 ip addr
功能:显示网卡 IP 地址、MAC 地址、子网掩码、流量统计等。
示例:

ifconfig eth0          # 查看指定接口信息
ip addr show ens33     # 现代Linux常用`ip`命令

ethtool
功能:查询 / 配置网卡驱动参数(如速率、双工模式)。
示例:

ethtool eth0          # 查看网卡速率和双工模式
ethtool -s eth0 speed 1000 duplex full  # 设置千兆全双工

2. 路由与 DNS 配置

route 或 ip route
功能:查看 / 管理路由表。
示例:

route -n          # 以数字形式显示路由表
ip route add default via 192.168.1.1 dev eth0  # 添加默认路由

nslookup/dig
功能:诊断 DNS 解析问题。
示例:

dig baidu.com @8.8.8.8  # 使用Google DNS解析域名

二、实时网络流量监控

1. iftop:实时流量可视化

功能:按接口显示实时带宽使用情况,支持按 IP 排序,类似top的交互界面。
安装:

apt-get install iftop  # Debian/Ubuntu
yum install iftop      # CentOS/RHEL

常用参数:

iftop -i eth0          # 监控指定接口
iftop -P                # 显示端口对应的进程名

2. nload:分上下行流量监控

功能:实时显示网卡上下行流量,支持多接口切换,界面简洁。
安装:

apt-get install nload

示例:

nload eth0            # 监控eth0的上下行流量

3. speedtest-cli:测速工具

功能:基于Speedtest.net测试网络带宽(需联网)。
安装:

pip install speedtest-cli

示例:

speedtest-cli --server 1234  # 指定测速服务器ID

三、网络连接与端口监控

1. netstat:经典连接分析工具

功能:显示所有网络连接、路由表、端口状态等,支持 TCP/UDP 协议。
常用参数:

netstat -antp        # -a(所有连接)-n(数字形式)-t(TCP)-u(UDP)-p(进程)
netstat -ltnp | grep 80  # 查看监听80端口的进程

2. ss:更高效的netstat替代工具

功能:基于netlink套接字接口,比netstat更快,支持过滤和统计。
常用参数:

ss -t state established  # 查看已建立的TCP连接
ss -lup | grep ssh       # 查看监听SSH端口的UDP进程

3. lsof:查看进程打开的网络连接

功能:列出所有打开的文件描述符,包括网络套接字。
示例:

lsof -i :80            # 查看占用80端口的进程
lsof -i TCP:ESTABLISHED  # 查看已建立连接的进程

四、进程级网络流量监控

1. nethogs:按进程统计流量

功能:实时显示各进程的网络带宽占用,支持按接口过滤。
安装:

apt-get install nethogs

示例:

nethogs eth0          # 监控eth0接口各进程的流量

2. pidstat:结合进程的网络统计

功能:属于sysstat工具包,可按进程显示网络接收 / 发送数据量。
安装:

apt-get install sysstat

示例:

pidstat -d 5          # 每5秒显示进程的磁盘和网络I/O

五、网络抓包与协议分析

1. tcpdump:命令行抓包工具

功能:捕获指定接口的网络数据包,支持协议、端口、IP 等过滤。
常用示例:

tcpdump -i eth0 port 80 -w http.pcap  # 抓取80端口数据包并保存为pcap文件
tcpdump -nn 'tcp dst port 22 and (src host 192.168.1.100)'  # 过滤SSH连接

2. Wireshark:图形化抓包分析

功能:通过tcpdump抓包后,用 Wireshark 图形界面分析协议细节(需在 Linux 桌面环境或远程转发)。
安装:

apt-get install wireshark

使用:

tcpdump -i eth0 -w - | wireshark -k -i -  # 实时管道传输至Wireshark

六、网络性能与延迟测试

1. ping/ping6:测试连通性与延迟

功能:发送 ICMP 包测试目标主机的可达性和往返时间(RTT)。
示例:

ping -c 5 192.168.1.1  # 发送5个ICMP包
ping6 ipv6.google.com   # 测试IPv6连通性

2. traceroute/mtr:路由追踪与诊断

traceroute:显示数据包经过的路由节点。

traceroute baidu.com

mtr:结合ping和traceroute,实时显示各节点的丢包率和延迟。

mtr --report-wide baidu.com  # 生成详细路由报告

3. iperf3:吞吐量测试

功能:测量网络带宽、延迟、丢包率(需客户端 – 服务器模式)。
安装:

apt-get install iperf3

示例:

服务器端:iperf3 -s
客户端:iperf3 -c server_ip -t 30 (测试 30 秒吞吐量)

七、系统级网络性能统计

1. sar:系统活动报告

功能:统计网络接口的流量、错误包、丢包率等,支持历史数据查询(需sysstat工具包)。
常用命令:

sar -n DEV 5 2        # 每5秒采样2次,显示各接口流量
sar -n TCP,ETCP 10    # 监控TCP连接状态统计(如重传、超时)

2. /proc文件系统

功能:通过内核虚拟文件获取网络统计信息。
关键文件:
/proc/net/dev:各接口的字节数、包数统计。
cat /proc/net/dev | grep eth0  # 查看eth0的接收/发送数据量

/proc/net/tcp:TCP 连接状态(可解析为人类可读格式)。

 

八、自动化监控与可视化

1. Shell 脚本定时统计

示例:每分钟记录一次 eth0 的流量并生成日志

while true; do
    timestamp=$(date +"%Y-%m-%d %H:%M:%S")
    rx=$(cat /proc/net/dev | awk '/eth0/ {print $2}')
    tx=$(cat /proc/net/dev | awk '/eth0/ {print $10}')
    echo "$timestamp,$rx,$tx" >> network.log
    sleep 60
done

2. Prometheus + Grafana

功能:通过node_exporter采集 Linux 节点的网络指标(如带宽、连接数),用 Grafana 可视化。
配置步骤:
安装node_exporter:

wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz

在 Prometheus 配置中添加采集任务。
在 Grafana 中导入网络监控仪表盘(如 ID 13100)。

3. Cacti/Zabbix

传统监控工具:Cacti 通过 SNMP 采集流量数据并生成趋势图;Zabbix 支持自定义脚本监控网络延迟、端口状态等。

九、网络故障排查常用流程

基础检查:

ifconfig确认网卡状态(是否 UP,IP 是否正确)。
ping测试网关和外部网络连通性。

流量分析:

iftop/nload查看是否有异常流量占用。
nethogs定位耗流量的进程。

连接排查:

ss查看端口监听状态,确认服务是否正常运行。
tcpdump抓包分析协议交互是否异常(如 SYN Flood 攻击)。

性能优化:

通过ethtool调整网卡参数(如 RSS、GRO/TSO)。
检查/proc/sys/net/ipv4下的内核参数(如tcp_max_tw_buckets)。

 

总结:工具选择建议

实时流量监控:iftop(可视化)、nload(简洁分上下行)。
连接分析:ss(高效)、lsof(进程关联)。
进程级流量:nethogs(实时排序)、pidstat(历史统计)。
抓包诊断:tcpdump(命令行)、Wireshark(图形化)。
长期趋势:sar(系统日志)、Prometheus+Grafana(可视化)。
根据具体场景组合使用这些工具,可有效监控和优化 Linux 系统的网络性能。

想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

未经允许不得转载:17认证网 » 一文详解Linux系统监控网络状况的各种方法
分享到:0

评论已关闭。

400-663-6632
咨询老师
咨询老师
咨询老师