簡介
mysql sniffer 是乙個基於 mysql 協議的抓包工具,實時抓取 mysqlserver 端或 client 端請求,並格式化輸出。輸出內容包括訪問時間、訪問使用者、** ip、訪問 database、命令耗時、返回資料行數、執行語句等。有批量抓取多個埠,後台執行,日誌分割等多種使用方式,操作便捷,輸出友好。
同型別工具還有vc-mysql-sniffer,以及 tshark 的 -e mysql.query 引數來解析 mysql 協議。
使用建議在 centos6.2 及以上編譯安裝,並用 root 執行。
依賴glib2-devel、libpcap-devel、libnet-devel
安裝git clone [email protected]:qihoo360/mysql-sniffer.git
cd mysql-sniffer
mkdir proj
cd proj
cmake ../
make
cd bin/
引數:./mysql-sniffer -h
usage mysql-sniffer [-d] -i eth0 -p 3306,3307,3308 -l /var/log/mysql-sniffer/ -e stderr
[-d] -i eth0 -r 3000-4000
-d daemon mode.
-s how often to split the log file(minute, eg. 1440). if less than 0, split log everyday
-i inte***ce. default to eth0
-p port, default to 3306. multiple ports should be splited by ','. eg. 3306,3307
this option has no effect when -f is set.
-r port range, don't use -r and -p at the same time
-l query log directory. make sure that the directory is accessible. default to stdout.
-e error log filename or 'stderr'. if set to /dev/null, runtime error will not be recorded
-f filename. use pcap file instead capturing the network inte***ce
-w white list. dont capture the port. multiple ports should be splited by ','.
-t truncation length. truncate long query if it's longer than specified length. less than 0 means no truncation
-n keeping tcp stream count, if not set, default is 65536. if active tcp count is larger than the specified count, mysql-sniffer will remove the oldest one
示例1. 實時抓取某埠資訊並列印到螢幕
mysql-sniffer -i eth0 -p 3306
2017-02-23 14:47:45 testuser 10.xx.xx.xx null 0ms 1 select @@version_comment limit 1
2017-02-23 14:47:45 testuser 10.xx.xx.xx null 0ms 1 select user()
2017-02-23 14:47:48 testuser 10.xx.xx.xx null 0ms 13 show databases
2017-02-23 14:47:51 testuser 10.xx.xx.xx null 0ms 1 select database()
2017-02-23 14:47:51 testuser 10.xx.xx.xx mysql 0ms 0 use mysql
2017-02-23 14:47:53 testuser 10.xx.xx.xx mysql 0ms 29 show tables
2017-02-23 14:47:54 testuser 10.xx.xx.xx mysql 0ms 1 select 1
2017-02-23 14:48:01 testuser1 10.xx.xx.xx null 0ms 0 set autocommit=1
2017-02-23 14:48:01 testuser1 10.xx.xx.xx null 0ms 0 set autocommit=1
2. 實時抓取某埠資訊並列印到檔案
-l 指定日誌輸出路徑,日誌檔案將以 port.log 命名。
mysql-sniffer -i eth0 -p 3306 -l /tmp
3. 實時抓取多個埠資訊並列印到檔案
-l 指定日誌輸出路徑,-p 指定需要抓取的埠列表逗號分割。日誌檔案將以各自 port.log 命名。
mysql-sniffer -i eth0 -p 3306,3307,3310 -l /tmp
問題有lvs環境下,如果client ip是儲存在在每個連線階段的tcp opt欄位中,那麼mysql-sniffer提取的真實的client ip而不是lvs的ip。
只能抓取新建的鏈結,如果是之前建立的鏈結將獲取不到使用者名稱和庫名,並有一定機率丟包。
抓包工具sniffer 九點之BLE抓包1
今年咱們聊聊抓取ble的空中包的環境。就是抓取藍芽在通訊中或廣播在大氣中的資料,這些資料分析分析則能更容易理解藍芽通訊協議!此方案實測已支援nordic,ti,csr,bk博通整合等ble方案的藍芽裝置。開發版 nrf52832開發版 軟體 1.wireshark的兩個配置檔案2.nrf52832 ...
抓包工具分析
寫乙個抓包工具專案的分析吧。前幾天接到乙個需求,大致是做乙個高效能的抓包和協議分析工具,抓出的包儲存到檔案裡,效能要求是500mb s。客戶要求是乙個開放式框架來開發這個工具,既要完成大概5種協議的協議頭分析,也要能夠方便開發新的協議分析外掛程式。整個專案的框架為 框架程式 配置檔案 外掛程式。其中...
資料 抓包工具
android 前言 對於移動端應用來說,常常是需要進行抓包分析資料引數的,android抓包常規想到的解決方案就是通過adb tcpdump生成抓包檔案後,上傳至pc端,再通過wirshark檢視抓包的資料,但是,對於android應用來說,客戶端與服務端的互動更多的是以rest介面服務形式的,多...