Tcpdump 你也會的 Web HTTP 封包除錯技巧(Linux Server Tcpdump)

創業與雷
·
·
IPFS
·

Server Side 封包監聽 for Liunx

前一篇介紹完 Client 的 HTTP 封包監看方式,但有時候還是找不出問題,就像一開始在前言提到的,複雜的網路環境都有可能造成問題。因此學習如何在 Server 監聽封包也是必要的除錯工作,在 Windows 環境已經有很多現成的圖型介面軟體可以使用,像是免費的 WireShark Packet Sniffer 就很好用 (還是 Open-Source 喔) 了。那我們來介紹一下 Linux 系統下如何監聽封包囉,大多數的 Linux Server 都不會安裝圖型介面,那我們可要找個文字介面的封包監聽工具。Linux 中最基本的方式就是透過 TCPDUMP 這個套件,透過「tcpdump」指令即可抓取封包,使用方式如下:

[root@dev ~]# tcpdump -i eth0 tcp port 80 -A -nn

上述命令中「-i eth0」參數表示擷取 eth0 Input 封包;並可使用「tcp」指定通訊協定(HTTP 走 TCP)與「port 80」來指定 HTTP Server 的監聽埠號;「-A」參數表示使用 ASCII 顯示擷取的封包內容;「-nn」參數表示不做 IP 反解,速度才會比較快。執行後如有 TCP 80 Port 連線就會被抓到,由於 TCPDUMP 是屬於極底層的封包擷取機制,因此會看到一些 TCP Handshaking 的封包,擷取的畫面如下:

上圖中我們可以看到 TCP Handshaking 與 HTTP Request / Response 回應過程,其中可以發現 HTTP 確實透過兩個「換行字元」作為結束資料傳送的機制,也就是我們利用 Telnet 進行 Web Server 連線時 (HTTP 是標準的 TCP Socket 連線),按下兩次「Enter」就會結束的機制是一樣的。

結語

TCPDUMP 能力強大,可以監聽 TCP, UDP, ICMP 等等封包,但是我常覺得實務應用上其實過於低階,若是對網路七層 (OSI 7 Layer Model) 不夠熟悉,有時候其實很難進一步的分析,更不用說是除錯了。其實如果只是單純要進行 HTTP 封包分析,那麼在 Linux 中還有另一個叫做 httpry 套件可以用,對於初級者來說反而比較適合,httpry 就留到下次再介紹囉。

參考資料

<style> .fb-background-color { background: !important; } .fb_iframe_widget_fluid_desktop iframe { width: 100% !important; } </style>

原文連結Soul & Shell Blog

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

創業與雷0 到 1 是創業,1 到 N 是營業 我是一位軟體工程師,也是業餘業餘創作者,寫點技術相關知識類型的文章。預計會在這裡分享一些讀書心得等等... 部落格:https://blog.toright.com GitHub:https://github.com/samejack
  • 来自作者
  • 相关推荐

LikeCoin 驗證人佣金調整為 10%

擔任 LikeCoin 驗證人與社群委託報告

第一次領 Gamfi 空投就上手 (幣安 NFT 空投教學)