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 流量都會被捕獲。當請求結束之後,我們可以使用 Ctrl+C 中斷該命令的執行,這時候在當前目錄下就可以看到生成了一個名爲 captcha.cap 的文件。

使用Wireshark分析

接下來我們從服務器上下載這個captcha.cap文件到自己電腦上,使用 Wireshark 打開

最簡單的下載方法當然是使用scp了

scp account[@ip](https://my.oschina.net/u/3749391):/path/to/captcha.cap .

因爲我們需要分析http包,直接打開看顯然無法區分我們需要的內容,因此,可以在filter欄中添加過濾規則 http,這樣就可以只展示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規則,我們可以更加精準的對流量進行過濾,分析。

本文將會持續修正和更新,最新內容請參考我的 GITHUB 上的 程序猿成長計劃 項目,歡迎 Star,更多精彩內容請 follow me

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章