1. 程式人生 > >Fiddler基本用法以及如何對手機抓包以及無法連線手機的解決

Fiddler基本用法以及如何對手機抓包以及無法連線手機的解決

一、Fiddler是什麼?

  ·一種Web除錯工具。

  ·可以記錄所有客戶端和伺服器的http和https請求。

  ·允許監視、設定斷點、修改輸入輸出資料。

二、Fiddler下載

三、Fiddler的工作原理

  Fiddler 是以代理web伺服器的形式工作的,它使用代理地址:127.0.0.1,埠:8888。當Fiddler退出的時候它會自動登出,這樣就不會影響別的程式。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動登出,會造成網頁無法訪問。解決的辦法是重新啟動下Fiddler。

  

四、Fiddler基本用法

  ·介面佈局:

  

  ·開啟Fiddler後,在瀏覽器中做任意請求,即可被Fiddler記錄,包括返回碼,請求協議,主機名,請求地址等等,

可在請求區域檢視詳細的請求資訊,在響應區域檢視詳細的返回結果。

  如下圖

  

五、Fiddler對手機抓包

  第一步:對Fiddler設定為允許遠端連線。

Tools->Fiddler Options->Connections

說明:1.Fiddler listens on port是手機連線fiddler時的代理埠號,預設8888即可

          2.Allow remote computers to connect是允許遠端傳送請求,需要勾上

Tools->Fiddler Options->HTTPS

說明:勾上Decrypt HTTPS traffic,會抓到手機的https請求,如果想抓到https請求還需要在手機安裝證書,下面會介紹

【fiddler設定後一定要把fiddler重啟一下才會生效】

  第二步:修改手機連線網路為代理模式。

1.需要安裝fiddler證書

使用手機瀏覽器訪問http://【電腦IP地址】:【fiddler設定的埠號】,既可以下載fiddler的證書並安裝

【檢視電腦IP的方法,直接在cmd下ipconfig,或者滑鼠滑過fiddler的online也可以看到IP地址】

以上面看到的我的IP地址為例,手機只要訪問http://10.252.167.91:8888即可下載安裝fiddler證書

  開啟正在連線的wifi,然後找到:

  1、修改網路(一般長按就會出現)

  

  2、點選顯示高階選項-->代理-->手動

  

  1. 代理伺服器主機名設為電腦本地IP地址,埠設為:8888

  如下圖

  

  補充:檢視本地IP:開啟cmd,輸入ipconfig回車,然後查詢IPv4地址

  如下圖:

  

  第三步:在Fiddler中驗證。

  在手機中用瀏覽器或者其他APP,做網路請求,即可在Fiddler中記錄,

  例如:在手機開啟我的app,

  

  這是在Fiddler中就會記錄下請求。  

  如下圖:

      

解決Fiddler無法抓到手機的會話包

(1)使用netstat命令,檢視Fiddler是否監聽埠8888。出現127.0.0.1:8888表示已經監聽本機的;出現IP地址:8888,表示已經監聽其他主機的。

(2)如果沒有出現IP地址:8888,就需要在Windows防火牆中,新增Fiddler為例外程式,將埠8888設定為例外埠。

(3)在手機設定代理,IP地址為Fiddler所在電腦的IP。埠號為8888。注意,手機和Fiddler所在電腦必須在同一個區域網內。

不過奇怪的是我手機ip是192.168.99.199,子網掩碼255.255.255.0;電腦ip是192.168.1.32,子網掩碼255.255.255.0,也可以連線手機抓包,還希望知道原因的同學告知?

如何檢視兩個網路是否為同一區域網

在windows中,開始->cmd 進入Dos,輸入ipconfig /all,檢視網路配置。

首先看子網掩碼(Subnet Mask),如果兩臺機器子網掩碼不一致,不在一個區域網。

若子網掩碼一致,再看IP地址的與子網掩碼255對應的IP段是否一致,如果一致,屬於一個子網,即一個區域網。

例如10.178.0.222與10.178.1.212兩個IP地址,它們的子網掩碼都是255.255.0.0,在TCP/IP協議規則裡面,IP地址與子網掩碼做與運算,255換成十六進位制就是FF,換成二進位制就是11111111,10.178.0.222與255.255.0.0做與運算的結果是10.178.0.0,同樣10.178.1.212與255.255.0.0做與運算也是10.178.0.0,因此這兩個地址屬於一個區域網。
而10.178.0.222與10.178.1.212兩個IP地址,若它們的子網掩碼都是255.255.255.0的話,他們就不屬於一個區域網。這兩個IP地址與子網掩碼做與運算後結果分別為10.178.0.0和10.178.1.0,很明顯IP不一致。

另外通過命令Net View命令檢視同處區域網的IP使用者。

首先看子網掩碼(Subnet Mask),如果兩臺機器子網掩碼不一致,不在一個區域網。

若子網掩碼一致,再看IP地址的與子網掩碼255對應的IP段是否一致,如果一致,屬於一個子網,即一個區域網。

例如10.178.0.222與10.178.1.212兩個IP地址,它們的子網掩碼都是255.255.0.0,在TCP/IP協議規則裡面,IP地址與子網掩碼做與運算,255換成十六進位制就是FF,換成二進位制就是11111111,10.178.0.222與255.255.0.0做與運算的結果是10.178.0.0,同樣10.178.1.212與255.255.0.0做與運算也是10.178.0.0,因此這兩個地址屬於一個區域網。
而10.178.0.222與10.178.1.212兩個IP地址,若它們的子網掩碼都是255.255.255.0的話,他們就不屬於一個區域網。這兩個IP地址與子網掩碼做與運算後結果分別為10.178.0.0和10.178.1.0,很明顯IP不一致。

另外通過命令Net View命令檢視同處區域網的IP使用者。