Linux网络流量监控工具

简介: Linux网络流量监控工具

前言

我们的很多服务大都是部署在Linux服务器上的,我们在生产中可能会遇见很多问题,如网络慢,访问卡等,那么就需要对Linux的机器的网络流量进行监控,这样我们才能分析排查问题。接下来介绍几个比较好用的小工具,iftop和nethogs,用于排查linux机器的网络问题。

iftop

iftop用于网卡机器级别的流量监控,可以实时显示当前机器和其他主机之间的网络流量。

安装

    yum install -y iftop

    安装完成后可以通过iftop命令启动,iftop默认监控第一个可用网卡的流量,可以通过参数指定要监控的网卡比如iftop -i eth0。网卡名称可以通过ifconfig获取。启动后的界面如下:

    最上面的是一个类似于刻度尺,通过下面的机器的进度条表示和某个机器网络流量的大小。

    VM_0_9_centos  =>    169.254.0.4    3.19Kb  2.90Kb  3.17Kb
                   <=                   1.47Kb  1.480Kb 1.48Kb

    每两行代表和每个host之间不同方向的网络流量,第一列是源主机,第二列是目标主机,第三列分别是最近2s, 10s和40s的平均网络流量。默认按10s的网络流量进行排序。

    TX:  cumm:   82.5KB   peak:   67.3Kb    rates:    5.02Kb   5.69Kb  16.0Kb
    RX:          21.1KB           10.1Kb              1.74Kb   2.19Kb  3.99Kb
    TOTAL:       104KB            77.4Kb              6.76Kb   7.88Kb  20.0Kb

    底部显示全局的流量统计,cumm表示运行至今的累计情况,peak表示峰值数据, rates 表示最近2s,10s和40s秒平均网络流量。

    快捷键

    在监控界面可以通过快捷键来调整监控显示项。可以通过h或者?查看支持查快捷键用法。

    主机显示

     n - 是否开启DNS解析,显示机器名或者IP    
     s - 是否源主机    
     d - 是否显示目标主机
     t - 流量统计显示模式,两行显示,一行显示,只显示发送流量或者接收流量 

    端口显示

    N - toggle service resolution          
    S - 是否显示源主机端口           
    D - 是否显示目标主机端口
    p - 是否显示端口号 

    排序

    1/2/3 - 根据2s,10s和40s的流量排序
     < - 按源主机进行排序
     > - 按目标主机排序
     o - 冻结当前排序,避免机器排序出现变化,方便观察固定主机流量

    其他

     P - 暂停刷新
     h - 显示帮助
     b - 是否显示进度条和刻度尺
     B - 循环切换按2s,10s, 40s显示进度条
     T - 显示或者隐藏统计总量
     j/k - 滚动显示
     f - 编辑过滤器代码
     l - 屏幕文本搜索过滤
     ! - 执行Shell命令
     q - 退出

    其中过滤器代码参考pcap formatted filters

    语法

    iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]
       -h                  显示本帮助(Help)信息
       -n                  不进行主机名(hostName)查找
       -N                  不将端口号(port Number)转换成对应的服务 to services
       -p                  混合(Promiscuous)模式(显示网络相关的其他主机信息)
       -b                  不显示流量图形条(Bar)
       -B                  以字节(Byte)为单位,显示带宽(Bandwidth);默认以比特(bit)显示的
       -i interface        监控的网卡接口(interface)
       -f filter code      包统计时,使用过滤码;默认:无,只统计IP包
       -F net/mask         显示特定IPv4网段的进出流量(Flow);如# iftop -F 10.10.1.0/24
       -G net6/mask6       显示特定IPv6网段的进出流量(Flow)
       -l                  显示并统计IPv6本地(Local)链接的流量(默认:关)
       -P                  显示端口(Port)
       -m limit            设置显示界面上侧的带宽刻度(liMit)
       -c config file      指定配置(Config)文件
       -t                  使用不带窗口菜单的文本(text)接口
       排序:
       -o 2s                Sort by first column (2s traffic average)
       -o 10s               Sort by second column (10s traffic average) [default]
       -o 40s               Sort by third column (40s traffic average)
       -o source            Sort by source address
       -o destination       Sort by destination address
       The following options are only available in combination with -t
       -s num              print one single text output afer num seconds, then quit
       -L num              number of lines to print

    nethogs

    nethogs用于监控统计每个进程的带宽使用

    安装

      yum install -y nethogs

      1. nethogs 使用说明和例子

      1)用法:nethogs[-v][-h][-b][-d秒][-v模式][-c计数][-t][-p][-s][设备[设备…]]

      -V:打印版本。
      -H:打印这个帮助。
      -B:BugHunt模式-表示跟踪模式。
      -D:更新刷新率的延迟(秒)。默认值为1。
      -V:查看模式(0=kb/s,1=total kb,2=total b,3=total mb)。默认值为0。
      -C:更新次数。默认值为0(无限制)。
      -TraceMod。
      -P:在混乱模式下嗅探(不推荐)。
      -S:按发送列对输出进行排序。
      -A:监控所有设备,甚至是回送/停止的设备。

      设备:要监视的设备。默认值是除环回之外的所有已启动和正在运行的接口

       

      NetHogs运行时,按:

      q:退出
      S:按发送流量排序
      R:按接收流量排序
      M:在总计(kb、b、m b)和kb/s模式之间切换

      2)使用例子

      [root@ald8 ~]# nethogs

      [root@ald8 ~]# nethogs eth0 eth1        

      // 假如有多个网卡要同时查看,可以网卡名依次写上即可

      [root@ald8 ~]# nethogs eth1              

      //  指定查看某一个网卡


      相关文章
      |
      6月前
      |
      安全 Linux 网络安全
      Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
      Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
      193 0
      Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
      |
      7月前
      |
      运维 Linux 开发者
      Linux系统中使用Python的ping3库进行网络连通性测试
      以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
      489 18
      |
      7月前
      |
      网络协议 关系型数据库 Linux
      【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
      在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
      377 5
      |
      8月前
      |
      Web App开发 网络协议 Linux
      【Linux】网络基础
      TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
      865 5
      |
      10月前
      |
      安全 网络协议 Linux
      Linux网络应用层协议展示:HTTP与HTTPS
      此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
      299 18
      |
      8月前
      |
      网络协议 Linux 开发者
      深入Linux中UDP网络通信机制编程探索
      以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
      203 0
      |
      10月前
      |
      Linux 数据安全/隐私保护
      使用Linux命令行接入无线网络Wi-Fi的示例。
      现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
      840 12
      |
      10月前
      |
      安全 Ubuntu Linux
      Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
      Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
      437 0
      Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
      |
      12月前
      |
      Ubuntu Linux
      Linux系统管理:服务器时间与网络时间同步技巧。
      以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
      2018 20
      |
      JSON 运维 Ubuntu
      Linux下如何使用Curl进行网络请求
      希望这篇文章能帮助您在Linux下更好地使用Curl进行网络请求。如有疑问,请随时提问!
      681 10