誰在使用所有的帶寬, 他們在做什麼? 使用iftop 把他們找出來.
資深的系統管理員經常使用一些很通用很常見的的工具. 當然,每天都有一些新的工具加入這個領域,甚至一些成熟的系統也不是使用相同的管理工具. 基於此,我決定寫一些很通用但是卻容易被忽略的工具的介紹,使系統管理員的工作更輕松. 我的上一篇文章裡包括sar, 這個工具可以按時間收集和顯示系統的各項性能. 這一次, 我談論的是一個可以很方便的實時查看網絡性能的程序: iftop.
在一個會議上必須使用網絡,但是卻沒有足夠的帶寬.著急吧!當你想要接收郵件, 其它的人在看電影或電視, 下載分布安裝磁盤(不知道這是什麼東東), 使用p2p網絡, 升級或是觀看YouTube上的貓視頻. 使用以上任意一個網絡都是讓人沮喪的事, 想像一下對於收費網絡的管理員來說是更沮喪的. 無論你是要開一個網絡會議,要進行網絡辦公或是訪問一個Web服務, 了解什麼在使用所有的帶寬都是一件高興的事.
iftop是linux命令行程序,用圖形形式實時顯示網絡連接所使用的帶寬. 從它的名字你能看到, iftop借鑒了很多經驗從負載工具top上. 就像top一樣, iftop 每隔幾秒動態更新, 還有, 默認狀態下, 它的輸出根據使用資源的多少排序. top顯示的是進程對CPU和內存的使用量, iftop顯示的是網絡連接所使用的上傳和下載的帶寬.
雖然iftop 有RHEL和Debian的分支的安裝包,但是缺省情況下是沒有安裝。所以你需要在使用之前安裝它。對於Red Hat 分支來說,你也許需要從第三方軟件庫裡面下載。安裝完成後,最簡單的啟動方式是在root用戶下輸入iftop命令。iftop將會啟動一個新的界面,就像在圖-1中看到的那樣,監聽和展示流量,若要關閉該程序,,就像TOP命令一樣按下Q鍵即可。
圖-1,iftop 輸出- IP地址被覆蓋。
在屏幕的最上方,是iftop 顯示每個連接比例的條形圖。跟著的輸出行對應著每對主機之間的網絡連接。在兩個主機之間的箭頭代表數據流動方向。最後三列最後2秒、20秒以及40秒內的平均連接帶寬。由此舉例,圖1中最後2秒的平均值約為2.83Mb,最後10秒約為3.32Mb,最後40秒約為3.11Mb。在所有的發送和接收的下方,屏幕的底部是對全部發送和接收的統計(TX和RX),包括在2-、10-和40秒內的平均值,而最後,則是接口的總計。
注意: 如果你有一個多界面的服務器,你可能想讓iftop從默認的界面監控另一個不同的。當你啟動iftop時,只要在界面添加-ifollowed來監控。例如要監控eth2,我將輸入“iftop -i eth2”。
禁用DNS查找
當你運行iftop時,它默認會試著將所有IP地址轉譯成主機名。如果你正在診斷一個本地網絡的問題,這有時很有用;然而,正如很多其他的網絡診斷工具,解析所有IP地址會降低程序運行速度並可能產生你在輸出中看到的流量。解決方法就是加上‘-nargument’運行iftop, 這樣他就只顯示所有的IP地址(在另一個窗口,你總是可以對你感興趣的IP運行一次DNS查找)。或者,如果你已經運行了iftop,你可以按‘n’來禁用DNS查找。
顯示端口數據
當你在多用途的服務器上運行iftop,它能很方便的知道是不是所有上行流量都在訪問你的Web服務器,郵件服務器或其它什麼。另外,如果你試圖找出什麼使用了你全部的下行帶寬,它能很方便的看到流量最高的連接是Web連接還是你執行的rsync任務。要弄清楚所有這些,iftop允許你切換顯示端口或關閉顯示端口。當iftop運行時按p鍵,它會顯示所有源IP和目標IP流量使用的端口。
同時顯示一個連接的源端口和目的端口,很大的缺點是,你會發現在很多情況下,你只關心其中之一。例如,如果您正在運行一個Web服務器,你可能會注意到Web端口的大量流量(iftop中標記為www),但所有地址訪問你的Web服務器都使用各種高端口。在這種情況下,您可以按S或D鍵切換只顯示源端口或目的端口。圖2顯示了iftop的輸出,我選擇只顯示源端口。
圖2. iftop只顯示源端口。
對我來說,iftop是一個相當簡單的命令行工具,這感覺棒極了。的確,有一些其他的圖形界面工具可以提供基於WEB的網絡流量展示,我認為這是一個關於查看網絡流量的趨勢,就像分析系統負載和其他指標一樣。喜歡iftop命令就像喜歡TOP命令一樣- 當出現問
題時,隨著問題的進展,你可以得到你系統的實時數據。