【干貨】你可能不知道的 20個(gè) Linux 網(wǎng)絡(luò)工具

轉(zhuǎn)載自公眾號(hào):DevOps技術(shù)棧

原文鏈接:http://linoxide.com/monitoring-2/network-monitoring-tools-linux/

如果要在你的系統(tǒng)上監(jiān)控網(wǎng)絡(luò),那么使用命令行工具是非常實(shí)用的,并且對(duì)于 Linux 用戶來說,有著許許多多現(xiàn)成的工具可以使用,如:nethogs, ntopng, nload, iftop, iptraf, bmon, slurm, tcptrack, cbm, netwatch, collectl, trafshow, cacti, etherape, ipband, jnettop, netspeed 以及 speedometer。

鑒于世上有著許多的 Linux 專家和開發(fā)者,顯然還存在其他的網(wǎng)絡(luò)監(jiān)控工具,但在這篇教程中,我不打算將它們所有包括在內(nèi)。

上面列出的工具都有著自己的獨(dú)特之處,但歸根結(jié)底,它們都做著監(jiān)控網(wǎng)絡(luò)流量的工作,只是通過各種不同的方法。例如 nethogs 可以被用來展示每個(gè)進(jìn)程的帶寬使用情況,以防你想知道究竟是哪個(gè)應(yīng)用在消耗了你的整個(gè)網(wǎng)絡(luò)資源;iftop 可以被用來展示每個(gè)套接字連接的帶寬使用情況,而像 nload 這類的工具可以幫助你得到有關(guān)整個(gè)帶寬的信息。

  1. nethogs

nethogs 是一個(gè)免費(fèi)的工具,當(dāng)要查找哪個(gè) PID (注:即 process identifier,進(jìn)程 ID) 給你的網(wǎng)絡(luò)流量帶來了麻煩時(shí),它是非常方便的。它按每個(gè)進(jìn)程來分組帶寬,而不是像大多數(shù)的工具那樣按照每個(gè)協(xié)議或每個(gè)子網(wǎng)來劃分流量。它功能豐富,同時(shí)支持 IPv4 和 IPv6,并且我認(rèn)為,若你想在你的 Linux 主機(jī)上確定哪個(gè)程序正消耗著你的全部帶寬,它是來做這件事的最佳的程序。

一個(gè) Linux 用戶可以使用 nethogs 來顯示每個(gè)進(jìn)程的 TCP 下載和上傳速率,可以使用命令 nethogs eth0 來監(jiān)控一個(gè)指定的設(shè)備,上面的 eth0 是那個(gè)你想獲取信息的設(shè)備的名稱,你還可以得到有關(guān)正在傳輸?shù)臄?shù)據(jù)的傳輸速率信息。

對(duì)我而言, nethogs 是非常容易使用的,或許是因?yàn)槲曳浅O矚g它,以至于我總是在我的 Ubuntu 12.04 LTS 機(jī)器中使用它來監(jiān)控我的網(wǎng)絡(luò)帶寬。

例如要想使用混雜模式來嗅探,可以像下面展示的命令那樣使用選項(xiàng) -p:

nethogs -p wlan0

假如你想更多地了解 nethogs 并深入探索它,那么請(qǐng)毫不猶豫地閱讀我們做的關(guān)于這個(gè)網(wǎng)絡(luò)帶寬監(jiān)控工具的整個(gè)教程。

