睿诚科技协会

linux网络监控命令

Linux网络监控是系统管理和运维工作中的重要环节,通过合适的命令可以实时掌握网络状态、流量分布、连接情况等关键信息,从而快速定位网络故障、优化性能或发现异常行为,以下将详细介绍Linux系统中常用的网络监控命令,涵盖其功能、用法及实际场景,并辅以表格对比关键参数,帮助读者高效运用这些工具。

基础流量监控命令

ifconfig

ifconfig(interface configuration)是传统的网络接口配置工具,也可用于查看网络接口的基本状态,如IP地址、MAC地址、接收/发送数据包数量等,虽然在新版Linux中逐渐被ip命令替代,但在部分系统上仍可用。
常用参数

  • up/down:启用或禁用接口
  • addr:设置接口IP地址
  • netmask:设置子网掩码

示例:查看所有网络接口状态

ifconfig -a

输出说明eth0接口的RX packetsTX packets分别表示接收和发送的数据包数量,errors为错误包数,可用于初步判断接口是否异常。

ip

ipiproute2包中的核心命令,功能远超ifconfig,可查看/管理路由、网络接口、策略路由等,是当前Linux系统的主要网络管理工具。
常用子命令

  • link:查看/管理网络接口
  • addr:查看/管理IP地址
  • route:查看/管理路由表

示例:查看接口详细流量统计

ip -s link show eth0

输出说明-s参数会显示统计信息,包括接收(RX)和发送(TX)的字节数、数据包数、错误数、丢包数等,比ifconfig更详细。

netstat

netstat(network statistics)用于显示网络连接、路由表、接口统计等信息,是经典的网络监控工具,尤其在排查端口占用和连接状态时常用。
常用参数

  • -t:TCP连接
  • -u:UDP连接
  • -n:以数字形式显示地址和端口(避免DNS解析)
  • -p:显示进程ID和名称
  • -l:仅显示监听端口

示例:查看所有监听的TCP端口及对应进程

netstat -tulnp

输出说明Local Address列显示监听地址和端口,PID/Program name列对应进程,可用于发现异常服务或端口占用。

ss

