Linux流量監(jiān)控工具 - iftop (最全面的iftop教程)
在類Unix系統(tǒng)中可以使用top查看系統(tǒng)資源、進(jìn)程、內(nèi)存占用等信息。查看網(wǎng)絡(luò)狀態(tài)可以使用netstat、nmap等工具。若要查看實時的網(wǎng)絡(luò)流量,監(jiān)控TCP/IP連接等,則可以使用iftop。
一、iftop是什么?
iftop是類似于top的實時流量監(jiān)控工具。
官方網(wǎng)站:http://www.ex-parrot.com/~pdw/iftop/
二、iftop有什么用?
iftop可以用來監(jiān)控網(wǎng)卡的實時流量(可以指定網(wǎng)段)、反向解析IP、顯示端口信息等,詳細(xì)的將會在后面的使用參數(shù)中說明。
三、安裝iftop
安裝方法1、編譯安裝
如果采用編譯安裝可以到iftop官網(wǎng)下載最新的源碼包。
安裝前需要已經(jīng)安裝好基本的編譯所需的環(huán)境,比如make、gcc、autoconf等。安裝iftop還需要安裝libpcap和libcurses。
CentOS上安裝所需依賴包:
yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
Debian上安裝所需依賴包:
apt-get install flex byacc libpcap0.8 libncurses5
下載iftop
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
安裝方法2:(懶人辦法,最簡單)
直接省略上面的步驟
按https://www.vpser.net/manage/centos-rhel-linux-third-party-source-epel.html這個教程安裝好EPEL,直接yum install iftop
Debian系統(tǒng) 運(yùn)行:apt-get install iftop
四、運(yùn)行iftop
直接運(yùn)行: iftop
效果如下圖:

五、相關(guān)參數(shù)及說明
1、iftop界面相關(guān)說明
界面上面顯示的是類似刻度尺的刻度范圍,為顯示流量圖形的長條作標(biāo)尺用的。
中間的<= =>這兩個左右箭頭,表示的是流量的方向。
TX:發(fā)送流量
RX:接收流量
TOTAL:總流量
Cumm:運(yùn)行iftop到目前時間的總流量
peak:流量峰值
rates:分別表示過去 2s 10s 40s 的平均流量
2、iftop相關(guān)參數(shù)
常用的參數(shù)
-i設(shè)定監(jiān)測的網(wǎng)卡,如:# iftop -i eth1
-B 以bytes為單位顯示流量(默認(rèn)是bits),如:# iftop -B
-n使host信息默認(rèn)直接都顯示IP,如:# iftop -n
-N使端口信息默認(rèn)直接都顯示端口號,如: # iftop -N
-F顯示特定網(wǎng)段的進(jìn)出流量,如# iftop -F 10.10.1.0/24或#?iftop -F 10.10.1.0/255.255.255.0
-h(display this message),幫助,顯示參數(shù)信息
-p使用這個參數(shù)后,中間的列表顯示的本地主機(jī)信息,出現(xiàn)了本機(jī)以外的IP信息;
-b使流量圖形條默認(rèn)就顯示;
-f這個暫時還不太會用,過濾計算包用的;
-P使host信息及端口信息默認(rèn)就都顯示;
-m設(shè)置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:# iftop -m100M
進(jìn)入iftop畫面后的一些操作命令(注意大小寫)
按h切換是否顯示幫助;
按n切換顯示本機(jī)的IP或主機(jī)名;
按s切換是否顯示本機(jī)的host信息;
按d切換是否顯示遠(yuǎn)端目標(biāo)主機(jī)的host信息;
按t切換顯示格式為2行/1行/只顯示發(fā)送流量/只顯示接收流量;
按N切換顯示端口號或端口服務(wù)名稱;
按S切換是否顯示本機(jī)的端口信息;
按D切換是否顯示遠(yuǎn)端目標(biāo)主機(jī)的端口信息;
按p切換是否顯示端口信息;
按P切換暫停/繼續(xù)顯示;
按b切換是否顯示平均流量圖形條;
按B切換計算2秒或10秒或40秒內(nèi)的平均流量;
按T切換是否顯示每個連接的總流量;
按l打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車后,屏幕就只顯示這個IP相關(guān)的流量信息;
按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化;
按j或按k可以向上或向下滾動屏幕顯示的連接記錄;
按1或2或3可以根據(jù)右側(cè)顯示的三列流量數(shù)據(jù)進(jìn)行排序;
按<根據(jù)左邊的本機(jī)名或IP排序;
按>根據(jù)遠(yuǎn)端目標(biāo)主機(jī)的主機(jī)名或IP排序;
按o切換是否固定只顯示當(dāng)前的連接;
按f可以編輯過濾代碼,這是翻譯過來的說法,我還沒用過這個!
按!可以使用shell命令,這個沒用過!沒搞明白啥命令在這好用呢!
按q退出監(jiān)控。
六、常見問題
1、make: yacc: Command not found
make: *** [grammar.c] Error 127
解決方法:apt-get install byacc / yum install byacc
2、configure: error: Curses! Foiledagain!
(Can't find a curses library supporting mvchgat.)
Consider installing ncurses.
解決方法:apt-get install libncurses5-dev / yum install ncurses-devel
安裝EPEL源
更新:
目前可以直接通過執(zhí)行命令: yum install epel-release 直接進(jìn)行安裝,如果此命令無法安裝可以嘗試以下方法
CentOS/RHEL 5 :
rpm -Uvh?https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
CentOS/RHEL 6 :
rpm -Uvh?https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
CentOS/RHEL 7 :
rpm -Uvh?https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Ok,安裝完畢。
直接yum install iftop
cat /etc/issue 查看版本
EPEL(Extra Packages for Enterprise Linux) 是由 Fedora 社區(qū)打造,為 RHEL 及衍生發(fā)行版如 CentOS等提供高質(zhì)量軟件包的項目。裝上了 EPEL,就像在 Fedora 上一樣,可以通過 yum install 軟件包名,即可安裝很多以前需要編譯安裝的軟件、常用的軟件或一些比較流行的軟件,比如現(xiàn)在流行的nginx、htop、ncdu、vnstat、axel、cmake3等等,都可以使用EPEL很方便的安裝更新。
安裝EPEL源
目前可以直接通過執(zhí)行命令: yum install epel-release 直接進(jìn)行安裝,如果此命令無法安裝可以嘗試以下方法
CentOS/RHEL 5 :
rpm -Uvh?https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
CentOS/RHEL 6 :
rpm -Uvh?https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
CentOS/RHEL 7 :
rpm -Uvh?https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Ok,安裝完畢。
使用EPEL源安裝軟件
現(xiàn)在就可以執(zhí)行:yum install 軟件包名進(jìn)行安裝了,nginx、htop、ncdu、vnstat等等一些常用的軟件都灰常簡單的裝上了。