(LCTT 譯注:關(guān)于 nethogs 的更多信息可以參考:https://linux.cn/article-2808-1.html

  1. nload

nload 是一個(gè)控制臺(tái)應(yīng)用,可以被用來實(shí)時(shí)地監(jiān)控網(wǎng)絡(luò)流量和帶寬使用情況,它還通過提供兩個(gè)簡(jiǎn)單易懂的圖表來對(duì)流量進(jìn)行可視化。這個(gè)絕妙的網(wǎng)絡(luò)監(jiān)控工具還可以在監(jiān)控過程中切換被監(jiān)控的設(shè)備,而這可以通過按左右箭頭來完成。

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

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

nload

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

(LCTT 譯注:關(guān)于 nload 的更新信息可以參考:https://linux.cn/article-5114-1.html

  1. slurm

slurm 是另一個(gè) Linux 網(wǎng)絡(luò)負(fù)載監(jiān)控工具,它以一個(gè)不錯(cuò)的 ASCII 圖來顯示結(jié)果,它還支持許多按鍵用以交互,例如 c 用來切換到經(jīng)典模式, s 切換到分圖模式, r 用來重繪屏幕, L 用來啟用 TX/RX 燈(注:TX,發(fā)送流量;RX,接收流量) ,m 用來在經(jīng)典分圖模式和大圖模式之間進(jìn)行切換, q 退出 slurm。

在網(wǎng)絡(luò)負(fù)載監(jiān)控工具 slurm 中,還有許多其它的按鍵可用,你可以很容易地使用下面的命令在 man 手冊(cè)中學(xué)習(xí)它們。

man slurm

slurm 在 Ubuntu 和 Debian 的官方軟件倉(cāng)庫(kù)中可以找到,所以使用這些發(fā)行版本的用戶可以像下面展示的那樣,使用 apt-get 安裝命令來輕松地下載它:

sudo apt-get install slurm

我們已經(jīng)在一個(gè)教程中對(duì) slurm 的使用做了介紹,不要忘記和其它使用 Linux 的朋友分享這些知識(shí)。

  1. iftop

當(dāng)你想顯示連接到網(wǎng)卡上的各個(gè)主機(jī)的帶寬使用情況時(shí),iftop 是一個(gè)非常有用的工具。根據(jù) man 手冊(cè),iftop 在一個(gè)指定的接口或在它可以找到的第一個(gè)接口(假如沒有任何特殊情況,它應(yīng)該是一個(gè)對(duì)外的接口)上監(jiān)聽網(wǎng)絡(luò)流量,并且展示出一個(gè)表格來顯示當(dāng)前的一對(duì)主機(jī)間的帶寬使用情況。

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

sudo apt-get install iftop

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

yum -y install iftop

(LCTT 譯注:關(guān)于 nload 的更多信息請(qǐng)參考:https://linux.cn/article-1843-1.html

  1. collectl

collectl 可以被用來收集描述當(dāng)前系統(tǒng)狀態(tài)的數(shù)據(jù),并且它支持如下兩種模式:

●記錄模式

●回放模式

記錄模式

允許從一個(gè)正在運(yùn)行的系統(tǒng)中讀取數(shù)據(jù),然后將這些數(shù)據(jù)要么顯示在終端中,要么寫入一個(gè)或多個(gè)文件或一個(gè)套接字中。

回放模式

根據(jù) man 手冊(cè),在這種模式下,數(shù)據(jù)從一個(gè)或多個(gè)由記錄模式生成的數(shù)據(jù)文件中讀取。

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

sudo apt-get install collectl

還可以使用下面的命令來安裝 collectl, 因?yàn)閷?duì)于這些發(fā)行版本(注:這里指的是用 yum 作為包管理器的發(fā)行版本),在它們官方的軟件倉(cāng)庫(kù)中也含有 collectl:

yum install collectl

(LCTT 譯注:關(guān)于 collectl 的更多信息請(qǐng)參考:https://linux.cn/article-3154-1.html

來源:http://linux.cn/article-5435-1.html

  1. Netstat

Netstat 是一個(gè)用來監(jiān)控傳入和傳出的網(wǎng)絡(luò)數(shù)據(jù)包統(tǒng)計(jì)數(shù)據(jù)的接口統(tǒng)計(jì)數(shù)據(jù)命令行工具。它會(huì)顯示 TCP 連接 (包括上傳和下行),路由表,及一系列的網(wǎng)絡(luò)接口(網(wǎng)卡或者SDN接口)和網(wǎng)絡(luò)協(xié)議統(tǒng)計(jì)數(shù)據(jù)。

Ubuntu 和 Debian 用戶可以在他們的機(jī)器上使用默認(rèn)的包管理器來安裝 netstat。Netsta 軟件被包括在 net-tools 軟件包中,并可以在 shell 或虛擬終端中運(yùn)行下面的命令來安裝它:

sudo apt-get install net-tools

CentOS, Fedora, RHEL 用戶可以在他們的機(jī)器上使用默認(rèn)的包管理器來安裝 netstat。Netstat 軟件被包括在 net-tools 軟件包中,并可以在 shell 或虛擬終端中運(yùn)行下面的命令來安裝它:

yum install net-tools

運(yùn)行下面的命令使用 Netstat 來輕松地監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)包統(tǒng)計(jì)數(shù)據(jù):

netstat

更多的關(guān)于 netstat 的信息,我們可以簡(jiǎn)單地在 shell 或終端中鍵入 man netstat 來了解:

man netstat

(LCTT 譯注:關(guān)于 netstat 的更多信息請(qǐng)參考:https://linux.cn/article-2434-1.html

  1. Netload

netload 命令只展示一個(gè)關(guān)于當(dāng)前網(wǎng)絡(luò)荷載和自從程序運(yùn)行之后傳輸數(shù)據(jù)總的字節(jié)數(shù)目的簡(jiǎn)要報(bào)告,它沒有更多的功能。它是 netdiag 軟件的一部分。

我們可以在 fedora 中使用 yum 來安裝 Netload,因?yàn)樗?fedora 的默認(rèn)軟件倉(cāng)庫(kù)中。但假如你運(yùn)行的是 CentOS 或 RHEL,則我們需要安裝 rpmforge 軟件倉(cāng)庫(kù)。

# yum install netdiag

Netload 是默認(rèn)倉(cāng)庫(kù)中 netdiag 的一部分,我們可以輕易地使用下面的命令來利用 apt 包管理器安裝 netdiag:

netload wlan2

注意:請(qǐng)將上面的 wlan2 替換為你想使用的網(wǎng)絡(luò)接口名稱,假如你想通過掃描了解你的網(wǎng)絡(luò)接口名稱,可以在一個(gè)虛擬終端或 shell 中運(yùn)行 ip link show 命令。

  1. Nagios

Nagios 是一個(gè)領(lǐng)先且功能強(qiáng)大的開源監(jiān)控系統(tǒng),它使得網(wǎng)絡(luò)或系統(tǒng)管理員可以在服務(wù)器的各種問題影響到服務(wù)器的主要事務(wù)之前,發(fā)現(xiàn)并解決這些問題。有了 Nagios 系統(tǒng),管理員便可以在一個(gè)單一的窗口中監(jiān)控遠(yuǎn)程的 Linux 、Windows 系統(tǒng)、交換機(jī)、路由器和打印機(jī)等。它會(huì)顯示出重要的警告并指出在你的網(wǎng)絡(luò)或服務(wù)器中是否出現(xiàn)某些故障,這可以間接地幫助你在問題發(fā)生前就著手執(zhí)行補(bǔ)救行動(dòng)。

Nagios 有一個(gè) web 界面,其中有一個(gè)圖形化的活動(dòng)監(jiān)視器。通過瀏覽網(wǎng)頁(yè)http://localhost/nagios/http://localhost/nagios3/便可以登錄到這個(gè) web 界面。假如你在遠(yuǎn)程的機(jī)器上進(jìn)行操作,請(qǐng)使用你的 IP 地址來替換 localhost,然后鍵入用戶名和密碼,我們便會(huì)看到如下圖所展示的信息:

(LCTT 譯注:關(guān)于 Nagios 的更多信息請(qǐng)參考:https://linux.cn/article-2436-1.html

  1. EtherApe

EtherApe 是一個(gè)針對(duì) Unix 的圖形化網(wǎng)絡(luò)監(jiān)控工具,它仿照了 etherman 軟件。它支持鏈路層、IP 和 TCP 等模式,并支持以太網(wǎng), FDDI, 令牌環(huán), ISDN, PPP, SLIP 及 WLAN 設(shè)備等接口,以及一些封裝格式。主機(jī)和連接隨著流量和協(xié)議而改變其尺寸和顏色。它可以過濾要展示的流量,并可從一個(gè)文件或運(yùn)行的網(wǎng)絡(luò)中讀取數(shù)據(jù)包。

在 CentOS、Fedora、RHEL 等 Linux 發(fā)行版本中安裝 etherape 是一件容易的事,因?yàn)樵谒鼈兊墓俜杰浖}(cāng)庫(kù)中就可以找到 etherape。我們可以像下面展示的命令那樣使用 yum 包管理器來安裝它:

