當前位置:首頁 » 操作系統 » linux監控網路流量

linux監控網路流量

發布時間: 2022-04-05 05:52:44

linux流量監控的幾個方法

看你用哪個linux系統啊,建議你用專業的linux系統,比如WFilter NGF系統,基於Linux,專門做上網行為管理和流控技術。流量監控只是其中的小功能。

Ⅱ 如何在Linux下統計高速網路中的流量

一般的linux下可以通過

/proc/net/dev

文件對某個或多個網路介面進行流量監控

通過定時讀取該文件中的數據然後通過計算就可以算是當前是否有數據流通

並且流通的速度

該文件內部也記錄了該網路介面所有流通的流量數量和數據包的數量

包括上傳與下載的數量


下面是一個利用該文件的簡單代碼

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#include<ncurses.h>
#include<pthread.h>
#include<locale.h>

typedefstruct
{
unsignedlonglongintup_bytes;
unsignedlonglongintdn_bytes;
unsignedlonglongintup_packs;
unsignedlonglongintdn_packs;
}SP;

intget_traffic(SP*sp,char*interface)
{
char*buf=NULL;
size_tlen;
FILE*fp;

if((fp=fopen("/proc/net/dev","rb"))==NULL)
{
perror("Read/proc/net/devError!");
return-1;
}

while(!feof(fp))
{
getline(&buf,&len,fp);
if(buf==NULL)
return-1;

if(strstr(buf,interface))
break;

free(buf);
buf=NULL;
}

if(feof(fp))
{
printf("CanNotFind%sInterface! ",interface);
fclose(fp);

return-1;
}

sscanf(buf,"%*[^:]:%lld%lld%*s%*s%*s%*s%*s%*s%lld%lld",
&sp->dn_bytes,&sp->dn_packs,
&sp->up_bytes,&sp->up_packs);

free(buf);
fclose(fp);
return0;
}

void_quit(WINDOW*win)
{
while(getchar()!='q')
continue;

delwin(win);
echo();
endwin();

exit(0);
}

voidhelp(void)
{
printf("Use: ");
printf("netsp[interface] ");

exit(-1);
}

intmain(intargc,char**argv)
{
unsignedlongup_times=0;
unsignedlongdn_times=0;
doubleup_bytes;
doubledn_bytes;
doubleup_sp;
doubledn_sp;
SPstart,end,temp;
WINDOW*win;
intx,y;
pthread_tthread;

if(argc!=2)
help();

setlocale(LC_ALL,"");
if(get_traffic(&start,argv[1])==-1)
return-1;

initscr();
curs_set(0);
noecho();
if(has_colors())
{
start_color();
use_default_colors();
init_pair(1,COLOR_CYAN,-1);
init_pair(2,COLOR_GREEN,-1);
}

getmaxyx(stdscr,y,x);
win=newwin(12,30,y/2-10/2,x/2-30/2);
refresh();
wattron(win,COLOR_PAIR(1));
box(win,0,0);
wattroff(win,COLOR_PAIR(1));
wrefresh(win);
pthread_create(&thread,NULL,(void*)_quit,win);

while(1)
{
get_traffic(&temp,argv[1]);
usleep(500000);
//sleep(1);
++up_times;
++dn_times;
get_traffic(&end,argv[1]);

if(up_times%10==0)
{
up_times=1;
start.up_bytes=temp.up_bytes;
}

if(dn_times%10==0)
{
dn_times=1;
start.dn_bytes=temp.dn_bytes;
}

if(end.up_bytes-temp.up_bytes==0)
{
up_times=1;
temp.dn_bytes=start.dn_bytes;
get_traffic(&start,argv[1]);
start.dn_bytes=temp.dn_bytes;
}

if(end.dn_bytes-temp.dn_bytes==0)
{
dn_times=1;
temp.up_bytes=start.up_bytes;
get_traffic(&start,argv[1]);
start.up_bytes=temp.up_bytes;
}

wattron(win,COLOR_PAIR(2));
up_bytes=(double)end.up_bytes/1024/1024;
dn_bytes=(double)end.dn_bytes/1024/1024;

if(up_bytes<1024)
mvwprintw(win,2,6,"已上傳%.2fMB",up_bytes);
else
mvwprintw(win,2,6,"已上傳%.2fGB",up_bytes/1024);
if(dn_bytes<1024)
mvwprintw(win,3,6,"已下載%.2fMB",dn_bytes);
else
mvwprintw(win,3,6,"已下載%.2fGB",dn_bytes/1024);

mvwprintw(win,5,6,"已上傳包數量%ld",end.up_packs);
mvwprintw(win,6,6,"已下載包數量%ld",end.dn_packs);

up_sp=(double)(end.up_bytes-start.up_bytes)/up_times/1024*2;
dn_sp=(double)(end.dn_bytes-start.dn_bytes)/up_times/1024*2;

if(up_sp<1024)
mvwprintw(win,8,6,"上傳速度%.2fkb/s",up_sp);
else
mvwprintw(win,8,6,"上傳速度%.2fmb/s",up_sp/1024);
if(dn_sp<1024)
mvwprintw(win,9,6,"下載速度%.2fkb/s",dn_sp);
else
mvwprintw(win,9,6,"下載速度%.2fmb/s",dn_sp/1024);

wattroff(win,COLOR_PAIR(2));
wrefresh(win);
wclear(win);
wattron(win,COLOR_PAIR(1));
box(win,0,0);
wattroff(win,COLOR_PAIR(1));
}

return0;
}

