A. linux下面有什麼工具可以查看每個進程的網路流量
iftop
很強大的,完全
可以做到
-i設定監測的網卡,如:#
iftop
-i
eth1
-b
以bytes為單位顯示流量(默認是bits),如:#
iftop
-b
-n使host信息默認直接都顯示ip,如:#
iftop
-n
-n使埠信息默認直接都顯示埠號,如:
#
iftop
-n
-f顯示特定網段的進出流量,如#
iftop
-f
10.10.1.0/24或#
iftop
-f
10.10.1.0/255.255.255.0
-h(display
this
message),幫助,顯示參數信息
-p使用這個參數後,中間的列表顯示的本地主機信息,出現了本機以外的ip信息;
-b使流量圖形條默認就顯示;
-f這個暫時還不太會用,過濾計算包用的;
-p使host信息及埠信息默認就都顯示;
-m設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:#
iftop
-m
100m
B. linux查看網路流量命令
方法一、nload工具
查看參數幫助命令:
nload –help
-a :這個好像是全部數據的刷新時間周期,單位是秒,默認是300.
-i :進入網卡的流量圖的顯示比例最大值設置,默認10240 kBit/s.
-m :不顯示流量圖,只顯示統計數據。
-o :出去網卡的流量圖的顯示比例最大值設置,默認10240 kBit/s.
-t :顯示數據的刷新時間間隔,單位是毫秒,默認500。
-u :設置右邊Curr、Avg、Min、Max的數據單位,默認是自動變的.注意大小寫單位不同!
h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.
H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.
-U:設置右邊Ttl的數據單位,默認是自動變的.注意大小寫單位不同(與-u相同)!
Devices:自定義監控的網卡,默認是全部監控的,使用左右鍵切換。
如只監控eth0命令: nload eth0
方法二、iftop工具
1、iftop界面相關說明
界面上面顯示的是類似刻度尺的刻度范圍,為顯示流量圖形的長條作標尺用的。
中間的<= =>這兩個左右箭頭,表示的是流量的方向。
TX: 發送流量
RX: 接收流量
TOTAL:總流量
Cumm: 運行iftop到目前時間的總流量
peak: 流量峰值
rates: 分別表示過去 2s 10s 40s 的平均流量
2、iftop相關參數
常用的參數 《Linux就該這么學》
-i 設定監測的網卡,如:# iftop -i eth1
-B 以bytes為單位顯示流量(默認是bits),如:# iftop -B
-n 使host信息默認直接都顯示IP,如:# iftop -n
-N 使埠信息默認直接都顯示埠號,如: # iftop -N
-F 顯示特定網段的進出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),幫助,顯示參數信息
-p 使用這個參數後,中間的列表顯示的本地主機信息,出現了本機以外的IP信息;
-b 使流量圖形條默認就顯示;
-f 這個暫時還不太會用,過濾計算包用的;
-P 使host信息及埠信息默認就都顯示;
-m設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:# iftop -m 100M
進入iftop畫面後的一些操作命令(注意大小寫)
按h切換是否顯示幫助;
按n切換顯示本機的IP或主機名;
按s切換是否顯示本機的host信息;
按d切換是否顯示遠端目標主機的host信息;
按t切換顯示格式為2行/1行/只顯示發送流量/只顯示接收流量;
按N切換顯示埠號或埠服務名稱;
按S切換是否顯示本機的埠信息;
按D切換是否顯示遠端目標主機的埠信息;
按p切換是否顯示埠信息;
按P切換暫停/繼續顯示;
按b切換是否顯示平均流量圖形條;
按B切換計算2秒或10秒或40秒內的平均流量;
按T切換是否顯示每個連接的總流量;
按l打開屏幕過濾功能,輸入要過濾的字元,比如ip,按回車後,屏幕就只顯示這個IP相關的流量信息;
按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化;
按j或按k可以向上或向下滾動屏幕顯示的連接記錄;
按1或2或3可以根據右側顯示的三列流量數據進行排序;
按<根據左邊的本機名或IP排序;
按>根據遠端目標主機的主機名或IP排序;
按o切換是否固定只顯示當前的連接;
按f可以編輯過濾代碼,這是翻譯過來的說法,我還沒用過這個!
按!可以使用Shell命令,這個沒用過!沒搞明白啥命令在這好用呢!
按q退出監控。
方法三、 ifstat
參數:
-a 監測能檢測到的所有網路介面的狀態信息
-z 隱藏流量是無的介面,例如那些介面雖然啟動了但是未用的
-i 指定要監測的介面,後面跟網路介面名
時間:
-T 報告所有監測介面的全部帶寬
-w 用指定的列寬,而不是為了適應介面名稱的長度而去自動放大列寬
-W 如果內容比終端窗口的寬度還要寬就自動換行
-b 用kbits/s顯示帶寬而不是kbytes/s
C. linux 怎麼查看歷史進程流量的
linux 怎麼查看歷史進程流量的
Linux查看網路流量
在GUI下面,有一大把的工具可以顯示網路流量,那麼,命令行下面怎麼辦?
顯然辦法是有的,比如,ifconfig,會有這樣的輸 出:
RX bytes:1224128649 (1.1 GiB) TX bytes:34114947 (32.5 MiB)
過 一會再看,數值有所變化,兩者的差值就是過去一段時間的流量。可是,這也太不人性化了……
正所謂自己動手,豐衣足食,我們自己來寫一個腳 本,實時顯示並刷新!
腳本如下,還是哪句話,本人功力有限,寫腳本的原則是夠用就好。
#!/bin/bash
if [ -n "$1" ]; then
eth_name=$1
else
eth_name="eth0"
fi
D. 如何用指令查看linux的網卡吞吐量或最大網卡流量
linux查看網卡吞吐量和網卡流量用自帶命令,iptraf查看。
1 命令行直接輸入:iptraf(如果沒有,使用yum install iptraf安裝)
此外還有很多工具命令可以查看:
watch命令:
watch -n 1 "/sbin/ifconfig eth0 | grep bytes"。
E. Linux下經常用來查看網路流量的有哪些命令
nethogs: 按進程查看流量佔用
iptraf: 按連接/埠查看流量
ifstat: 按設備查看流量
ethtool: 診斷工具
tcpmp: 抓包工具
ss: 連接查看工具
F. linux下面有什麼工具可以查看每個進程的網路流量
iftop
很強大的,完全
可以做到
-i設定監測的網卡,如:#
iftop
-i
eth1
-B
以bytes為單位顯示流量(默認是bits),如:#
iftop
-B
-n使host信息默認直接都顯示IP,如:#
iftop
-n
-N使埠信息默認直接都顯示埠號,如:
#
iftop
-N
-F顯示特定網段的進出流量,如#
iftop
-F
10.10.1.0/24或#
iftop
-F
10.10.1.0/255.255.255.0
-h(display
this
message),幫助,顯示參數信息
-p使用這個參數後,中間的列表顯示的本地主機信息,出現了本機以外的IP信息;
-b使流量圖形條默認就顯示;
-f這個暫時還不太會用,過濾計算包用的;
-P使host信息及埠信息默認就都顯示;
-m設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:#
iftop
-m
100M
G. Linux 下用什麼命令查看流量
• nethogs: 按進程查看流量佔用
• iptraf: 按連接/埠查看流量
• ifstat: 按設備查看流量
• ethtool: 診斷工具
• tcpmp: 抓包工具希賽里有很多這方面資料的。
H. linux如何查看流量
常用兩個方法:直接命令查看、安裝個iftop查看;
直接命令查看
watch cat /proc/net/dev
######################
安裝epel以此解決找不到iftop
cd/usr/local/src
wgethttp://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
rpm-ivhepel-release-6-8.noarch.rpm
yumcleanall
yummakecache
I. linux如何獲得一個進程的網路流量
Linux下是沒有文件直接給你按進程記錄流量信息的。你想要編程實現的話,辦法是有的,只是比較麻煩。首先,你需要能截取流經網卡的數據包,這個可以通過libpcap來完成,其次你要完成的最重要的一步就是怎麼根據埠號找到進程的pid。埠號通過截取的數據包可以獲得,這個時候你要按行來解析/proc/net/tcp (如果要支持ipv6的話還要解析/proc/net/tcp6),這個文件記錄了當前活躍的TCP連接情況,每一行代表一條連接,我們感興趣的是其中的inode這一項,你得把inode的值解析出來保存。然後蛋疼的時候來了,接下來你得遍歷所有的/proc/pid/fd文件,察看其中每一個文件描述符,如果發現內容為socket[xxxx]的,把xxxx截取出來,這個xxxx也是inode號,如果和你之前解析/proc/net/tcp的inode號吻合,恭喜你,這說明這個pid和那個tcp連接有關系,進而也就確定了埠號和pid的對應關系,也就知道了數據包和進程之間的對應關系了。
我的建議:
先看看http://www.tcpmp.org/pcap.html, 熟悉一下libpcap庫的用法,怎麼截取數據包。
自己看看/proc/net/tcp的內容,想想怎麼做文本解析,除了inode外,源ip,源埠號,目的ip,目的埠號都可以解析出來,而這個四元組實際就代表了一條tcp連接。
想想怎麼做數據包,連接,進程的老化超時處理。比如說,當前截取的到的數據包在統計過一次流量後,下一次就不應該再計入了,怎麼處理?一條連接長時間沒有任何數據包的交互,怎麼老化掉?一個進程長時間沒有數據包的交互,甚至用戶給關閉了,你的程序如何感知?libpcap截取到數據包後會給你提供截取到的時間戳,好好利用這個時間戳就可以辦到。
最後,以數據包 -> 連接 -> 進程 的關系來思考會有助於你的程序設計,一條連接可以有N個數據包,一個進程可以有N條連接。這么一想,這3個結構體或者類就能定義好了。剩下的自己琢磨琢磨。