不少時候,開發或者產品不必定能給出很規範的接口或者相關文檔,搞很差有些都只是經過口頭傳遞信息,此時,咱們就須要掌握獨立抓包分析請求的方法,避免被動的等待,像我工做中就遇到過,請求時基於soap協議的,是一個硬件網關設備和平臺的交換,一個事件就包含屢次的交互,我就是利用抓包進行分析和模擬請求的。mysql
一、核心思路web
服務基本上都是部署在Linux上,在Linux下,當咱們須要抓取網絡數據包分析時,一般是使用tcpdump抓取網絡raw數據包存到一個文件,而後下載到本地使用wireshark界面網絡分析工具進行網絡包分析。sql
二、tcpdump使用服務器
tcpdump是一款很是強大的網絡抓包工具,能夠在網絡問題的分析中提供不少有用的信息,適用場景豐富。tcpdump的使用簡單易上手,它的命令格式以下:網絡
tcpdump [-adeflnNOpqStvx][-c<數據包數目>][-dd][-ddd][-F<表達文件>]
[-i<網絡界面>][-r<數據包文件>][-s<數據包大小>][-tt][-T<數據包類型>]
[-vv][-w<數據包文件>][輸出數據欄位]
app
其餘經常使用參數的說明:tcp
-c:指定要抓取的包數量。
-i:interface:指定tcpdump須要監聽的接口。
-n:對地址以數字方式顯式,不然顯式爲主機名,也就是說-n選項不作主機名解析。
-nn:除了-n的做用外,還把端口顯示爲數值,不然顯示端口服務名。
-s: <數據包大小> 設置每一個數據包的大小。
-N:不打印出host的域名部分。
-P:指定要抓取的包是流入仍是流出的包。能夠給定的值爲"in"、"out"和"inout",
默認爲"inout"。
-s len:設置tcpdump的數據包抓取長度爲len,若是不設置默認將會是65535字節。
對於要抓取的數據包較大時,長度設置不夠可能會產生包截斷。
-e:輸出的每行中都將包括數據鏈路層頭部信息,例如源MAC和目標MAC。
-q:快速打印輸出。即打印不多的協議相關信息,從而輸出行都比較簡短。
-X:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。
-XX:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。
-v:當分析和打印的時候,產生詳細的輸出。
-vv:產生比-v更詳細的輸出。
-vvv:產生比-vv更詳細的輸出。
-w<數據包文件> 把數據包數據寫入指定的文件。ide
經常使用關鍵字說明:工具
host(缺省類型): 指明一臺主機性能
net: 指明一個網絡地址
port: 指明端口號
src: 指定網絡源地址
dst: 指定目標網絡地址;
下面舉幾個常見對例子,供你們參考。
一、對網卡eth0進行抓包,而且只抓全部進入和離開網絡地址59.111.243.17的包。
tcpdump -i eth0 net 59.111.243.17
二、對網卡eth0進行抓包,而且只抓全部進入和離開網絡地址59.111.243.17的包,且源端口號爲80。
tcpdump –i eth0 net 59.111.243.17 and srcport 80
三、對網卡eth0進行抓包,而且只抓全部進入和離開網絡地址59.111.243.17的包,抓包個數指定爲10000個,並寫入temp.pcap。
tcpdump -i eth0 net 59.111.243.17 -c 10000 -w temp.pcap
四、Sql語句是經過網絡以文本方式傳輸到mysql服務器端的。所以咱們徹底也能夠經過tcpdump這個工具把全部的sql語句捕獲到。
tcpdump -i eth0 -A -s 3000 port 3306 -w sql.log
五、想要截獲全部210.27.48.1的主機收到的和發出的全部的數據包,使用命令。
tcpdump host 210.27.48.1
六、想要截獲主機 210.27.48.1 和主機210.27.48.2 或210.27.48.3的通訊,使用命令。
tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3)
七、若是想要獲取主機210.27.48.1除了和主機210.27.48.2以外全部主機通訊的ip包,使用命令。
tcpdump ip host 210.27.48.1 and ! 210.27.48.2
八、若是想要獲取主機210.27.48.1接收或發出的telnet包,使用命令。
tcpdump tcp port 23 host 210.27.48.1
九、後臺抓包, 控制檯退出也不會影響,使用命令。
nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap &
最後,只須要把導出來對cap包,放到Wireshark中分析便可,本文不作講解。
更多其餘測試內容都在公衆號大話性能能夠參考連接文末更多測試好文章