Charles使用詳解
前言
Charles是一款非常優秀的代理工具,能幫助我們完成抓包、弱網測試等工作。其本身操作并沒有很複雜之處,這裡對Charles的諸多操作做一下整理和記錄,作為操作手冊以備忘。整理的内容隻是Charles的一部分功能,後續會随時進行補充。
1 安裝
charles官方下載下傳位址:(很奇怪,附上位址後,一直稽核不通過。是以這裡不貼了,百度一下就能找到)
注冊charles:
前往官網下載下傳最新版charles,下載下傳成功後打開charles,菜單欄 Help->Register Charles 彈出注冊的視窗,填入Registered Name和生成的license key,點選 Register 注冊成功後,charles會自動關閉,手動再次打開即可。
2 開啟手機代理
打開charles之後,預設就已經對系統進行了代理,如果沒有,則需要在菜單欄的Proxy上勾選上 Windows Proxy。

勾選系統代理後,系統本地發出去的請求都能被截取下來。如果隻抓取手機的包的話,則可以取消此項勾選。
2.1 開啟代理步驟
接下來,按以下步驟開啟手機代理:
- 手機和電腦連接配接同一個wifi
- 手機打開設定–無線和網絡–WLAN,長按已經連接配接的wifi,選擇修改網絡,勾選【顯示進階選項】,将【代理】選擇為【手動】:
伺服器主機名:以windows系統為例,在電腦端右鍵單擊開始按鈕,選擇運作,輸入cmd,進入控制台頁面,輸入 ipconfig,即可獲得電腦的IP
伺服器端口:在Charles中,點選 Proxy–Proxy Settings,進入下面的頁面中,可以修改Port,預設是8888
- 在手機wifi代理頁面填好資訊後,點選儲存,Charles彈出詢問視窗,點選 Allow 即可:
點選 Proxy -> Access Control Settings 可以看到IP允許清單,在這裡可以對允許連接配接的裝置IP 進行增删管理。
如果想要不彈出上面的詢問視窗,可以添加0.0.0.0/0允許所有裝置連接配接到Charles。
2.2 抓包頁面
經過以上步驟,手機已經完成開啟代理,下面進行一個抓包示範。
頁面左側即是抓取到的請求資訊,有structure和Sequence兩種展示方式。二者差別在于:前者以樹狀結構歸攏一個域名下的多個請求,後者以時間順序展示每個請求。
2.3 https請求
預設情況下,Charles是無法抓取到https請求的,如下:
要解決這個問題,我們要安裝證書并進行一下設定,下面以Windows和安卓為例整理操作步驟。
首先,Windows端安裝證書:
- Help–SSL Proxying–Install Charles Root Certificate:
- 選擇安裝證書:
- 選擇将證書安裝在受信任的根證書頒發機構目錄:
第二步,Charles設定:
- Proxy–SSL Proxying Settings,進入下面的界面
- 填入相應的host,如果想對所有host開放,填入*即可,端口号填入443,點選OK
打開浏覽器通路網址,可以看到Windows端的https請求已經被成功抓取:
第三步,安卓端安裝證書:
- Help–SSL Proxying:
- 将手機配置好代理(注意彈層中給的IP不一定正确,還是要以控制台查到的為準),使用手機非自帶浏覽器通路 http://chls.pro/ssl,下載下傳證書。
- 下載下傳的證書字尾名為.pem,重命名為字尾名 .crt,然後安裝即可。
3 弱網測試
Proxy–Throttle Settings 進入限速設定頁面:
勾選 【Enable Throttling】即可開啟弱網模式,如果勾選【Only for selected hosts】則可對特定位址進行限速。
下面有很多名額,下面簡單解釋一下:
- Bandwidth(帶寬):帶寬定義資料可以傳送超過時間上限,這是千比特每秒指定。可以指定上載和下載下傳連結的不同帶寬限制。
- Utilisation(使用率):使用率是總帶寬的百分比,可以在任何一個時間使用。它隻是作為可用帶寬的縮放因子。對于大多數現代網際網路連接配接使用率始終是100%。
- Round-trip Latency(請求往返延遲):往返延遲測量用戶端和遠端伺服器之間的第一次往返通信的毫秒延遲。它用于用戶端向伺服器和伺服器向用戶端的每次請求。
- MTU(最大傳輸單元):在任何傳輸的TCP資料包的最大尺寸。指定MTU不改變的可用帶寬,但允許Charles在MTU配置設定帶寬大小的塊,導緻在每個傳輸包分割的現實水準。
- Reliability(可靠性):可靠性是衡量連接配接完全失敗的可能性。這是非常有用的模拟不可靠的網絡條件。可靠性是指定為成功發射10kib消息的可能性,是以,值為50%意味着所有10kib傳輸一半會成功。較大的郵件或更小的消息或多或少都有可能失敗,是以20kib傳輸将隻有25%的成功率和5kib傳輸成功率約70%。
- Stability(穩定性)【抖動】:穩定性是衡量一個連接配接的可能性是不穩定的,是以降低了品質。這是非常有用的模拟網絡,如移動網絡,定期連接配接品質差。如果連接配接不穩定,則連接配接的品質會在不穩定的品質範圍内随機下降。此品質值,然後應用作為另一個縮放因子的可用帶寬。
- unstable quality range(不穩定品質範圍):此處設定主要針對于Stability中設定中的範圍
點選OK後,綠色圖示亮起,表明開啟了弱網: