你可能不知道的Linux網絡工具二

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 替換為你想捕捉的網卡接口名稱。

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


你可能不知道的Linux網絡工具二

開始通常的網絡接口統計,鍵入:

# iptraf -g

查看接口 eth0 的詳細統計信息,使用:

# iptraf -d eth0 

查看接口 eth0 的 TCP 和 UDP 監控信息,使用:

# iptraf -z eth0

查看接口 eth0 的包的大小和數目,使用:

# iptraf -z eth0

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

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

Speedometer

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

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

# yum install speedometer

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

$ sudo apt-get install speedometer

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

$ speedometer -r wlan2 -t wlan2


你可能不知道的Linux網絡工具二

注:請將上面的 wlan2 替換為你想要使用的網絡接口名稱。

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


你可能不知道的Linux網絡工具二

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

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


你可能不知道的Linux網絡工具二

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

 $ sudo trafshow -i wlan2 tcp


你可能不知道的Linux網絡工具二

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

Vnstat

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

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

# yum install vnstat

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

$ sudo apt-get install vnstat

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

$ vnstat


你可能不知道的Linux網絡工具二

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

$ vnstat -l


你可能不知道的Linux網絡工具二

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


你可能不知道的Linux網絡工具二

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


你可能不知道的Linux網絡工具二

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

# tcptrack -i wlan2 port 80


你可能不知道的Linux網絡工具二

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

bmon

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

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

$ sudo apt-get install bmon

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

$ bmon


你可能不知道的Linux網絡工具二

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


你可能不知道的Linux網絡工具二

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

$ sudo tcpdump -i wlan2 'port 80'


你可能不知道的Linux網絡工具二

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 的知識。


分享到:


相關文章: