iftop.gif

在Linux系統當中,抓取網卡的流量不是難事,最基本可以過SNMP+MRTG來繪製流量圖,這也是很普遍的監控方式,不過通常我們在管理主機時,流量是我們的寶貴資源,為了可以讓更多的人順暢瀏覽,若有遇到爆衝流量的狀況,勢必會想要把兇手逮出來!該如何抓出哪個ip一直肆無忌憚地狂下載呢?這就是首要的課題,善用iftop這工具也是我近期的心得,以前都只是加減看看,不太了解欄位的定義與其餘操作,自己時做過一次之後發現真的非常方便,於是整理出來與大家分享。

iftop的安裝就不多說了,Linux系統就yum一下就可以搞定了!
官方網站:http://www.ex-parrot.com/pdw/iftop/
最基本的使用:
# iftop -i 網路卡代號

b.gif

首先帶大家了解欄位的意義,以前我最不懂的部分也是最右側的三欄,想說到底有甚麼差別,其實分別表示2秒、10秒與40秒的平均值,而BAR的部分在觀看時其實是一直跳動的,預設兩秒的狀況下,BAR的數值也是顯示兩秒的,這樣子很難抓出吃流量的兇手,此時利用【B】來切換BAR的顯示,我是建議可以切換到40秒的,這樣40秒內流量高的就會很明顯。

T123.gif

排序的功能也是非常必要的,沒有排序光看BAR也很難準確,因為預設也是依照兩秒鐘那個欄位排序,所以跳動的頻率非常之高,【1】【2】【3】分別代表使用2秒、10秒與40秒來排序,搭配上述40秒平均的BAR,我會選擇3來排序。而【T】則是顯示總流量,可以當作輔助的資訊一起查看。

t.gif

網路的溝通是有方向性的,有資料傳輸時有上傳也有下載,顯示模式上分為「上傳下載兩行顯示」、「上傳下載單行顯示」、「只顯示上傳」與「只顯示下載」,顯示方式透過【t】來切換,若只顯示網路上傳的量,可以清楚的知道哪一個IP下載最多;相對的,若只顯示網路下載的量,大概可以猜出哪一個IP有比較多的請求。

基本上善用以上幾種操作,就可以快速地抓出兇手了!接下來繼續與大家介紹一些額外的操作。

bar.gif

【b】的操作可以顯示與隱藏上方的流量BAR,流量BAR的頻寬長度可以在設定檔內設定。

d.gif

【d】可以隱藏與顯示目的端的IP,配合上【t】的使用,可以清楚的知道總流量的使用狀況,雖然說最下方的顯示本來就包含總流量了。

s.gif

【s】可以隱藏與顯示來源端的IP,不過對於伺服器說這樣瀏覽相對較沒有意義。

n.gif

【n】為名稱解析使用,基本上不太建議開啟,這樣顯示上會多了一層解析的動作,其實是沒有必要的。

SDNp.gif

【p】:是否顯示來源端與目的端的port
【N】:是否解析port所對應的服務
【S】:是否顯示來源端的port
【D】:是否顯示目的端的port

l.gif

若是有遇到比較詭異的連線狀況,可以使用【l】來過濾輸出的內容,可以針對單一的IP查看,並且支援正規化表示法。

最後我分享我所使用的設定檔,可以在root家目錄下建立「.iftoprc」的設定檔,下次使用時iftop時就不用有太多的切換
interface: ppp0
dns-resolution:no
port-resolution:no
show-bars:yes
use-bytes:yes
sort:40s
line-display:one-line-sent
show-totals:yes
max-bandwidth:3M
更多資訊請參考:
最新超值旗艦機開箱
比螺旋燈泡還省電的迷你 NAS
26800mAh筆電行動電源