[Darkstat - Nework Traffic Analyzer] 簡單來說就是把通過指定網卡的封包利用圖表統計方式呈現,讓您可以很簡單的了解現在網卡上進、出的流量。
Darkstat 特色:
- 使用圖表方式來呈現 Host、Port。
- 使用嵌入式網頁伺服器 (因此不需安裝 Web Server)。
- 預設使用 DNS 來解析分析到的 Host。
- 體積小、可攜式、單執行緒、高效率、不複雜。
Darkstat 成果展示畫面:
[Darkstat Hostnames Screenshots]
【作業環境】
FreeBSD 5.4-RELEASE-p7
darkstat-3.0.707
【安裝及設定】
Step1.安裝 darkstat 套件
#cd /usr/ports/net-mgmt/darkstat //切換到安裝路徑
#make install clean //安裝套件並清除安裝中不必要的檔案
Step2.編輯 /etc/rc.conf
編輯 /etc/rc.conf 來達到開機啟動 Darkstat 及指定要監聽的網卡名稱
#vi /etc/rc.conf
darkstat_enable="YES" //開機啟動 Darkstat service
darkstat_interface="em0" //指定監聽的網卡名稱
Step3.啟動 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 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)
補充參數說明
參數 | 說明 |
-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 套件或不想安裝的話可以把相關的參數加到 /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]
【Log】
初稿-2008/01/31