yum install etherape

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

sudo apt-get install etherape

在 EtherApe 安裝到你的系統(tǒng)之后,我們需要像下面那樣以 root 權(quán)限來運(yùn)行 etherape:

sudo etherape

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

  1. tcpflow

tcpflow 是一個(gè)命令行工具,它可以捕捉 TCP 連接(流)的部分傳輸數(shù)據(jù),并以一種方便協(xié)議分析或除錯(cuò)的方式來存儲(chǔ)數(shù)據(jù)。它重構(gòu)了實(shí)際的數(shù)據(jù)流并將每個(gè)流存儲(chǔ)在不同的文件中,以備日后的分析。它能識(shí)別 TCP 序列號(hào)并可以正確地重構(gòu)數(shù)據(jù)流,不管是在重發(fā)還是亂序發(fā)送狀態(tài)下。

通過 apt 包管理器在 Ubuntu 、Debian 系統(tǒng)中安裝 tcpflow 是很容易的,因?yàn)槟J(rèn)情況下在官方軟件倉(cāng)庫(kù)中可以找到它。

sudo tcpflow -i eth0 port 8000

注意:請(qǐng)將上面的 eth0 替換為你想捕捉的網(wǎng)卡接口名稱。

來源:http://linux.cn/article-5435-1.html

  1. IPTraf