Ⅲ 如何用指令查看linux的網卡吞吐量或最大網卡流量

linux查看網卡吞吐量和網卡流量用自帶命令,iptraf查看。

1 命令行直接輸入:iptraf(如果沒有,使用yum install iptraf安裝)

此外還有很多工具命令可以查看:

watch命令:

watch -n 1 "/sbin/ifconfig eth0 | grep bytes"。

Ⅳ 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

Ⅳ 在LINUX下能用netstat 實時查看網路流量嗎或者其他命令

用netstat -in看倒是可以,但是費事,不如iptraf看得方便直觀

Ⅵ 如何測試linux的流量統計,帶寬高峰,總流量

在本文中我們介紹一種簡單的Shell 腳本,它可以監控網路流量而且不依賴於緩慢的libpcap庫。這些腳本支持Gb以上規模的高速網路介面,如果你對「匯聚型」的網路流量感興趣的話,它們可統計每個網路介面上的流量。

腳本主要是基於sysfs虛擬文件系統,這是由內核用來將設備或驅動相關的信息輸出到用戶空間的一種機制。網路介面的相關分析數據會通過「/sys/class/net/<ethX>/statistics」輸出。

Ⅶ Linux下查看網卡流量方法

Linux通過vnstat查看網卡流量

直接運行

yum install vnstat -y

安裝完後測試:

源碼編譯方式安裝vnstat

適用於個別系統無法yum安裝的查看網卡流量情況。

wget http://humdi.net/vnstat/vnstat-1.10.tar.gz

tar xvzf vnstat-1.10.tar.gz

cd vnstat-1.10

make && make install

Ⅷ linux如何查看流量

  1. 常用兩個方法:直接命令查看、安裝個iftop查看;

  2. 直接命令查看

    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

    Ⅸ suse linux系統怎樣監控流量

    如果採用編譯安裝可以到iftop官網下載最新的源碼包。
    安裝前需要已經安裝好基本的編譯所需的環境,比如make、gcc、autoconf等。安裝iftop還需要安裝libpcap和libcurses。
    CentOS上安裝所需依賴包:
    yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
    Debian上安裝所需依賴包:
    apt-get install flex byacc libpcap0.8 libncurses5
    下載iftop
    wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
    tar zxvf iftop-0.17.tar.gz
    cd iftop-0.17

熱點內容
昆特牌外服安卓怎麼登錄 發布:2024-09-28 07:19:17 瀏覽:882
在linux下安裝win7 發布:2024-09-28 07:14:55 瀏覽:390
伺服器170台電腦配置 發布:2024-09-28 07:09:09 瀏覽:776
iis設置ftp 發布:2024-09-28 06:39:18 瀏覽:410
阿里雲伺服器購買價格 發布:2024-09-28 06:38:37 瀏覽:621
緩存平台 發布:2024-09-28 06:38:34 瀏覽:956
分類器python 發布:2024-09-28 06:38:32 瀏覽:268
編譯原理技術與工具 發布:2024-09-28 06:38:32 瀏覽:393
java抽簽 發布:2024-09-28 06:29:27 瀏覽:911
安卓系統怎麼限制軟體使用時間 發布:2024-09-28 06:28:31 瀏覽:555