本意
想要實現電腦連接代理軟件(不限於具體某個軟件),並開啟charles,手機和電腦連接同一個wifi,手機連接電腦代理,實現手機請求對應代理軟件設置的國家的網頁,並在電腦端實現抓包。
charles與代理軟件共存說明了如果通過讓所有HTTP(S)流量都走Charles,然后Charles 再設置外部代理(External Proxy)為代理軟件 的本地代理即可,這樣流量依次經過兩個代理,既能抓包,又能FQ。
方案
方案一:
網上看了很多教程基本上都是這一種方案:
下載 chrome 插件 SwitchyOmega
如下配置,配置本地ip,和 代理軟件所占的端口號,注意這里不是 charles 的端口號,然后在 chrome 插件欄小圖標中選擇為 自己設定的模式:proxy。

這樣,即可實現本地 ip 變為 代理軟件 連接的國家 ip ,並在電腦端可以實現charles 抓包,但是手機連接的代理,查詢 ip 依然為國內 ip,無法代理到 電腦連接的 國家,
方案二:
上述方案,手機查詢IP地址,依然顯示為國內,即手機沒有代理成功。
我們可以這樣配置:
2、最重要一步,這一步配置決定了手機可以開啟和 Mac 一樣的 國家,
打開 charles ,選擇 proxy=》External Proxy Settings=》勾選前兩個,設置為本地 代理軟件 的服務器和 端口

注意:梯子代理服務器端口號,如flyvpn,可以設置為手動代理,則可以看到端口號
遇到的問題
安卓下Charles安裝了證書仍提示unknown
安卓機已安裝了證書,部分https的請求還是無法抓取,
可能會遇到的情況 method的是connect
提示:
主要是因為以下原因
安卓系統
從Android N開始,您需要向您的應用添加配置,以使其信任Charles SSL Proxying生成的SSL證書。這意味着您只能將SSL代理與您控制的應用一起使用。
為了將您的應用程序配置為信任Charles,您需要將網絡安全配置文件添加 到您的應用程序。該文件可以覆蓋系統默認值,使您的應用程序可以信任用戶安裝的CA證書(例如Charles Root證書)。您可以指定這僅適用於應用程序的調試版本,以便生產版本使用默認的信任配置文件。
將文件 res / xml / network_security_config.xml添加到您的應用中:
<!-信任用戶僅在可調試時添加了CA –> 然后在您的應用清單中添加對此文件的引用,如下所示:
<?xml版本= “ 1.0” 編碼= “ utf-8” ?> <清單... > <應用程序android:networkSecurityConfig = “ @ xml / ne
官方文檔:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