IPTraf 是一個(gè)針對(duì) Linux 平臺(tái)的基于控制臺(tái)的網(wǎng)絡(luò)統(tǒng)計(jì)應(yīng)用。它生成一系列的圖形,如 TCP 連接的包/字節(jié)計(jì)數(shù)、接口信息和活動(dòng)指示器、 TCP/UDP 流量故障以及局域網(wǎng)內(nèi)設(shè)備的包/字節(jié)計(jì)數(shù)。

在默認(rèn)的軟件倉(cāng)庫(kù)中可以找到 IPTraf,所以我們可以使用下面的命令通過 apt 包管理器輕松地安裝 IPTraf:

sudo iptraf wlan2

開始通常的網(wǎng)絡(luò)接口統(tǒng)計(jì),鍵入:

# iptraf -g

查看接口 eth0 的詳細(xì)統(tǒng)計(jì)信息,使用:

# iptraf -d eth0

查看接口 eth0 的 TCP 和 UDP 監(jiān)控信息,使用:

# iptraf -z eth0

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

# iptraf -z eth0

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

(LCTT 譯注:關(guān)于 iptraf 的更多詳細(xì)信息請(qǐng)參考:https://linux.cn/article-5430-1.html

  1. Speedometer

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

在默認(rèn)的軟件倉(cāng)庫(kù)中可以找到 Speedometer ,所以我們可以使用下面的命令通過 yum 包管理器輕松地安裝 Speedometer:

# yum install speedometer

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

speedometer -r wlan2 -t wlan2

注:請(qǐng)將上面的 wlan2 替換為你想要使用的網(wǎng)絡(luò)接口名稱。

  1. Netwatch

Netwatch 是 netdiag 工具集里的一部分,它也顯示當(dāng)前主機(jī)和其他遠(yuǎn)程主機(jī)的連接情況,以及在每個(gè)連接中數(shù)據(jù)傳輸?shù)乃俾省?/p>

我們可以使用 yum 在 fedora 中安裝 Netwatch,因?yàn)樗?fedora 的默認(rèn)軟件倉(cāng)庫(kù)中。但若你運(yùn)行著 CentOS 或 RHEL , 我們需要安裝 rpmforge 軟件倉(cāng)庫(kù)。

# yum install netwatch

Netwatch 是 netdiag 的一部分,可以在默認(rèn)的軟件倉(cāng)庫(kù)中找到,所以我們可以輕松地使用下面的命令來利用 apt 包管理器安裝netdiag:

sudo netwatch -e wlan2 -nt

注意:請(qǐng)將上面的 wlan2 替換為你想使用的網(wǎng)絡(luò)接口名稱,假如你想通過掃描了解你的網(wǎng)絡(luò)接口名稱,可以在一個(gè)虛擬終端或 shell 中運(yùn)行 ip link show 命令。

  1. Trafshow

