一、Charles簡介:
Charles 是在 PC 端常用的網絡封包截取工具,在做移動開發時,我們為了調試與服務器端的網絡通訊協議,常常需要截取網絡封包來分析。除了在做移動開發中調試端口外,Charles 也可以用於分析第三方應用的通訊協議。配合 Charles 的 SSL 功能,Charles 還可以分析 Https 協議。
Charles 通過將自己設置成系統的網絡訪問代理服務器,使得所有的網絡訪問請求都通過它來完成,從而實現了網絡封包的截取和分析。
Charles 是收費軟件,可以免費試用 30 天。試用期過后,未付費的用戶仍然可以繼續使用,但是每次使用時間不能超過 30 分鍾,並且啟動時將會有 10 秒種的延時。因此,該付費方案對廣大用戶還是相當友好的,即使你長期不付費,也能使用完整的軟件功能。只是當你需要長時間進行封包調試時,會因為 Charles 強制關閉而遇到影響。
- 截取 Http 和 Https 網絡封包。
- 支持重發網絡請求,方便后端調試。
- 支持修改網絡請求參數。
- 支持網絡請求的截獲並動態修改。
- 支持模擬慢速網絡。
三、下載安裝Charles:
打開瀏覽器訪問 Charles 官網 ,下載相應系統的 Charles 安裝包,然后安裝即可,Charles 支持的操作系統包括:
- Windows 64 bit(msi)
- Windows 32 bit(msi)
- macOS(dmg)
- Linux 64 bit(tar.gz)
- Linux 32 bit(tar.gz)
- Windows: 運行安裝應用程序以在程序菜單中安裝 Charles。
- Mac OS X: 通過雙擊解壓縮下載文件,然后將 Charles 應用程序復制到 Applications 目錄中。
- Linux: Charles 擁有 APT 和 YUM 存儲庫,如果你有基於
Debian
或基於Red Hat
的 Linux 發行版,這是安裝 Charles 的首選方法。否則,將tar.gz
文件解壓縮到適當的站點。如果您以前安裝過 Charles 並且正在進行升級;首先確保 Charles 沒有運行,然后安裝或復制在以前安上。通過運行bin/charles
腳本啟動 Charles。
如果使用 Firefox,也可以下載 Firefox 插件。參考Firefox Add-On
四、Charles主界面介紹:

1、Charles工具欄提供了常用的工具
:清除捕獲到的所有請求
:紅點狀態說明正在捕獲請求,灰色狀態說明目前沒有捕獲請求。
:灰色狀態說明是沒有開啟網速節流,綠色狀態說明開啟了網速節流。
:灰色狀態說明是沒有開啟斷點,紅色狀態說明開啟了斷點。
:編輯修改請求,點擊之后可以修改請求的內容。
:重復發送請求,點擊之后選中的請求會被再次發送。
:驗證選中的請求的響應。
:常用功能,包含了 Tools 菜單中的常用功能。
:常用設置,包含了 Proxy 菜單中的常用設置。
2、Charles 主要提供兩種查看的視圖,分別名為
Structure(網絡請求按訪問的域名分類)
和
Sequence(網絡請求按訪問的時間排序),這兩種視圖可以隨意的切換,有時候請求多了頁面看不過來了,也可以通過使用Filter功能輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網絡請求。
File
、
Edit
、
View
、
Proxy
、
Tools
、
Window
、
Help,但是用的最多的還是 Proxy
和Tools;這就跟Fiddler抓包工具大同小異了;
Charles 會自動配置瀏覽器和工具的代理設置,打開工具直接就已經是抓包狀態了。只需要保證一下幾點即可:
1)確保 Charles 處於 Start Recording 狀態。
2)勾選 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。
2、Charles抓取移動端
1)首先確保手機和電腦處於同一網絡環境(一個局域網內)
2)電腦端配置
a) 關掉電腦端的防火牆(這點很重要)。
b)打開 Charles 的代理功能:通過主菜單打開 Proxy | Proxy Settings 彈窗,填入代理端口(端口默認為 8888,不用修改),勾選 Enable transparent HTTP proxying。
c) 如果不需要抓取電腦上的請求,可以取消勾選 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。
3) 手機端配置
a) 通過 Charles 的主菜單 Help | Local IP Address 或者通過命令行工具輸入 ipconfig 查看本機的 IP 地址。
b)設置代理:打開手機端的 WIFI 代理設置,輸入電腦 IP 和 Charles 的代理端口。
4)設置好之后,我們打開手機上的任意需要網絡請求的程序,就可以看到 Charles 彈出手機請求連接的確認菜單(只有首次彈出),點擊 Allow 即可完成設置。
5)完成以上操作基本就可以進行抓包了
3、Charles抓取HTTPS
HTTPS 的抓包需要在 HTTP 抓包基礎上再進行設置。需要完成一下步驟:
1)完成 HTTP 抓包配置。
2)電腦端安裝 Charles 證書:通過 Charles 的主菜單 Help | SSL Proxying | Install Charles Root Certificate 安裝證書。
3)設置 SSL 代理:通過主菜單打開 Proxy | SSL Proxy Settings 彈窗,勾選 Enable SSL proxying。
4)移動端安裝 Charles 證書:通過 Charles 的主菜單 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安裝證書。
5)設置好之后,軟件的任意網絡請求,會有 Charles 彈出手機請求連接的確認菜單(只有首次彈出),點擊 Allow 即可完成設置。
6)完成以上步驟,就可以進行 HTTPS 抓包了。
上述第4步中的證書,網上也有現成的;“6485223a.0”是我找到的其中一個,顯示的是1.86KB;由於對博客園隨筆摸索的還不夠,所以不知道怎么上傳文件;
1)首先移動手機和電腦連接
2)win+R---輸入CMD調出命令窗口
3)adb devices 找到設備
4)adb push 6485223a.0 /system/etc/security/cacerts/(加空格,完成后設備重啟)這個路徑是我們公司的
以上push進入就完成了
注意:charles暫僅支持wifi,不支持4G;