云服务器 ECS Linux查看系统中网络流量的情况

  • A+
所属分类:Linux
高性能企业级服务器首台5折

Linux 中有各种查看网卡流量的工具,比如 sar、iftop、nethogs 等。它们可以从不同的纬度来分析系统中流量信息,本文进行简要介绍。

sar 的使用


sar 可以从网络接口层面来分析数据包的收发情况、错误信息等。

使用 sar 来监控网络流量的常用命令为:

  1. 1
    <span class="pln">sar </span><span class="pun">-</span><span class="pln">n DEV </span><span class="pun">[</span><span class="pln">interval</span><span class="pun">]</span> <span class="pun">[</span><span class="pln">count</span><span class="pun">]参数</span><span class="pln"> interval </span><span class="pun">是统计间隔,</span><span class="pln">count </span><span class="pun">是统计次数。</span>

示例:

使用以下命令,可以使用 sar 每两秒统计一次网络接口的活动状况,连续报告 3 次:

  1. 1
    <span class="pln">sar </span><span class="pun">-</span><span class="pln">n DEV </span><span class="lit">2</span> <span class="lit">2</span><span class="com"><span class="hljs-comment"># 输出结果包括按字节数/包数统计的,当前/平均网络接口利用率。Linux 2.6.32-573.12.1.el6.x86</span></span><em><span class="com"><span class="hljs-comment">64 (centos6.6)     06/23/2016     _x86_64</span></span></em><span class="com"><span class="hljs-comment">    (8 CPU)09:58:34 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s09:58:36 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.0009:58:36 AM      eth0      2.50      0.00      0.15      0.00      0.00      0.00      0.0009:58:36 AM      eth1      2.50      1.50      0.19      0.18      0.00      0.00      0.0009:58:36 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.0009:58:36 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s09:58:38 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.0009:58:38 AM      eth0      1.00      0.00      0.06      0.00      0.00      0.00      0.0009:58:38 AM      eth1      2.00      2.00      0.17      0.40      0.00      0.00      0.0009:58:38 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/sAverage:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00Average:         eth0      1.75      0.00      0.10      0.00      0.00      0.00      0.00Average:         eth1      2.25      1.75      0.18      0.29      0.00      0.00      0.00Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00</span></span>

回显结果主要字段说明:

  •  IFACE:网络接口名称
  • rxpck/s、txpck/s:每秒收/发的数据包数量
  • rxkB/s、txkB/s:每秒收/发的字节数,以kB/s为单位
  • rxcmp/s、txcmp/s:每秒收/发的压缩过的数据包数量
  • rxmcst/s:每秒收到的多播数据包

iftop 的使用


iftop 命令常见用法如下:

  1. 1
    <span class="pln">iftop </span><span class="pun">[-</span><span class="pln">i interface</span><span class="pun">]参数</span> <span class="pun">-</span><span class="pln">i </span><span class="pun">后跟的</span><span class="pln"> interface </span><span class="pun">表示网络接口名,比如</span><span class="pln"> eth0</span><span class="pun">、</span><span class="pln">eth1 </span><span class="pun">等等。如果不通过</span> <span class="pun">-</span><span class="pln">i </span><span class="pun">参数指定接口名,则默认检测第一块网卡的使用情况,对于</span><span class="pln"> ECS</span><span class="pun">,通常为内网网卡</span><span class="pln"> eth0</span><span class="pun">。</span>

示例:

