Linux中國

一大波你可能不知道的 Linux 網路工具

正如你在上面的截圖中所看到的那樣,由 nload 提供的圖表是非常容易理解的。nload 提供了有用的信息,也展示了諸如被傳輸數據的總量和最小/最大網路速率等信息。

而更酷的是你只需要直接運行 nload 這個工具就行,這個命令是非常的短小且易記的:

nload

我很確信的是:我們關於如何使用 nload 的詳細教程將幫助到新的 Linux 用戶,甚至可以幫助那些正尋找關於 nload 信息的老手。

(LCTT 譯註:關於 nload 的更新信息可以參考:</article-5114-1.html> )

3) slurm

slurm 是另一個 Linux 網路負載監控工具,它以一個不錯的 ASCII 圖來顯示結果,它還支持許多按鍵用以交互,例如 c 用來切換到經典模式, s 切換到分圖模式, r 用來重繪屏幕, L 用來啟用 TX/RX 燈(註:TX,發送流量;RX,接收流量) ,m 用來在經典分圖模式和大圖模式之間進行切換, q 退出 slurm。

linux network load monitoring tools

在網路負載監控工具 slurm 中,還有許多其它的按鍵可用,你可以很容易地使用下面的命令在 man 手冊中學習它們。

man slurm

slurm 在 Ubuntu 和 Debian 的官方軟體倉庫中可以找到,所以使用這些發行版本的用戶可以像下面展示的那樣,使用 apt-get 安裝命令來輕鬆地下載它:

sudo apt-get install slurm

我們已經在一個教程中對 slurm 的使用做了介紹,不要忘記和其它使用 Linux 的朋友分享這些知識。

4) iftop

當你想顯示連接到網卡上的各個主機的帶寬使用情況時,iftop 是一個非常有用的工具。根據 man 手冊,iftop 在一個指定的介面或在它可以找到的第一個介面(假如沒有任何特殊情況,它應該是一個對外的介面)上監聽網路流量,並且展示出一個表格來顯示當前的一對主機間的帶寬使用情況。

通過在虛擬終端中使用下面的命令,Ubuntu 和 Debian 用戶可以在他們的機器中輕易地安裝 iftop:

sudo apt-get install iftop

在你的機器上,可以使用下面的命令通過 yum 來安裝 iftop:

yum -y install iftop

(LCTT 譯註:關於 nload 的更多信息請參考:</article-1843-1.html> )

5) collectl

collectl 可以被用來收集描述當前系統狀態的數據,並且它支持如下兩種模式:

  • 記錄模式
  • 回放模式

記錄模式 允許從一個正在運行的系統中讀取數據,然後將這些數據要麼顯示在終端中,要麼寫入一個或多個文件或一個套接字中。

回放模式

根據 man 手冊,在這種模式下,數據從一個或多個由記錄模式生成的數據文件中讀取。

Ubuntu 和 Debian 用戶可以在他們的機器上使用他們默認的包管理器來安裝 colletcl。下面的命令將為他們做這個工作:

sudo apt-get install collectl

還可以使用下面的命令來安裝 collectl, 因為對於這些發行版本(註:這裡指的是用 yum 作為包管理器的發行版本),在它們官方的軟體倉庫中也含有 collectl:

yum install collectl

(LCTT 譯註:關於 collectl 的更多信息請參考: </article-3154-1.html> )

6) Netstat

Netstat 是一個用來監控傳入和傳出的網路數據包統計數據的介面統計數據命令行工具。它會顯示 TCP 連接 (包括上傳和下行),路由表,及一系列的網路介面(網卡或者SDN介面)和網路協議統計數據。

Ubuntu 和 Debian 用戶可以在他們的機器上使用默認的包管理器來安裝 netstat。Netsta 軟體被包括在 net-tools 軟體包中,並可以在 shell 或虛擬終端中運行下面的命令來安裝它:

sudo apt-get install net-tools

CentOS, Fedora, RHEL 用戶可以在他們的機器上使用默認的包管理器來安裝 netstat。Netstat 軟體被包括在 net-tools 軟體包中,並可以在 shell 或虛擬終端中運行下面的命令來安裝它:

yum install net-tools

運行下面的命令使用 Netstat 來輕鬆地監控網路數據包統計數據:

netstat

Netstat

