站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

Darkstat-統計指定網卡的封包流量

前言

[Darkstat - Nework Traffic Analyzer] 簡單來說就是將通過網卡的封包利用圖表方式呈現,讓您可以很簡單的了解目前網路卡上面進、出的流量。

Darkstat 特色:

Darkstat 成果展示畫面:

實作環境

安裝及設定

步驟1.安裝 darkstat 套件

切換至 Ports Tree 路徑安裝 darkstat 套件

 #cd /usr/ports/net-mgmt/darkstat    //切換到安裝路徑
 #make install clean                 //安裝套件並清除安裝中不必要的檔案

步驟2.編輯 /etc/rc.conf

修改 /etc/rc.conf 檔以便系統重新開機時能自動啟動 Darkstat 服務

 #vi /etc/rc.conf
 darkstat_enable="YES"               //開機啟動 Darkstat 服務
 darkstat_interface="em0"            //指定監聽的網卡名稱

步驟3.啟動 darkstat

鍵入如下指令即可開始對指定網路卡進行監聽的動作

 #/usr/local/etc/rc.d/darkstat.sh start
 Starting darkstat.
 darkstat 3.0.707 (built with libpcap 2.4)
 darkstat (03360): starting up
 darkstat (03360): daemonizing to run in the background!
 darkstat (03360): parent waiting
 darkstat (03361): I am the main process
 darkstat (03362): set uid/gid to 65534/65534
 darkstat (03361): DNS child has PID 3362
 darkstat (03361): caplen is 54
 darkstat (03361): capturing in promiscuous mode
 darkstat (03361): listening on 0.0.0.0:667
 darkstat (03361): loaded 131 protos
 darkstat (03361): loaded 1002 tcp and 968 udp servs, from total 1975
 darkstat (03361): chrooted into: /var/run/darkstat
 darkstat (03361): set uid/gid to 65534/65534
 darkstat (03361): local_ip update(em0) = 61.60.59.58
 darkstat (03361): entering main loop
 darkstat (03360): parent done reading, calling waitpid
 darkstat (03360): waitpid ret 0, status is 0

檢查 Darkstat Service 是否啟動

 #/usr/local/etc/rc.d/darkstat.sh status
 darkstat is running as pid 3361.

檢查 Darkstat Service 是否開啟服務的 Port (Default Listen Port 667)

 #sockstat |grep 667
 nobody   darkstat   3361  10 tcp4   *:667                 *:*

檢查 Darkstat Process 是否執行中

 #ps ax |grep darkstat
 3361  ??  Ss     0:00.01 /usr/local/sbin/darkstat -i em0 --chroot /var/run/darkstat --pidfile darkstat.pid --user nobody
 3362  ??  Is     0:00.00 darkstat: DNS child (darkstat)

Darkstat 參數說明

參數說明
-i interface 指定監聽的網路卡名稱
--debug開啟除錯模式
--no-promisc不使用混亂模式 (Promiscuous Mode)
--no-dns不使用 DNS 來解析 IP >> Hostname 名稱
-p port指定 Embedded Webserver 使用的 Port (預設為 667)
-b bindaddr指定 Embedded Webserver 使用的 IP Address 預設使用 0.0.0.0
-f filter指定過濾 (Packet Filter),詳細過濾語法請參考 man tcpdump
-l network/netmask定義本地網段 (Local Network) 所以進入及出去的封包將會顯示在圖表 (Graphs) 中
--chroot dir指定 Chroot 資料夾
--user username指定執行服務的使用者 (預設使用 nobody)
--daylog filename指定 Daily Log Traffic Statistics (必須配合 --chroot 設定)
--import filename匯入 Darkstat Database
--export filename匯出 Darkstat Database (必須配合 --chroot 設定)
--pidfile filename建立 Darkstat Process ID

Me FAQ

Q1.無法安裝 darkstat?

Error Meaage:

無法安裝 darkstat 並出現如下錯誤訊息

 #cd /usr/ports/net-mgmt/darkstat ; make install clean
 On FreeBSD before 6.2 ports system unfortunately can not set default X11BASE by itself so please help it a bit by setting X11BASE=${LOCALBASE}
 in make.conf.On the other hand, if you do wish to use non-default X11BASE, please set variable USE_NONDEFAULT_X11BASE. *** Error code 1 Stop.

Ans:

因為本次安裝的機器為 FreeBSD 5.4-RELEASE-p7 而訊息也很清楚說明,若您在更新 Port Tree 後且您的 FreeBSD 版本為 6.2 以前的話,那麼在安裝此套件時會安裝 X11 套件若不想安裝 X11 套件的話可以把相關的參數加到 /etc/make.conf 內。

 #vi /etc/make.conf                  //視個人需求加入吧
 X11BASE=${LOCALBASE}                //會安裝 X11 相關套件
 USE_NONDEFAULT_X11BASE=yes          //不安裝 X11 相關套件

參考

[Darkstat - Nework Traffic Analyzer or Network Monitor and Screenshots]

[苗栗縣大湖鄉大南國民小學FreeBSD 全球資訊網路架站日誌 - 流量統計 darkstat]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com