ifstat,iftop

文章目錄

ifstat

Ifstat is a little tool to report interface activity, 
just like iostat/vmstat do for other system statistics.
  • ifstat 工具是個網絡接口監測工具,比較簡單看網絡流量
    默認的使用方式:ifstat
andrew@andrew-Thurley:~$ ifstat
      enp4s0             wlp3s0b1     
 KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.00      2.29     28.13
    0.00      0.00      0.64      0.00
    0.00      0.00      0.77      0.00
    0.00      0.00      0.64      0.09
ifstat 默認不監測環回接口的數據,監測所有網絡接口的時候使用:ifstat -a

andrew@andrew-Thurley:~$ ifstat -a
        lo                enp4s0             wlp3s0b1     
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.00      0.00      0.00      0.56      1.31
    0.00      0.00      0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00      0.00      0.00

ifstat -l監聽含有環回地址的網卡活躍流量

andrew@andrew-Thurley:~$ ifstat -l
        lo                enp4s0             wlp3s0b1     
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.00      0.00      0.00      0.29      0.45
    0.00      0.00      0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00      0.00      0.09
    0.00      0.00      0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00      0.00      0.09

ifstat -z 忽略網卡up但是沒有流量的網卡

andrew@andrew-Thurley:~$ ifstat -z
     wlp3s0b1     
 KB/s in  KB/s out
    0.00      0.00
    0.00      0.00
    0.00      0.00