更多的關於 netstat 的信息,我們可以簡單地在 shell 或終端中鍵入 man netstat 來了解:

man netstat

man netstat

(LCTT 譯註:關於 netstat 的更多信息請參考:</article-2434-1.html> )

7) Netload

netload 命令只展示一個關於當前網路荷載和自從程序運行之後傳輸數據總的位元組數目的簡要報告,它沒有更多的功能。它是 netdiag 軟體的一部分。

我們可以在 fedora 中使用 yum 來安裝 Netload,因為它在 fedora 的默認軟體倉庫中。但假如你運行的是 CentOS 或 RHEL,則我們需要安裝 rpmforge 軟體倉庫

# yum install netdiag

Netload 是默認倉庫中 netdiag 的一部分,我們可以輕易地使用下面的命令來利用 apt 包管理器安裝 netdiag

$ sudo apt-get install netdiag 

為了運行 netload,我們需要確保選擇了一個正在工作的網路介面的名稱,如 eth0, eh1, wlan0, mon0等,然後在 shell 或虛擬終端中運行下面的命令:

$ netload wlan2

注意: 請將上面的 wlan2 替換為你想使用的網路介面名稱,假如你想通過掃描了解你的網路介面名稱,可以在一個虛擬終端或 shell 中運行 ip link show 命令。

8) Nagios

Nagios 是一個領先且功能強大的開源監控系統,它使得網路或系統管理員可以在伺服器的各種問題影響到伺服器的主要事務之前,發現並解決這些問題。 有了 Nagios 系統,管理員便可以在一個單一的窗口中監控遠程的 Linux 、Windows 系統、交換機、路由器和印表機等。它會顯示出重要的警告並指出在你的網路或伺服器中是否出現某些故障,這可以間接地幫助你在問題發生前就著手執行補救行動。

Nagios 有一個 web 界面,其中有一個圖形化的活動監視器。通過瀏覽網頁 http://localhost/nagios/http://localhost/nagios3/ 便可以登錄到這個 web 界面。假如你在遠程的機器上進行操作,請使用你的 IP 地址來替換 localhost,然後鍵入用戶名和密碼,我們便會看到如下圖所展示的信息:

在 Chromium 瀏覽器中的 Nagios3

(LCTT 譯註:關於 Nagios 的更多信息請參考:</article-2436-1.html> )

9) EtherApe

EtherApe 是一個針對 Unix 的圖形化網路監控工具,它仿照了 etherman 軟體。它支持鏈路層、IP 和 TCP 等模式,並支持乙太網, FDDI, 令牌環, ISDN, PPP, SLIP 及 WLAN 設備等介面,以及一些封裝格式。主機和連接隨著流量和協議而改變其尺寸和顏色。它可以過濾要展示的流量,並可從一個文件或運行的網路中讀取數據包。

在 CentOS、Fedora、RHEL 等 Linux 發行版本中安裝 etherape 是一件容易的事,因為在它們的官方軟體倉庫中就可以找到 etherape。我們可以像下面展示的命令那樣使用 yum 包管理器來安裝它:

 yum install etherape

我們也可以使用下面的命令在 Ubuntu、Debian 及它們的衍生髮行版本中使用 apt 包管理器來安裝 EtherApe :

sudo apt-get install etherape

在 EtherApe 安裝到你的系統之後,我們需要像下面那樣以 root 許可權來運行 etherape:

sudo etherape

然後, etherape圖形用戶界面 便會被執行。接著,在菜單上面的 捕捉 選項下,我們可以選擇 模式(IP,鏈路層,TCP) 和 介面。一切設定完畢後,我們需要點擊 開始 按鈕。接著我們便會看到類似下面截圖的東西:

EtherApe

10) tcpflow

tcpflow 是一個命令行工具,它可以捕捉 TCP 連接(流)的部分傳輸數據,並以一種方便協議分析或除錯的方式來存儲數據。它重構了實際的數據流並將每個流存儲在不同的文件中,以備日後的分析。它能識別 TCP 序列號並可以正確地重構數據流,不管是在重發還是亂序發送狀態下。

通過 apt 包管理器在 Ubuntu 、Debian 系統中安裝 tcpflow 是很容易的,因為默認情況下在官方軟體倉庫中可以找到它。

$ sudo apt-get install tcpflow

