Charles是抓包利器,SS是爬梯神器,两个工具都是经常使用,但使用的时候有个尴尬的地方,如果都使用默认配置,两者都挂着系统代理,就会产生冲突,不能同时使用的原因是,二者都通过修改系统的代理来实现抓包或爬梯,任意开启一个工具,都会修改系统的代理(在MAC里打开任一应用的时候都可以观察到“系统偏好设置–》网络–》高级–》代理栏”有修改)。SS覆盖了Charles配置的话,使用SS时自然用Charles抓不到包。然而Charles是可以设置外部代理(External Proxy)的,解决方案就是将Charles的外部代理设置为SS的Http代理。
解决方案:
让请求先通过Charles,Charles再转发给SS,指定HTTP(S)代理端口为Charles,Charles设置外部代理为SS,最终访问网络的是SS,Charles作为前置代理。
现在说一下二者同时使用(仅限全局模式下)的设置方法。
条件:
1.SS网络能正常爬梯
步骤:
-
启动SS后在菜单栏选择“HTTP代理设置”,开启SS的HTTP代理,设置监听地址为:127.0.0.1 端口:1087 (IP、端口随意,不与其它端口冲突就行)
-
设置Charles的外部代理(External Proxy)进入Proxy-》External Proxy Settings 界面,开启“Use external proxy servers”,勾选“Web Proxy(HTTP)”和“Secure Web Proxy(HTTPS)”,均设置为127.0.0.1:1087(跟SS的HTTP代理一致)
-
最后一步,就是重启Charles,让其设置生效,这样就可以一边爬梯,一边抓包了。
备注:
移动端也可以这样做,只要手机端和pc端处于同一网络,并且手机端设置Charles代理,能正常抓包,开启Charles和SS后,也能一边爬梯一边抓包了。