ss(socket statistics)是netstat的替代品,速度更快,尤其在连接数较多时优势明显,默认显示TCP和UDP连接,支持更丰富的过滤条件。
常用参数

  • -t:TCP连接
  • -u:UDP连接
  • -l:监听端口
  • -n:数字形式
  • -p:显示进程
  • state:过滤连接状态(如ESTABLISTEN

示例:查看所有已建立的TCP连接

ss -t -a state established

输出说明Recv-QSend-Q分别表示接收队列和发送队列的字节数,若值持续较大,可能存在网络拥塞。

实时流量监控命令

sar

sar(System Activity Reporter)是sysstat包中的工具,可收集、报告和存储系统活动信息,包括网络流量、CPU使用率、磁盘I/O等,通过-n参数监控网络接口。
常用参数

  • -n DEV:显示网络设备统计
  • -n EDEV:显示网络设备错误
  • -n TCP:显示TCP统计
  • -i:设置采样间隔(秒)

示例:每2秒采样一次,监控eth0的流量

sar -n DEV -i 2

输出说明rxkB/stxkB/s分别表示接收和发送的流量(KB/s),rxerr/stxerr/s为错误包数/秒,可用于长期流量趋势分析。

nethogs

nethogs按进程实时显示网络带宽使用情况,适合定位占用带宽的“元凶”,它支持按进程排序,并区分上传和下载流量。
安装sudo apt install nethogs(Debian/Ubuntu)或sudo yum install nethogs(CentOS/RHEL)
用法

sudo nethogs  # 默认监控所有接口
sudo nethogs eth0  # 指定接口

输出说明PID为进程ID,Program name为进程名,RXTX分别为实时下载和上传速度(KB/s),若某进程流量异常,可结合kill命令终止。

iftop

iftop是一款基于文本的实时流量监控工具,以条形图形式显示各主机的带宽使用情况,支持按源/目标IP或端口排序。
安装sudo apt install iftop(Debian/Ubuntu)
用法

sudo iftop -i eth0  # 指定接口

交互操作

  • n:显示主机名而非IP
  • s:显示源端口
  • d:显示目标端口
  • t:切换显示模式(上传/下载/总流量)
    输出说明:顶部=><=分别表示发送和接收的总带宽,中间列表显示各主机的实时流量,条形越长表示带宽占用越高。

vnstat

vnstat是一款轻量级的网络流量监控工具,通过后台服务持续记录接口流量,支持按天、周、月、年统计历史数据,适合长期流量分析。
安装与初始化

sudo apt install vnstat
sudo vnstat --update -i eth0  # 更新接口信息

常用命令

vnstat -i eth0  # 显示当天流量
vnstat -d -i eth0  # 显示每日流量
vnstat -m -i eth0  # 显示每月流量

输出说明rxtx分别表示接收和发送的总流量,total为合计,单位默认为MB或GB,适合查看流量使用趋势。

网络连通性与性能监控命令

ping

ping通过发送ICMP回显请求测试网络连通性,并计算往返时间(RTT),判断目标主机是否可达及网络延迟。
常用参数

  • -c:指定发送包数量(如-c 4发送4个包)
  • -i:发送间隔秒数(默认1秒)
  • -W:等待响应的超时时间(秒)

示例:测试与baidu.com的连通性

ping -c 4 baidu.com

输出说明time=后的数值为RTT(毫秒),若出现Request timeout,表示目标主机未响应或网络不通。

traceroute/traceroute6

traceroute追踪数据包到目标主机的路径,显示中间经过的路由器节点,帮助定位网络延迟或丢包节点。
常用参数

  • -n:以数字形式显示IP(避免DNS解析)
  • -I:使用ICMP包(默认UDP)
  • -T:使用TCP包

示例:追踪到google.com的路径

traceroute -n google.com

输出说明:每行显示一个路由节点(IP)和3次探测的RTT,若某节点响应异常(如),可能是该节点故障或防火墙拦截。

mtr

mtraceroute(mtr)是pingtraceroute的结合体,实时显示每跳路由的丢包率和延迟,比单独使用traceroute更直观。
安装sudo apt install mtr(Debian/Ubuntu)
用法

mtr -n google.com  # -n避免DNS解析

输出说明Loss%为丢包率,Snt为发送包数,LastAvgBestWorst分别为最近、平均、最小、最大RTT,若某跳Loss%较高,说明该节点存在问题。

iperf3

iperf3是一款专业的网络性能测试工具,可测试TCP/UDP带宽、延迟、抖动等参数,适用于评估网络吞吐量。
安装sudo apt install iperf3(Debian/Ubuntu)
服务端模式(在目标主机运行):

iperf3 -s -p 5201  # 默认端口5201

客户端模式(在测试主机运行):

iperf3 -c <服务端IP> -p 5201 -t 10  # 测试10秒TCP带宽
iperf3 -c <服务端IP> -u -b 100M -p 5201  # 测试UDP带宽(限速100Mbps)

输出说明Receiver端的bits/sec为实际接收带宽,sender端的为发送带宽,UDP测试会显示丢包率(Lost_datagram)。

常用网络监控命令对比

命令 主要功能 适用场景 优点 缺点
ifconfig 查看接口基本状态 快速检查IP、MAC、数据包总数 简单易用 功能单一,统计信息有限
ip 管理/查看接口、路由、策略 综合网络管理,详细统计信息 功能全面,替代ifconfig 参数较多,学习成本略高
netstat 查看连接、端口、路由表 排查端口占用,分析连接状态 支持多种协议和过滤条件 连接数多时速度慢,逐渐被ss替代
ss 查看socket连接,实时监控 高并发场景下的连接监控 速度快,支持更多过滤状态 输出格式较复杂
sar 系统活动统计(含网络流量) 长期流量趋势分析,历史数据回溯 支持数据存储,可生成报表 需安装sysstat,实时性一般
nethogs 按进程监控带宽 定位占用带宽的进程 进程级细分,实时性强 仅支持实时监控,无历史数据
iftop 实时流量监控(主机级) 接口流量分布,异常流量排查 可视化强,支持排序 仅支持实时监控,无统计功能
vnstat 长期流量统计(按日/周/月/年) 流量使用趋势分析,流量计费 轻量级,支持历史数据查询 实时性差,需后台服务支持
ping 测试网络连通性 快速判断目标可达性及延迟 简单直接,系统自带 仅支持ICMP,可能被防火墙拦截
traceroute 追踪网络路径 定位延迟或丢包节点 显示详细路径 单次测试,实时性差
mtr 实时路径监控(ping+traceroute) 动态分析网络路径质量 结合两者优势,实时性强 输出信息较多,需一定解读能力
iperf3 网络性能测试(带宽/延迟/丢包) 评估网络吞吐量,优化链路 专业测试,支持TCP/UDP 需两端配合,仅用于性能测试

相关问答FAQs

Q1:如何快速定位占用网络带宽最高的进程?
A:可结合nethogsiftop工具,首先使用sudo nethogs按进程查看实时带宽占用,找到流量异常的进程PID;若需进一步分析接口流量分布,可运行sudo iftop -i <接口名>,查看各主机的带宽使用情况,若发现恶意进程,可通过kill <PID>终止,并结合tophtop查看进程详情。

Q2:为什么ping命令有时显示“Request timeout”,但网络实际可用?
A:ping依赖ICMP协议,部分服务器或路由器为安全起见会禁用ICMP响应(如防火墙规则拦截),此时即使网络连通,ping也会超时,网络拥塞、目标主机负载过高或中间设备丢包也可能导致超时,建议结合traceroutemtr进一步排查,若traceroute能显示路径但ping超时,可能是目标主机禁用ICMP;若路径某跳丢包,则说明中间网络存在问题。

分享:
扫描分享到社交APP
上一篇
下一篇