我們可以使用下面的命令通過 yum 包管理器在 Fedora 、CentOS 、RHEL 及它們的衍生髮行版本中安裝 tcpflow:

# yum install tcpflow

假如在軟體倉庫中沒有找到它或不能通過 yum 包管理器來安裝它,則我們需要像下面展示的那樣從 http://pkgs.repoforge.org/tcpflow/ 上手動安裝它:

假如你運行 64 位的 PC:

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.x86_64.rpm

假如你運行 32 位的 PC:

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.i686.rpm

我們可以使用 tcpflow 來捕捉全部或部分 tcp 流量,並以一種簡單的方式把它們寫到一個可讀的文件中。下面的命令就可以完成這個事情,但我們需要在一個空目錄中運行下面的命令,因為它將創建諸如 x.x.x.x.y-a.a.a.a.z 格式的文件,運行之後,只需按 Ctrl-C 便可停止這個命令。

 $ sudo tcpflow -i eth0 port 8000

注意:請將上面的 eth0 替換為你想捕捉的網卡介面名稱。

11) IPTraf

IPTraf 是一個針對 Linux 平台的基於控制台的網路統計應用。它生成一系列的圖形,如 TCP 連接的包/位元組計數、介面信息和活動指示器、 TCP/UDP 流量故障以及區域網內設備的包/位元組計數。

在默認的軟體倉庫中可以找到 IPTraf,所以我們可以使用下面的命令通過 apt 包管理器輕鬆地安裝 IPTraf:

$ sudo apt-get install iptraf

我們可以使用下面的命令通過 yum 包管理器輕鬆地安裝 IPTraf:

# yum install iptraf

我們需要以管理員許可權來運行 IPTraf,並帶有一個有效的網路介面名。這裡,我們的網路介面名為 wlan2,所以我們使用 wlan2 來作為參數:

$ sudo iptraf wlan2

IPTraf

開始通常的網路介面統計,鍵入:

# iptraf -g

查看介面 eth0 的詳細統計信息,使用:

# iptraf -d eth0  

查看介面 eth0 的 TCP 和 UDP 監控信息,使用:

# iptraf -z eth0

查看介面 eth0 的包的大小和數目,使用:

# iptraf -z eth0

注意:請將上面的 eth0 替換為你的介面名稱。你可以通過運行ip link show命令來檢查你的介面。

(LCTT 譯註:關於 iptraf 的更多詳細信息請參考:</article-5430-1.html> )

12) Speedometer

Speedometer 是一個小巧且簡單的工具,它只用來繪出一幅包含有通過某個給定埠的上行、下行流量的好看的圖。

在默認的軟體倉庫中可以找到 Speedometer ,所以我們可以使用下面的命令通過 yum 包管理器輕鬆地安裝 Speedometer:

# yum install speedometer

我們可以使用下面的命令通過 apt 包管理器輕鬆地安裝 Speedometer:

$ sudo apt-get install speedometer

Speedometer 可以簡單地通過在 shell 或虛擬終端中執行下面的命令來運行:

$ speedometer -r wlan2 -t wlan2

Speedometer

註:請將上面的 wlan2 替換為你想要使用的網路介面名稱。

13) Netwatch

Netwatch 是 netdiag 工具集里的一部分,它也顯示當前主機和其他遠程主機的連接情況,以及在每個連接中數據傳輸的速率。

我們可以使用 yum 在 fedora 中安裝 Netwatch,因為它在 fedora 的默認軟體倉庫中。但若你運行著 CentOS 或 RHEL , 我們需要安裝 rpmforge 軟體倉庫

# yum install netwatch

Netwatch 是 netdiag 的一部分,可以在默認的軟體倉庫中找到,所以我們可以輕鬆地使用下面的命令來利用 apt 包管理器安裝 netdiag

$ sudo apt-get install netdiag 

為了運行 netwatch, 我們需要在虛擬終端或 shell 中執行下面的命令:

$ sudo netwatch -e wlan2 -nt

Netwatch

注意: 請將上面的 wlan2 替換為你想使用的網路介面名稱,假如你想通過掃描了解你的網路介面名稱,可以在一個虛擬終端或 shell 中運行 ip link show 命令。

14) Trafshow