Trafshow 同 netwatch 和 pktstat 一樣,可以報(bào)告當(dāng)前活動(dòng)的連接里使用的協(xié)議和每個(gè)連接中數(shù)據(jù)傳輸?shù)乃俾?。它可以使?pcap 類型的過濾器來篩選出特定的連接。

我們可以使用 yum 在 fedora 中安裝 trafshow ,因?yàn)樗?fedora 的默認(rèn)軟件倉(cāng)庫(kù)中。但若你正運(yùn)行著 CentOS 或 RHEL , 我們需要安裝 rpmforge 軟件倉(cāng)庫(kù)。

# yum install trafshow

Trafshow 在默認(rèn)倉(cāng)庫(kù)中可以找到,所以我們可以輕松地使用下面的命令來利用 apt 包管理器安裝它:

sudo trafshow -i wlan2

為了專門監(jiān)控 tcp 連接,如下面一樣添加上 tcp 參數(shù):

sudo apt-get install vnstat

不帶有任何選項(xiàng)運(yùn)行 vnstat 將簡(jiǎn)單地展示出從該守護(hù)進(jìn)程運(yùn)行后數(shù)據(jù)傳輸?shù)目偭俊?/p>

vnstat -l

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

來源:http://linux.cn/article-5435-1.html

  1. tcptrack

tcptrack 可以展示 TCP 連接的狀態(tài),它在一個(gè)給定的網(wǎng)絡(luò)端口上進(jìn)行監(jiān)聽。tcptrack 監(jiān)控它們的狀態(tài)并展示出排序且不斷更新的列表,包括來源/目標(biāo)地址、帶寬使用情況等信息,這與 top 命令的輸出非常類似 。

鑒于 tcptrack 在軟件倉(cāng)庫(kù)中,我們可以輕松地在 Debian、Ubuntu 系統(tǒng)中從軟件倉(cāng)庫(kù)使用 apt 包管理器來安裝 tcptrack。為此,我們需要在 shell 或虛擬終端中執(zhí)行下面的命令:

sudo apt-get install cbm

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

sudo apt-get install bmon

我們可以使用下面的命令來運(yùn)行 bmon 以監(jiān)視我們的網(wǎng)絡(luò)狀態(tài):

sudo apt -get install tcpdump

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

# yum install tcpdump

tcpdump 需要以 root 權(quán)限或超級(jí)用戶來運(yùn)行,我們需要帶上我們想要監(jiān)控的 TCP 連接的網(wǎng)絡(luò)接口名稱來執(zhí)行 tcpdump 。在這里,我們有 wlan2 這個(gè)網(wǎng)絡(luò)接口,所以可以像下面這樣使用:

sudo tcpdump -i wlan2 'port 80'

  1. ntopng

ntopng 是 ntop 的下一代版本。它是一個(gè)用于展示網(wǎng)絡(luò)使用情況的網(wǎng)絡(luò)探頭,在一定程度上它與 top 針對(duì)進(jìn)程所做的工作類似。ntopng 基于 libpcap 并且它以可移植的方式被重寫,以達(dá)到可以在每一個(gè) Unix 平臺(tái) 、 MacOSX 以及 Win32 上運(yùn)行的目的。

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

sudo wgethttp://sourceforge.net/projects/ntop/files/ntopng/ntopng-1.1_6932.tgz/download

sudo cd ntopng-1.1_6932

sudo make

$ sudo make install

這樣,在你的 Debian 或 Ubuntu 系統(tǒng)上應(yīng)該已經(jīng)安裝上了你編譯的 ntopng 。

我們已經(jīng)有了有關(guān) ntopng 的使用方法的教程,它既可以在命令行也可以在 Web 界面中使用,我們可以前往這些教程來獲得有關(guān) ntopng 的知識(shí)。

結(jié)論

在這篇文章中,我們介紹了一些在 Linux 下的網(wǎng)絡(luò)負(fù)載監(jiān)控工具,這對(duì)于系統(tǒng)管理員甚至是新手來說,都是很有幫助的。在這篇文章中介紹的每一個(gè)工具都具有其特點(diǎn),不同的選項(xiàng)等,但最終它們都可以幫助你來監(jiān)控你的網(wǎng)絡(luò)流量。

作者:易道云控

鏈接:http://www.itdecent.cn/p/0a4426558bbb

來源:簡(jiǎn)書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容