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退出監控。