首頁>技術>

我們這個資訊化時代,每天都不知不覺的會給不知道哪些軟體運營商偷偷的說一些悄悄話,特別是我們程式猿,在開發過程中更是,偶爾會遇到不知道TCP互動過程中到底傳遞或者接受了哪些資訊,給我們的Debug蒙上了一層神祕的面紗,這時候,我們需要一些抓包工具幫助我們輕鬆Debug。一般的請求可以藉助瀏覽器自帶的NetWork抓包工具,移動端一些網頁的話可以藉助騰訊開源的vConsole,再高階一點就是藉助Fiddler來抓取http或者https請求。但是有時候這樣也滿足不了我們的需要,那麼就再祭出Wireshark神器來抓取tcp和udp請求。

瀏覽器自帶的抓包工具

一些主流瀏覽器都自帶有Network抓包工具,只需F12即可喚出,非常方便,我這裡只演示了 Chrome瀏覽器的抓包過程。

Fiddler簡單操作

Fiddler是一款http\\https協議代理除錯工具,它能夠獲取請求之間的資料和狀態,設定斷點,以及修改資料。首先去Fiddler網站下載並手動安裝。

安裝成功後開啟Fiddler,介面如下:

預設情況下,它是抓取我們所有的請求。我們需要對Fiddler進行過濾設定。假如我們只想抓取www.cnblogs.com的請求,我們需要這樣處理:

,最後我們可以得到這樣的效果:

,還可以指定客戶端的程序:

程序方式除了剛才在Filters中設定外,還可以使用拖動方式,

下面,我們來試試抓取手機端的請求,在抓取手機端請求前,請確保手機和電腦在同一個區域網中,然後進入Tools->Options->Connections對Fiddler進行如下設定:

,由於我在PC端映射了一個wifi供手機連線,故我手機代理設定如下:

假如我們抓取美團App的請求,現在開啟App即可看到:

這裡只是一個簡單的示例介紹,更多高深技巧請自行探索。

Wireshark簡單操作

首先Wireshark下載,

安裝完成後開啟

可以看到我們本地有很多網絡卡驅動,我們怎麼知道現在網路是哪個網絡卡呢?有兩個方式,一個是檢視本地連線,另外一個就是看介面的網路流量。

可以看到Wireshark開始為我們抓包,由於Wireshark為我們抓取了TCP和HTTP,會有很多無用的資訊導致我們無從下手,這時候可以使用Wireshark的過濾規則:

,在過濾欄輸入關鍵字就會有相應的智慧提示。 在Wireshark抓包中有多層資訊:

Frame 15788: 79 bytes on wire (632 bits), 79 bytes captured (632 bits) on interface \\Device\\NPF_{69B14E8C-A0A5-4064-9CF7-EB4651D24A99}, id 0:物理層的資料幀概況。Ethernet II, Src: HuaweiTe_22:5a:c6 (fc:48:ef:22:5a:c6), Dst: WistronI_fd:67:50 (54:ee:75:fd:67:50):資料鏈路層乙太網幀頭部資訊。Internet Protocol Version 4, Src: 10.101.11.97, Dst: 10.101.27.241:網際網路層IP包頭部資訊,源地址和目的地址。Transmission Control Protocol, Src Port: 80, Dst Port: 50773, Seq: 2606, Ack: 3560, Len: 25:傳輸層的資料段頭部資訊,TCP協議層資訊。Hypertext Transfer Protocol:應用層的資訊,此處是HTTP\\HTTPS協議會現在該項。Wireshark常用過濾條件:地址過濾。ip.dst==xxx.xx.xxx.xxx 過濾目的地址為xxx.xx.xxx.xxx,ip.src==xxx.xx.xxx.xxx 過濾原地址地址為xxx.xx.xxx.xxx,ip.dst==xxx.xx.xxx.xxx && ip.src==xxx.xx.xxx.xxx 過濾源地址為xxx.xx.xxx.xxx且目的地址xxx.xx.xxx.xxx協議過濾。直接在過濾欄輸入協議即可 tcp、udp、arp、http、ftp、ssl、smtp、dns、ip、ardp埠過濾。在過濾欄輸入tcp.port==埠號(目的埠和源埠)或者 tcp.dstport==埠號(目的埠),tcp.srcport==埠號(源埠)HTTP過濾。這個就比較多了,暫時詳述:

通過Wireshark可以很方便的分析TCP的三次握手和四次揮手的過程,有助於我們更加直觀的理解TCP協議。

好了,暫時先告一段落吧,這裡只是簡單是寫了軟體的基本使用,如果要抓取HTTP和HTTPS協議的資料的話,個人建議使用Fiddler。其他更加高階的應用在後面再分享吧,另外還有一款強大的抓包工具Charles,只不過它是收費的。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 我後悔了,真的永遠不要在生產中直接執行Node.js