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、點選顯示高階選項-->代理-->手動
- 代理伺服器主機名設為電腦本地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使用者。