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

1、前言

Darkstat - Nework Traffic Analyzer 簡單來說就是把通過指定網卡的封包利用圖表統計方式呈現,讓您可以很簡單的了解現在網卡上進、出的流量。



Darkstat 特色:

  • 使用圖表方式來呈現 Host、Port。
  • 使用嵌入式網頁伺服器 (因此不需安裝 Web Server)。
  • 預設使用 DNS 來解析分析到的 Host。
  • 體積小、可攜式、單執行緒、高效率、不複雜。

Darkstat 成果展示畫面:



文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.下載 darkstat RPM
          步驟2.安裝 darkstat RPM
          步驟3.啟動 darkstat
4、補充: DarkStat 可用參數說明
5、參考



2、實作環境

  • CentOS 5.1 (Linux 2.6.18-53.1.4.el5)
  • darkstat-3.0.707-1.el5.rf



3、安裝及設定

步驟1.下載 darkstat RPM

至 RPM Search darkstat-3.0.707-1.el5.rf.i386.rpm 下載 darkstat-3.0.707-1.el5.rf.i386.rpm。
wget ftp://ftp.pbone.net/mirror/dries.studentenweb.org/apt/redhat/el5/en/i386/RPMS.dries/darkstat-3.0.707-1.el5.rf.i386.rpm



步驟2.安裝 darkstat RPM

利用 rpm 指令來安裝 DarkStat RPM。
rpm -ivh darkstat-3.0.707-1.el5.rf.i386.rpm
 Preparing...               ################################# 100%
    1:darkstat             ################################# 100%




步驟3.啟動 darkstat

/usr/sbin/darkstat -i eth0
 darkstat 3.0.707 (built with libpcap 2.4)
 darkstat (21240): starting up
 darkstat (21240): daemonizing to run in the background!
 darkstat (21241): I am the main process
 darkstat (21240): parent waiting
 darkstat (21242): set uid/gid to 99/99
 darkstat (21241): DNS child has PID 21242
 darkstat (21241): caplen is 54
 darkstat (21241): capturing in promiscuous mode
 darkstat (21241): listening on 0.0.0.0:667
 darkstat (21241): loaded 133 protos
 darkstat (21241): loaded 4594 tcp and 4549 udp servs, from total 9158
 darkstat (21241): chrooted into: /var/empty
 darkstat (21241): set uid/gid to 99/99                  
 darkstat (21241): local_ip update(eth0) = 61.60.59.58
 darkstat (21241): entering main loop
 darkstat (21240): parent done reading, calling waitpid
 darkstat (21240): waitpid ret 0, status is 3

檢查 darkstat service 是否開啟服務的 Port (Default 667)。
netstat -tnl |grep 667
 tcp        0      0 0.0.0.0:667                 0.0.0.0:*                   LISTEN

檢查 darkstat process 是否執行中。
ps ax |grep darkstat
 21241 ?        Ss     0:00 /usr/sbin/darkstat -i eth0
 21242 ?        Ss     0:00 /usr/sbin/darkstat -i eth0

若要停止監聽的話則 kill 掉主行程即可,通常在啟動 darkstat 後第四行訊息就是說明該 process id 為 main process。
/usr/sbin/darkstat -i eth0
 darkstat 3.0.707 (built with libpcap 2.4)
 darkstat (21240): starting up
 darkstat (21240): daemonizing to run in the background!
 darkstat (21241): I am the main process




4、補充: 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。



5、參考