ifstat -i指定監聽的網卡
Specifies the list of interfaces to monitor, separated by commas (if an interface name has a comma, it can be escaped with '\'). Multiple instances of the options are added together.

andrew@andrew-Thurley:~$ ifstat -i lo
        lo        
 KB/s in  KB/s out
    0.00      0.00
    0.00      0.00
    0.00      0.00

ifstat -s/d
Specifies a driver to use to gather stats and an eventual option for this driver separated of the driver name by a colon.


andrew@andrew-Thurley:~$ sudo ifstat -d proc
      enp4s0             wlp3s0b1     
 KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.00      0.04      0.09
    0.00      0.00      0.06      0.08
    0.00      0.00      0.15      0.00
    0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00

ifstat -t `增加時間戳

andrew@andrew-Thurley:~$ ifstat -t
  Time          enp4s0             wlp3s0b1     
HH:MM:SS   KB/s in  KB/s out   KB/s in  KB/s out
21:54:23      0.00      0.00      0.00      0.00
21:54:24      0.00      0.00      0.15      0.00
21:54:25      0.00      0.00      0.00      0.28
21:54:26      0.00      0.00      0.00      0.10
21:54:27      0.00      0.00      0.12      0.09

ifstat -T 報告所有網卡的網絡吞吐量的和

andrew@andrew-Thurley:~$ ifstat -T
      enp4s0             wlp3s0b1             Total       
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
    0.00      0.00      0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00      0.00      0.00
    0.00      0.00      0.00      0.00      0.00      0.00
    0.00      0.00      0.04      0.06      0.04      0.06

-h  Displays a short help message.
-n  Turns off displaying the header periodically.
 -A  Disables use of interface indexes: by default, when polling mechanism is index based (snmp, ifmib), ifstat remembers
           indexes of monitored interfaces to poll only them. However, if interfaces indexes change often (new interfaces added, etc),
           you might loose some stats, hence this flag. Note that if you ask ifstat to monitor a non existent interface, it will poll
           all interfaces until it finds the requested one (regardless of this flag) so you can poll for an interface that goes up and
           down.

-w  Uses fixed width columns, instead of enlarging them if needed for interfaces names to fit.

       -W  Wrap lines that are larger than the terminal width (implies -w). Wrapped lines are prefixed with a cycling letter to ease
           reading.

       -S  Keep stats updated on the same line if possible (no scrolling nor wrapping).

       -b  Reports bandwith in kbits/sec instead of kbytes/sec.

       -q  Quiet mode, warnings are not printed.

       -v  Displays version and the compiled-in drivers.

iftop

`iftop`是一款實時流量監測工具,監測tcp/ip的連接
`iftop - display bandwidth usage on an interface by host`

參數

 iftop -h | [-nNpblBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]

直接顯示IP不進行DNS反解析

 sudo iftop -n -i wlp3s0b1

不對網絡端口號進行解析

sudo iftop -N -i wlp3s0b1

監測指定網段

sudo iftop  -F 192.168.0.0/255.255.255.0  -i wlp3s0b1
       -p     Run in promiscuous mode, so that traffic which does not pass directly through the specified interface is also counted.
       -P     Turn on port display.
       -l     Display and count datagrams addressed to or from link-local IPv6 addresses.  The default is not to display that address
              category.

       -b     Don't display bar graphs of traffic.

       -m limit
              Set the upper limit for the bandwidth scale.  Specified as a number with a 'K', 'M' or 'G' suffix.

       -B     Display bandwidth rates in bytes/sec rather than bits/sec.

       -i interface
              Listen to packets on interface.

       -f filter code
              Use filter code to select the packets to count. Only IP packets are ever counted, so the specified code is evaluated as
              (filter code) and ip.

       -F net/mask
              Specifies  an IPv4 network for traffic analysis.  If specified, iftop will only include packets flowing in to or out of
              the given network, and packet direction is determined relative to the network boundary, rather than to  the  interface.
              You  may specify mask as a dotted quad, such as /255.255.255.0, or as a single number specifying the number of bits set
              in the netmask, such as /24.

       -G net6/mask6
              Specifies an IPv6 network for traffic analysis. The value of mask6 can be given as a prefix length or  as  a  numerical
              address string for more compound bitmasking.
     -c config file
              Specifies  an  alternate  config  file.   If  not  specified,  iftop will use ~/.iftoprc if it exists.  See below for a
              description of config files

       -t text output mode
              Use text interface without ncurses and print the output to STDOUT.

DISPLAY
       When running, iftop uses the whole screen to display network usage. At the top of the display is a logarithmic scale  for  the
       bar graph which gives a visual indication of traffic.

       The main part of the display lists, for each pair of hosts, the rate at which data has been sent and received over the preced‐
       ing 2, 10 and 40 second intervals. The direction of data flow is indicated by arrows, <= and =>. For instance,

       foo.example.com  =>  bar.example.com      1Kb  500b   100b
                        <=                       2Mb    2Mb    2Mb

       shows, on the first line, traffic from foo.example.com to bar.example.com; in the preceding 2 seconds, this averaged  1Kbit/s,
       around  half  that  amount  over  the  preceding 10s, and a fifth of that over the whole of the last 40s. During each of those
       intervals, the data sent in the other direction was about 2Mbit/s. On the actual display, part of each  line  is  inverted  to
       give  a visual indication of the 10s average of traffic.  You might expect to see something like this where host foo is making
       repeated HTTP requests to bar, which is sending data back which saturates a 2Mbit/s link.

       By default, the pairs of hosts responsible for the most traffic (10 second average) are displayed at the top of the list.

       At the bottom of the display, various totals are shown, including peak traffic over the last 40s,  total  traffic  transferred
       (after filtering), and total transfer rates averaged over 2s, 10s and 40s.

SOURCE / DEST AGGREGATION
       By  pressing  s  or d while iftop is running, all traffic for each source or destination will be aggregated together.  This is
       most useful when iftop is run in promiscuous mode, or is run on a gateway machine.

PORT DISPLAY
       S or D toggle the display of source and destination ports respectively. p will toggle port display on/off.

DISPLAY TYPE
       t cycles through the four line display modes; the default 2-line display, with sent and received traffic  on  separate  lines,
       and 3 1-line displays, with sent, received, or total traffic shown.
DISPLAY ORDER
       By default, the display is ordered according to the 10s average (2nd column).  By pressing 1, 2 or 3 it is possible to sort by
       the 1st, 2nd or 3rd column.   By pressing < or > the display will be sorted by source or destination hostname respectively.

DISPLAY FILTERING
       l allows you to enter a POSIX extended regular expression that will be used to filter hostnames shown in the display.  This is
       a  good way to quickly limit what is shown on the display.  Note that this happens at a much later stage than filter code, and
       does not affect what is actually captured.  Display filters DO NOT affect the totals at the bottom of the screen.

PAUSE DISPLAY / FREEZE ORDER
       P will pause the current display.

       o will freeze the current screen order.  This has the side effect that traffic between hosts not shown on the  screen  at  the
       time will not be shown at all, although it will be included in the totals at the bottom of the screen.

SCROLL DISPLAY
       j and k will scroll the display of hosts.  This feature is most useful when the display order is frozen (see above).

FILTER CODE
       f allows you to edit the filter code whilst iftop running.  This can lead to some unexpected behaviour.

CONFIG FILE
       iftop  can  read its configuration from a config file.  If the -c option is not specified, iftop will attempt to read its con‐
       figuration from ~/.iftoprc, if it exists.  Any command line options specified will override settings in the config file.

       The config file consists of one configuration directive per line.  Each directive is a name value pair, for example:

       interface: eth0

       sets the network interface.  The following config directives are supported:

       interface: if
              Sets the network interface to if.
 dns-resolution: (yes|no)
              Controls reverse lookup of IP addresses.

       port-resolution: (yes|no)
              Controls conversion of port numbers to service names.

       filter-code: bpf
              Sets the filter code to bpf.

       show-bars: (yes|no)
              Controls display of bar graphs.

       promiscuous: (yes|no)
              Puts the interface into promiscuous mode.

       port-display: (off|source-only|destination-only|on)
              Controls display of port numbers.

       link-local: (yes|no)
              Determines displaying of link-local IPv6 addresses.

       hide-source: (yes|no)
              Hides source host names.

       hide-destination: (yes|no)
              Hides destination host names.

       use-bytes: (yes|no)
              Use bytes for bandwidth display, rather than bits.

       sort: (2s|10s|40s|source|destination)
              Sets which column is used to sort the display.

       line-display: (two-line|one-line-both|one-line-sent|one-line-received)
              Controls the appearance of each item in the display.

       show-totals: (yes|no)
              Shows cumulative total for each item.

       log-scale: (yes|no)
              Use a logarithmic scale for bar graphs.
  max-bandwidth: bw
              Fixes the maximum for the bar graph scale to bw, e.g. "10M". Note that the value has to always be in  bits,  regardless
              if the option to display in bytes has been chosen.

       net-filter: net/mask
              Defines an IP network boundary for determining packet direction.

       net-filter6: net6/mask6
              Defines an IPv6 network boundary for determining packet direction.

       screen-filter: regexp
              Sets a regular expression to filter screen output.

QUIRKS (aka they're features, not bugs)
       There  are  some  circumstances  in which iftop may not do what you expect.  In most cases what it is doing is logical, and we
       believe it is correct behaviour, although I'm happy to hear reasoned arguments for alternative behaviour.

       Totals don't add up

       There are several reasons why the totals may not appear to add up.  The most obvious is having a screen filter in  effect,  or
       screen ordering frozen.  In this case some captured information is not being shown to you, but is included in the totals.

       A  more subtle explanation comes about when running in promiscuous mode without specifying a -F option.  In this case there is
       no easy way to assign the direction of traffic between two third parties.  For the purposes of the main display this  is  done
       in an arbitrary fashion (by ordering of IP addresses), but for the sake of totals all traffic between other hosts is accounted
       as incoming, because that's what it is from the point of view of your interface.  The -F option allows you to specify an arbi‐
       trary network boundary, and to show traffic flowing across it.

       Peak totals don't add up

       Again,  this is a feature.  The peak sent and peak received didn't necessarily happen at the same time.  The peak total is the
       maximum of sent plus received in each captured time division.

       Changing the filter code doesn't seem to work

       Give it time.  Changing the filter code affects what is captured from the time that you entered it, but most of what is on the
       display  is based on some fraction of the last 40s window of capturing.  After changing the filter there may be entries on the
       display that are disallowed by the current filter for up to 40s.  DISPLAY FILTERING has immediate effect and does  not  affect
       what is captured.
FILES
       ~/.iftoprc
              Configuration file for iftop.


進入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退出監控。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章