Trafshow 同 netwatch 和 pktstat 一樣,可以報告當前活動的連接里使用的協議和每個連接中數據傳輸的速率。它可以使用 pcap 類型的過濾器來篩選出特定的連接。

我們可以使用 yum 在 fedora 中安裝 trafshow ,因為它在 fedora 的默認軟體倉庫中。但若你正運行著 CentOS 或 RHEL , 我們需要安裝 rpmforge 軟體倉庫

# yum install trafshow

Trafshow 在默認倉庫中可以找到,所以我們可以輕鬆地使用下面的命令來利用 apt 包管理器安裝它:

$ sudo apt-get install trafshow 

為了使用 trafshow 來執行監控任務,我們需要在虛擬終端或 shell 中執行下面的命令:

$ sudo trafshow -i wlan2

Trafshow

為了專門監控 tcp 連接,如下面一樣添加上 tcp 參數:

 $ sudo trafshow -i wlan2 tcp

Trafshow tcp

注意: 請將上面的 wlan2 替換為你想使用的網路介面名稱,假如你想通過掃描了解你的網路介面名稱,可以在一個虛擬終端或 shell 中運行 ip link show 命令。

15) Vnstat

與大多數的其他工具相比,Vnstat 有一點不同。實際上它運行著一個後台服務或守護進程,並時刻記錄著傳輸數據的大小。另外,它可以被用來生成一個網路使用歷史記錄的報告。

我們需要開啟 EPEL 軟體倉庫,然後運行 yum 包管理器來安裝 vnstat。

# yum install vnstat

Vnstat 在默認軟體倉庫中可以找到,所以我們可以使用下面的命令運行 apt 包管理器來安裝它:

$ sudo apt-get install vnstat

不帶有任何選項運行 vnstat 將簡單地展示出從該守護進程運行後數據傳輸的總量。

$ vnstat

vnstat

為了實時地監控帶寬使用情況,使用 『-l』 選項(live 模式)。然後它將以一種非常精確的方式來展示上行和下行數據所使用的帶寬總量,但不會顯示任何有關主機連接或進程的內部細節。

$ vnstat -l

Vnstat 實時模式

完成了上面的步驟後,按 Ctrl-C 來停止,這將會得到如下類型的輸出:

Vnstat 實時結果

16) tcptrack

tcptrack 可以展示 TCP 連接的狀態,它在一個給定的網路埠上進行監聽。tcptrack 監控它們的狀態並展示出排序且不斷更新的列表,包括來源/目標地址、帶寬使用情況等信息,這與 top 命令的輸出非常類似 。

鑒於 tcptrack 在軟體倉庫中,我們可以輕鬆地在 Debian、Ubuntu 系統中從軟體倉庫使用 apt 包管理器來安裝 tcptrack。為此,我們需要在 shell 或虛擬終端中執行下面的命令:

$ sudo apt-get install tcptrack

我們可以通過 yum 在 fedora 中安裝它,因為它在 fedora 的默認軟體倉庫中。但若你運行著 CentOS 或 RHEL 系統,我們需要安裝 rpmforge 軟體倉庫。為此,我們需要運行下面的命令:

# wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

# rpm -Uvh rpmforge-release*rpm

# yum install tcptrack

註:這裡我們下載了 rpmforge-release 的當前最新版本,即 0.5.3-1,你總是可以從 rpmforge 軟體倉庫中下載其最新版本,並請在上面的命令中替換為你下載的版本。

tcptrack 需要以 root 許可權或超級用戶身份來運行。執行 tcptrack 時,我們需要帶上要監視的網路介面 TCP 連接狀況的介面名稱。這裡我們的介面名稱為 wlan2,所以如下面這樣使用:

sudo tcptrack -i wlan2

tcptrack

假如你想監控特定的埠,則使用:

# tcptrack -i wlan2 port 80

tcptrack port 80

請替換上面的 80 為你想要監控的埠號。注意: 請將上面的 wlan2 替換為你想使用的網路介面名稱,假如你想通過掃描了解你的網路介面名稱,可以在一個虛擬終端或 shell 中運行 ip link show 命令。

17) CBM

CBM ( Color Bandwidth Meter) 可以展示出當前所有網路設備的流量使用情況。這個程序是如此的簡單,以至於都可以從它的名稱中看出其功能。CBM 的源代碼和新版本可以在 http://www.isotton.com/utils/cbm/ 上找到。

