Linux 查看实时网卡流量的方法 网速 nload sar iftop dstat

时间:2023-03-09 03:07:18
Linux 查看实时网卡流量的方法 网速 nload sar iftop dstat

1.使用nload

yum install -y gcc gcc-c++ ncurses-devel make wget

wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz

tar zxf nload-0.7.4.tar.gz && cd nload-0.7.4 && ./configure && make && make install

# nload ens33

Linux 查看实时网卡流量的方法 网速 nload sar iftop dstat

有图形界面显示,比较直观

2.sar 计量脚本

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。

yum -y install sysstat

 # cat flow
#!/bin/bash

ethn=$1 while true
do
RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
sleep 1
RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') clear
echo -e "\t RX `date +%k:%M:%S` TX" RX=$((${RX_next}-${RX_pre}))
TX=$((${TX_next}-${TX_pre})) if [[ $RX -lt 1024 ]];then
RX="${RX}B/s"
elif [[ $RX -gt 1048576 ]];then
RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
else
RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
fi if [[ $TX -lt 1024 ]];then
TX="${TX}B/s"
elif [[ $TX -gt 1048576 ]];then
TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
else
TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
fi
  echo -e "$ethn \t $RX   $TX "

done

# bash flow ens33
         RX  5:36:49 TX
ens33 259.268KB/s 2.26172KB/s

3.使用iftop

yum -y install flex byacc  libpcap ncurses ncurses-devel libpcap-devel

wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz

tar zxvf iftop-0.17.tar.gz && cd iftop-0.17

./configure && make && make install

# iftop
Linux 查看实时网卡流量的方法 网速 nload sar iftop dstat

更新 wget http://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre4.tar.gz -c


白色的就是当前网速的进度条了

4.使用dstat

yum -y install dstat

# dstat -n 
Linux 查看实时网卡流量的方法 网速 nload sar iftop dstat
recv就是下载速度,当前约为300KB/s,暂时没找到单行显示的命令

iftop虽然也有图形化,但是无效内容太多,单一需求使用nload和dstat比较方便

5.nethogs

当你想要快速了解谁占用了你的带宽时,Nethogs 是快速和容易的。以 root 身份运行,并指定要监听的接口。它显示了空闲的应用程序和进程号

# nethogs wlan0
NetHogs version 0.8.1
PID USER PROGRAM DEV SENT RECEIVED
7690 carla /usr/lib/firefox wlan0 12.494 556.580 KB/sec
5648 carla .../chromium-browser wlan0 0.052 0.038 KB/sec
TOTAL 12.546 556.618 KB/sec

  

7.vnstat

vnstat -i wlan0+eth0+eth1

$ vnstat -i wlan0
Database updated: Tue Oct 17 08:36:38 2017
wlan0 since 10/17/2017
rx: 45.27 MiB tx: 3.77 MiB total: 49.04 MiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Oct '17 45.27 MiB | 3.77 MiB | 49.04 MiB | 0.28 kbit/s
------------------------+-------------+-------------+---------------
estimated 85 MiB | 5 MiB | 90 MiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
today 45.27 MiB | 3.77 MiB | 49.04 MiB | 12.96 kbit/s
------------------------+-------------+-------------+---------------
estimated 125 MiB | 8 MiB | 133 MiB |

  

ifconfig -s

Reference:

Linux查看实时网卡流量的几种方式

Linux流量监控工具 - iftop (最全面的iftop教程)

PS:

dstat命令

优秀的 Linux 网络监视器