使用 iftop -i eth1 指令可以查看 ECS 服务器公网网卡的带宽使用情况。示例输出如下

  1. 1
                                              <span class="lit">12.5Kb</span>                                    <span class="lit">25.0Kb</span>                                    <span class="lit">37.5Kb</span>                                    <span class="lit">50.0Kb</span>                               <span class="lit">62.5Kbmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq172.16</span><span class="pun">.</span><span class="lit">2.226</span>                                                                                <span class="pun">=&gt;</span> <span class="lit">42.120</span><span class="pun">.</span><span class="lit">74.111</span>                                                                                 <span class="lit">880b</span>   <span class="lit">1.47Kb</span>  <span class="lit">1.34Kb</span>                                                                                            <span class="pun">&lt;=</span>                                                                                               <span class="lit">160b</span>    <span class="lit">221b</span>    <span class="lit">175b172.16</span><span class="pun">.</span><span class="lit">2.226</span>                                                                                <span class="pun">=&gt;</span> <span class="lit">111.13</span><span class="pun">.</span><span class="lit">100.92</span>                                                                                 <span class="lit">672b</span>    <span class="lit">672b</span>    <span class="lit">672b</span>                                                                                            <span class="pun">&lt;=</span>                                                                                               <span class="lit">672b</span>    <span class="lit">605b</span>    <span class="lit">638b172.16</span><span class="pun">.</span><span class="lit">2.226</span>                                                                                <span class="pun">=&gt;</span><span class="pln"> public1</span><span class="pun">.</span><span class="pln">alidns</span><span class="pun">.</span><span class="pln">com                                                                              </span><span class="lit">0b</span>     <span class="lit">57b</span>     <span class="lit">14b</span>                                                                                            <span class="pun">&lt;=</span>                                                                                                 <span class="lit">0b</span>    <span class="lit">114b</span>     <span class="lit">28b172.16</span><span class="pun">.</span><span class="lit">2.226</span>                                                                                <span class="pun">=&gt;</span> <span class="lit">67.131</span><span class="pun">.</span><span class="lit">44.50</span>                                                                                    <span class="lit">0b</span>     <span class="lit">42b</span>     <span class="lit">10b</span>                                                                                            <span class="pun">&lt;=</span>                                                                                                 <span class="lit">0b</span>     <span class="lit">42b</span>     <span class="lit">10b172.16</span><span class="pun">.</span><span class="lit">3.255</span>                                                                                <span class="pun">=&gt;</span> <span class="lit">172.16</span><span class="pun">.</span><span class="lit">2.208</span>                                                                                    <span class="lit">0b</span>      <span class="lit">0b</span>      <span class="lit">0b</span>                                                                                            <span class="pun">&lt;=</span>                                                                                                 <span class="lit">0b</span>      <span class="lit">0b</span>     <span class="lit">46b172.16</span><span class="pun">.</span><span class="lit">3.255</span>                                                                                <span class="pun">=&gt;</span> <span class="lit">172.16</span><span class="pun">.</span><span class="lit">2.212</span>                                                                                    <span class="lit">0b</span>      <span class="lit">0b</span>      <span class="lit">0b</span>                                                                                            <span class="pun">&lt;=</span>                                                                                                 <span class="lit">0b</span>      <span class="lit">0b</span>     <span class="lit">14b255.255</span><span class="pun">.</span><span class="lit">255.255</span>                                                                             <span class="pun">=&gt;</span> <span class="lit">172.16</span><span class="pun">.</span><span class="lit">2.212</span>                                                                                    <span class="lit">0b</span>      <span class="lit">0b</span>      <span class="lit">0b</span>                                                                                            <span class="pun">&lt;=</span>                                                                                                 <span class="lit">0b</span>      <span class="lit">0b</span>     <span class="lit">14bqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqTX</span><span class="pun">:</span><span class="pln">             cum</span><span class="pun">:</span>   <span class="lit">59.7KB</span><span class="pln">   peak</span><span class="pun">:</span>    <span class="lit">2.83Kb</span><span class="pln">                                                                                                                                     rates</span><span class="pun">:</span>   <span class="lit">1.52Kb</span>  <span class="lit">2.22Kb</span>  <span class="lit">2.02KbRX</span><span class="pun">:</span>                    <span class="lit">26.4KB</span>           <span class="lit">1.97Kb</span>                                                                                                                                               <span class="lit">832b</span>    <span class="lit">981b</span>    <span class="lit">925bTOTAL</span><span class="pun">:</span>                 <span class="lit">86.1KB</span>           <span class="lit">4.80Kb</span>                                                                                                                                              <span class="lit">2.33Kb</span>  <span class="lit">3.18Kb</span>  <span class="lit">2.92Kb</span>                                                                     <span class="pun">&lt;=</span>                                                                                                 <span class="lit">0b</span>    <span class="lit">288b</span>    <span class="lit">288b</span>