鑒於 CBM 已經包含在軟體倉庫中,我們可以簡單地使用 apt 包管理器從 Debian、Ubuntu 的軟體倉庫中安裝 CBM。為此,我們需要在一個 shell 窗口或虛擬終端中運行下面的命令:

$ sudo apt-get install cbm

我們只需使用下面展示的命令來在 shell 窗口或虛擬終端中運行 cbm:

$ cbm

Color Bandwidth Meter

18) bmon

Bmon ( Bandwidth Monitoring) ,是一個用於調試和實時監控帶寬的工具。這個工具能夠檢索各種輸入模塊的統計數據。它提供了多種輸出方式,包括一個基於 curses 庫的界面,輕量級的HTML輸出,以及 ASCII 輸出格式。

bmon 可以在軟體倉庫中找到,所以我們可以通過使用 apt 包管理器來在 Debian、Ubuntu 中安裝它。為此,我們需要在一個 shell 窗口或虛擬終端中運行下面的命令:

$ sudo apt-get install bmon

我們可以使用下面的命令來運行 bmon 以監視我們的網路狀態:

$ bmon

bmon

19) tcpdump

TCPDump 是一個用於網路監控和數據獲取的工具。它可以為我們節省很多的時間,並可用來調試網路或伺服器的相關問題。它可以列印出在某個網路介面上與布爾表達式相匹配的數據包所包含的內容的一個描述。

tcpdump 可以在 Debian、Ubuntu 的默認軟體倉庫中找到,我們可以簡單地以 sudo 許可權使用 apt 包管理器來安裝它。為此,我們需要在一個 shell 窗口或虛擬終端中運行下面的命令:

$ sudo apt -get install tcpdump

tcpdump 也可以在 Fedora、CentOS、RHEL 的軟體倉庫中找到。我們可以像下面一樣通過 yum 包管理器來安裝它:

# yum install tcpdump

tcpdump 需要以 root 許可權或超級用戶來運行,我們需要帶上我們想要監控的 TCP 連接的網路介面名稱來執行 tcpdump 。在這裡,我們有 wlan2 這個網路介面,所以可以像下面這樣使用:

$ sudo tcpdump -i wlan2

tcpdump

假如你只想監視一個特定的埠,則可以運行下面的命令。下面是一個針對 80 埠(網路伺服器)的例子:

$ sudo tcpdump -i wlan2 &apos;port 80&apos;

tcpdump port

20) ntopng

ntopng 是 ntop 的下一代版本。它是一個用於展示網路使用情況的網路探頭,在一定程度上它與 top 針對進程所做的工作類似。ntopng 基於 libpcap 並且它以可移植的方式被重寫,以達到可以在每一個 Unix 平台 、 MacOSX 以及 Win32 上運行的目的。

為了在 Debian,Ubuntu 系統上安裝 ntopng,首先我們需要安裝 編譯 ntopng 所需的依賴軟體包。你可以通過在一個 shell 窗口或一個虛擬終端中運行下面的命令來安裝它們:

$ sudo apt-get install libpcap-dev libglib2.0-dev libgeoip-dev redis-server wget libxml2-dev build-essential checkinstall

現在,我們需要像下面一樣針對我們的系統手動編譯 ntopng :

$ sudo wget http://sourceforge.net/projects/ntop/files/ntopng/ntopng-1.1_6932.tgz/download
$ sudo tar zxfv ntopng-1.1_6932.tgz
$ sudo cd ntopng-1.1_6932
$ sudo ./configure
$ sudo make
$ sudo make install

這樣,在你的 Debian 或 Ubuntu 系統上應該已經安裝上了你編譯的 ntopng 。

我們已經有了有關 ntopng 的使用方法的教程,它既可以在命令行也可以在 Web 界面中使用,我們可以前往這些教程來獲得有關 ntopng 的知識。

結論

在這篇文章中,我們介紹了一些在 Linux 下的網路負載監控工具,這對於系統管理員甚至是新手來說,都是很有幫助的。在這篇文章中介紹的每一個工具都具有其特點,不同的選項等,但最終它們都可以幫助你來監控你的網路流量。

via: http://linoxide.com/monitoring-2/network-monitoring-tools-linux/

作者:Bobbin Zachariah 譯者:FSSlc 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國