Linux伺服器下的HTTP抓包分析
說到抓包分析,最簡單的辦法莫過於在客戶端直接安裝一個Wireshark或者Fiddler了,但是有時候由於客戶端開發人員(可能是第三方)知識欠缺或者其它一些原因,無法順利的在客戶端進行抓包分析,這種情況下怎麼辦呢?
本文中,我們將給大家介紹在服務端進行抓包分析的方法,使用tcpdump抓包,配合Wireshark對HTTP請求進行分析,非常簡單有效。
本文將會持續修正和更新,最新內容請參考我的GITHUB上的程序猿成長計劃項目,歡迎 Star,更多精彩內容請follow me。
使用tcpdump在伺服器抓包
在服務端進行抓包分析,使用tcpdump
tcpdump -tttt -s0 -X -vv tcp port 8080 -w captcha.cap
這裡的參數是這樣的
-tttt輸出最大程度可讀的時間戳
-s0指定每一個包捕獲的長度,單位是byte,使用-s0可以捕獲整個包的內容
-X以hex和ASCII兩種形式顯示包的內容
-vv顯示更加多的包信息
tcp指我們只捕獲tcp流量
port 8080指我們只捕獲埠8080的流量
-w captcha.cap指定捕獲的流量結果輸出到captcha.cap文件,便於分析使用
關於tcpdump更加高級的用法,可以參考tcpdump簡明教程
上述命令會保持運行,並將結果輸出到captcha.cap文件中,在這個過程中,所有訪問 8080 埠的 TCP 流量都會被捕獲。當請求結束之後,我們可以使用中斷該命令的執行,這時候在當前目錄下就可以看到生成了一個名為captcha.cap的文件。
使用Wireshark分析
接下來我們從伺服器上下載這個captcha.cap文件到自己電腦上,使用Wireshark打開
最簡單的下載方法當然是使用scp了
scp account@ip:/path/to/captcha.cap .
因為我們需要分析http包,直接打開看顯然無法區分我們需要的內容,因此,可以在filter欄中添加過濾規則,這樣就可以只展示http流量了
當請求比較多的時候,我們還是無法快速區分出哪個是指定客戶端的訪問請求,好在強大的filter可以組合使用
http and ip.src == 192.168.0.65
上面這個filter將會過濾出所有來自客戶端 192.168.0.65 的http流量。
找到我們需要分析的http請求了,那麼怎麼查看請求響應的內容呢?也很簡單,只需要選中這個請求,右鍵Follow-HTTP Stream:
在新開的窗口中,我們就可以看到這個請求的所有內容了
總結
tcpdump和wireshark都是非常強大的網路分析工具,其使用用途不僅僅局限於http請求抓包,藉助這兩個工具,我們可以對所有的網路流量,網路協議進行分析。本文只是針對最常見的http請求抓包方法做了一個簡單的講解,實際上配合wireshark強大的filter規則,我們可以更加精準的對流量進行過濾,分析。


TAG:程序猿成長計劃 |