回显结果说明:

  • 第一行:带宽使用情况显示。
  • 中间部分为外部连接列表,即记录了哪些 IP 正在和本机的网络连接。
  • 中间部分靠右侧部分是实时流量信息,分别是该访问 IP 连接到本机 2 秒、10 秒和 40 秒的平均流量。
  • => 代表发送数据,<= 代表接收数据 。
  • 底部三行:
    • 第一列:TX 表示发送流量,RX 表示接收流量,TOTAL 表示总流量。
    • 第二列 cum:表示第一列各种情况的总流量。
    • 第三列 peak:表示第一列各种情况的流量峰值。
    • 第四列 rates:表示第一列各种情况 2 秒、10 秒、40 秒内的平均流量。

注意:iftop 的流量显示单位是Mb,这里的 b 是比特(bit),不是字节(byte)。而 ifstat 显示的单位是 KB 中的 B 是字节。1 byte = 8 bit。

另外,进入 iftop 界面后,可以通过按下相应的字母快捷按键,来对显示结果进行调整。常见操作命令如下(区分大小写):

  • h 切换是否显示帮助。
  • n 切换显示本机的 IP 或主机名。
  • s 切换是否显示本机的 host 信息。
  • d 切换是否显示远端目标主机的 host 信息。
  • t 切换显示格式为 2 行 /1 行 / 只显示发送流量 / 只显示接收流量。
  • N 切换显示端口号或端口服务名称。
  • S 切换是否显示本机的端口信息。
  • D 切换是否显示远端目标主机的端口信息。
  • p 切换是否显示端口信息。
  • P 切换暂停/继续显示。
  • b 切换是否显示平均流量图形条。
  • B 切换计算2秒或10秒或40秒内的平均流量。
  • T 切换是否显示每个连接的总流量。
  • l 打开屏幕过滤功能,输入要过滤的字符。比如输入相应 IP 地址,回车后,屏幕就只显示这个 IP 相关的流量信息。
  • L 切换显示画面上边的刻度;刻度不同,流量图形条会有变化。
  • j 或按 k 向上或向下滚动屏幕显示的连接记录。
  • 1 或 2 或 3 根据右侧显示的三列流量数据进行排序。
  • < 根据左边的本机名或 IP 排序。
  • > 根据远端目标主机的主机名或 IP 排序。
  • o 切换是否固定只显示当前的连接。
  • f 编辑过滤代码。
  • ! 调用 shell 命令。
  • q 退出。

nethogs 的使用


Nethogs 是一款开源的网络流量监控工具,可用于显示每个进程的带宽占用情况。这样可以更直观定位异常流量的来源。Nethogs 支持 IPv4 和 IPv6协议,支持本地网卡及 PPP 连接。

Nethogs工具的安装方法请参阅其官方帮助文档,本文不再详述。

 

安装完毕,直接输入 nethogs 启动工具即可。不带任何参数时,nethogs 默认监控 eth0。用户可以通过 ifconfig 等指令核实具体哪个网络接口(比如 eth1、eth0)对应公网网卡。

 

示例输出:

  1. 1
    <span class="pln">nethogs eth1</span><span class="com"><span class="hljs-comment"># 输出结果如下:NetHogs version 0.8.0  PID USER     PROGRAM                                 DEV        SENT      RECEIVED9951  root     wget                                    eth1      7.253     322.344 KB/sec9670  root     sshd: root@pts/0,pts/1                  eth1      1.328       0.199 KB/sec?     root     ..16.2.226:33300-122.224.153.106:48167             0.000       0.000 KB/sec?     root     unknown TCP                                        0.000       0.000 KB/sec  TOTAL                                                           8.581     322.543 KB/sec </span></span>

 

回显结果说明:

  • PID 列表示相应流量关联程序的进程号。
  • USER 列表示相应进程的所属用户。
  • PROGRAM 列表示程序的具体执行路径。
  • DEV 列当前监控的网络接口名称。
  • Sent 列表示相应进程已经发送的数据流量。
  • Received 列表示程序已经接收的数据流量。

 

 

在 nethogs 监控界面,按下 s 可以按 Sent 列进行排序,按下 r 可以按 Received 列进行排序,按下 m 可以切换不同的统计单位显示 (kb/s, kb, b,mb)。

nethogs 默认的监控间隔是 1 秒,用户可以通过 -d 参数来设定监控间隔。例如设定监控间隔为5秒,可以输入:

  1. 1
    <span class="pln">nethogs </span><span class="pun">-</span><span class="pln">d </span><span class="lit">5</span>

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: