終端下的網絡流量監控工具
有很多適用于Linux系統的開源網絡監視工具。比如說,你可以用命令iftop來檢查帶寬使用情況。netstat用來查看接口統計報告,還有top監控系統當前運行進程。但是如果你想要找一個能夠按進程實時統計網絡帶寬利用率的工具,那么NetHogs值得一看。
NetHogs 是一個開源的命令行工具(類似于Linux的top命令),用來按進程或程序實時統計網絡帶寬使用率。
來自NetHogs項目網站:
NetHogs是一個小型的net top工具,不像大多數工具那樣拖慢每個協議或者是每個子網的速度而是按照進程進行帶寬分組。NetHogs不需要依賴載入某個特殊的內核模塊。如果發生了網絡阻塞你可以啟動NetHogs立即看到哪個PID造成的這種狀況。這樣就很容易找出哪個程序跑飛了然后突然占用你的帶寬。
本文為你介紹如何在Unix/Linux操作系統下如何安裝和使用NetHogs按進程監控網絡帶寬使用率。
nethogs(選項)(參數)
usage: nethogs [-V] [-h] [-b] [-d seconds] [-v mode] [-c count] [-t] [-p] [-s] [device [device [device ...]]]
-V : 打印版本。
-h : 打印此幫助。
-b : bughunt模式 - 暗示tracemode。
-d : 延遲更新刷新率(以秒為單位)。 默認值為1。
-v : 視圖模式(0 = KB / s,1 =總KB,2 =總B,3 =總MB)。 默認值為0。
-c : 更新次數。 默認為0(無限制)。
-t : tracemode.
-p : 煽動混亂模式(不推薦)。
-s : 按發送列排序輸出。
-a : 監控所有設備,甚至環回/停止。
device : 要監控的設備。 默認是所有接口啟動和運行,不包括環回
當nethogs運行時,按:
q:退出
s:按SENT流量排序
r:按RECEIVE流量排序
m:在總(KB,B,MB)和KB / s模式之間切換
其他參數和用法
-d : 刷新間隔
-h : 幫助
-p : promiscious 模式
-t : trace模式
-V : 版本
交互命令
以下是NetHogs的一些交互命令(鍵盤快捷鍵)
在RHEL、CentOS和Fedora下安裝NetHogs
要安裝NetHogs,你必須要啟用你所用Linux下的EPEL源。然后運行下面的yum命令下載安裝NetHogs包。
yum install nethogs
在Ubuntu、Linux mint和Debian下安裝NetHogs
鍵入apt-get命令安裝NetHogs包:
$ sudo apt-get install nethogs
在基于RedHat系統下鍵入如下命令啟動NetHogs工具。
nethogs
在Debian/Ubuntu/Linux Mint下要執行NetHogs你必須擁有root權限:
$ sudo nethogs
!nethogs
Ubuntu 12.10 下的NetHogs預覽
正如上圖所示,send列和received列顯示的是按照每個進程的流量統計。總的收發數據帶寬在最下方,而且可以用交互命令控制排序,下面將要討論這些交互命令。
以下就是NetHogs命令行的參數,用-d來添加刷新頻率參數,device name 用來檢測給定的某個或者某些設備的帶寬(默認是eth0)。例如:設置5秒鐘的刷新頻率,鍵入如下命令即可:
nethogs -d 5
$ sudo nethogs -d 5
如果只用來監視設備(eth0)的網絡帶寬可以使用如下命令:
nethogs eth0
$ sudo nethogs eth0
如果要同時監視eth0和eth1接口,使用以下命令即可:
nethogs eth0 eth1
$ sudo nethogs eth0 eth1
關于NetHogs命令行工具的完整參數列表,可以參考NetHogs的手冊,使用方法是在終端里輸入man nethogs
或者sudo man nethogs
,更多信息請參考NetHogs項目主頁。