1. tshark
1.1 安裝
Centos
yum install -y wireshark
Ubuntu
apt-get install -y tshark
1.2 使用
1.2.1 抓包參數說明
常用
-i
和-f
參數
-i
設置抓包的網絡接口,不設置則默認爲第一個非自環接口。-f
設定抓包過濾表達式(capture filter expression)。抓包過濾表達式的寫法雷同於tcpdump,可參考tcpdump man page的有關部分。-D
列出當前存在的網絡接口。在不瞭解OS所控制的網絡設備時,一般先用“tshark -D”查看網絡接口的編號以供-i參數使用。-s
設置每個抓包的大小,默認爲65535,多於這個大小的數據將不會被程序記入內存、寫入文件。(這個參數相當於tcpdump的-s,tcpdump默認抓包的大小僅爲68)-p
設置網絡接口以非混合模式工作,即只關心和本機有關的流量。-B
設置內核緩衝區大小,僅對windows有效。-y
設置抓包的數據鏈路層協議,不設置則默認爲-L找到的第一個協議,局域網一般是EN10MB等。-L
列出本機支持的數據鏈路層協議,供-y參數使用。
-f
參數詳解
- 設置監聽的協議類型:
-f udp/tcp/http
必須爲小寫 - 設置源ip:
-f "src host x.x.x.x"
- 設置源端口:
-f "src port 80"
- 設置源ip和源端口:
-f "src host x.x.x.x and src port xx"
- 設置目的ip:
-f "dst host x.x.x.x"
- 設置目的端口:
-f "dst port xx"
- 設置目的ip和端口:
-f "dsthost x.x.x.x and port xx"
1.2.2 輸出參數說明
常用
-T
和-l
參數
-w
設置raw數據的輸出文件-F
設置輸出raw數據的格式,默認爲libpcap。-V
設置將解碼結果的細節輸出,否則解碼結果僅顯示一個packet一行的summary。-x
設置在解碼輸出結果中,每個packet後面以HEX dump的方式顯示具體數據。-T
設置解碼結果輸出的格式,包括text,ps,psml和pdml,默認爲text。-t
設置解碼結果的時間格式。“ad”表示帶日期的絕對時間,“a”表示不帶日期的絕對時間,“r”表示從第一個包到現在的相對時間,“d”表示兩個相鄰包之間的增量時間-S
在向raw文件輸出的同時,將解碼結果打印到控制檯。-l
在處理每個包時即時刷新輸出。-X
擴展項。-q
設置安靜的stdout輸出(例如做統計時)-z
設置統計參數。
1.3 示例
- 實時打印當前http請求的url
tshark -i eth0 -n -f "tcp dst port 80" -T fields -e http.host -e http.request.uri -l
- 實時打印當前mysql查詢語句
tshark -i eth0 -n -f "tcp dst port 3306" -T fields -e mysql.query
2. tcpdump
這也是一個抓包工具,不過沒tshark好用,簡單介紹一下吧。。
2.1 安裝
Centos
yum install -y tcpdump
Ubuntu
apt-get install -y tcpdump
2.2 使用
- 截獲從網口
eth0
出去或接收到的包
tcpdum -i eth0
- 截獲所有與主機 xx.xx.xx.xx 相關的包
tcpdump host xx.xx.xx.xx
- 截獲tpc協議的80端口的包
tcpdump tcp port 80