iftop監控網路流量命令詳解

2021-10-10 15:58:09 字數 2157 閱讀 7703

簡介

最近遇到了乙個問題,使用tcp通訊時,資料接收端有較大的時延。使用的是乙個傳送端,多個接收端的廣播模式。

加入了時間戳除錯,發現send傳送後,當資料量較大時,過了好幾秒rcv端才接收到。

一開始懷疑是客戶端處理資料較慢導致的,加入了多執行緒處理,依然無效。

而且觀察了rcv端的資料處理執行緒,cpu並不高。而且send端內存在一直增大,才懷疑是網路堵塞造成的。

為了驗證這個猜想,需要監控各個網絡卡的流量,於是這用了這個工具iftop

最後發現,果然是由於網路頻寬不足引起的阻塞。

這裡做一記錄。

iftop命令用於檢視網路上的流量情況,包括實時速率、總流量、平均流量等,是一款實時流量監控工具。

在除錯網路通訊的程式中可能會用得上。

注意,iftop命令不記錄歷史資料,無報表,且只能顯示從程式啟動到現在的總流量。它的執行需要root許可權。

關於linux的更多系統命令,請參考檢視linux系統核心、發行版、cpu、磁碟、記憶體、網路、埠使用資訊。

安裝以centos7下安裝為例。

命令列安裝:

yum install -y epel-release && yum install -y iftop

如果安裝源沒有找到這個包,那就只能原始碼安裝了。

原始碼安裝也很簡單,步驟如下:

安裝依賴包:yum -y install flex byacc libpcap ncurses ncurses-devel libpcap-devel解壓:tar zxf iftop-1.0pre4.tar.gz常規安裝:

cd iftop-1.0pre4

./configure

make -j4

make install # 必須是root

中間如果報錯,如:

configure: error: can't find pcap.h

you're not going to get very far without libpcap.

應該是依賴包安裝失敗了,重新安裝再試一下就好了。

使用直接執行iftop即可啟動流量監控。如下圖所示:

其中:

可以看到,通過iftop可以很容易看到各個連線的流量使用情況。

引數介紹

在啟動iftop時,可以指定監控的網絡卡,預設為第一塊網絡卡:

iftop -i eth1

其他常用命令:

iftop -n # 直接顯示ip, 不進行dns反解析

iftop -n # 直接顯示連線埠編號, 不顯示服務名稱

iftop -f 192.168.1.0/24 or 192.168.1.0/255.255.255.0 # 顯示某個網段進出包流量

一般情況下,使用iftop -nn啟動即可。

在進入iftop介面後,直接輸入以下引數進行調節控制:

我一般都是使用iftop -nn -i eth0啟動,然後再輔助各種引數來調整。

擴充套件iftop使用比較簡單,通過各種引數也能很快找到自己想要的資料。

也有一些其他流量監控工具,如:

nload:檢視各個網路裝置的當前網路速率

iptraf-ng:可以輸出網絡卡的tcp、udp等各種資料,和各個網絡卡的實時網速

stat:用來替換vmstat、iostat、netstat、nfsstat和ifstat的全能系統資訊統計工具,支援資料實時重新整理,輸出直觀易懂

sar:system activity report的縮寫,是一款全面的linux系統執行狀態統計和效能分析工具,可從磁碟io、cpu負載、記憶體使用等多個維度對系統活動進行報告

nethogs:檢視單個程序流量而設計的工具,按照程序進行頻寬分組

tcpdump:用來抓包,儲存的資料可以用wireshark開啟和檢視

網路流量監控命令 iftop

二 iftop相關引數 常用的引數 i設定監測的網絡卡,如 iftop i eth1 b 以bytes為單位顯示流量 預設是bits 如 iftop b n使host資訊預設直接都顯示ip,如 iftop n n使埠資訊預設直接都顯示埠號,如 iftop n f顯示特定網段的進出流量,如 iftop...

網路流量監控工具 iftop

文章 再次本人只是作為筆記使用,不做其他用途。日常工作中用它來監控網絡卡的實時流量,可以指定網段 反向解析ip 顯示埠資訊等,我這裡是直接安裝 要是沒有epel源的話 安裝epel源 centos rhel 5 rpm uvh centos rhel 6 rpm uvh centos rhel 7 ...

網路流量監控工具 iftop

文章 再次本人只是作為筆記使用,不做其他用途。日常工作中用它來監控網絡卡的實時流量,可以指定網段 反向解析ip 顯示埠資訊等,我這裡是直接安裝 要是沒有epel源的話 安裝epel源 centos rhel 5 rpm uvh centos rhel 6 rpm uvh centos rhel 7 ...