Charles的奇巧淫技
大家好,我是 dom 哥。今天讨论一下 Charles 的高级用法。
Charles 是 mac 电脑的一个网络代理软件,也是我平时开发常用的一个工具,用过的都说好😁。
本文不是 Charles 的入门介绍,而是针对一些特殊使用场景的摸索和总结。
Tools > Map Remote
Map Remote 工具能够将请求映射到另一个服务器,它可以改变请求的目的地,HTTP 请求会透明的映射到新地址,就像直接请求新地址一样。
例如你可以将 https://A.com/a1/a2 映射到 http://B.com/b1/b2 。
💡 最常见的一个使用场景是将线上资源映射到本地开发服务器 www.com -> localhost
,以此实现本地调试线上。
Tools > Map Local
Map Local 工具能够将请求映射到本地文件,也就是将本地文件作为某个请求的返回。Map Local 和 Map Remote 相辅相成,一个映射到服务器,一个映射到本地文件。
如果说 Map Remote 是大面积覆盖,那么 Map Local 就是单点爆破。这对快速调试某个线上静态资源很方便。
💡 比如把某个线上 js 文件下载到本地,修改修改,然后通过 Map Local 这个本地文件映射就可以直接看到效果进行验证。不必走完 CI,CD 这一套焦头烂额的等待了。
Tools > Rewrite
Rewrite 工具能够让你重写覆盖请求的任意部分,包括 request 和 response 的 header 和 body。
💡 下面是一些使用场景:
- 重写 response header 实现 cors 跨域
- 重写 cookie 实现一些校验
- 重写 body 实现类似 Map Local 的效果
Tools > DNS Spoofing
DNS 欺骗工具可以将一个域名映射到一个 IP 地址下,和系统 hosts 文件的作用一样。
实际上,在 Map Remote 里配置 example.com -> 20.205.243.166 能实现相同的效果。
💡 有了这个功能,我卸载了 hosts 管理软件。
Proxy > External Proxy
Charles 本身是一个代理,它还支持再配一层外部代理,通常是 VPN。请求会先过 Charles,再走外部代理。
💡 例如,想要抓包的话需要开启 Charles 的 macOS Proxy,此时 Charles 会自动设置系统代理。
同时可能开了 ClashX 等 VPN 软件。那么就需要配置上 External Proxy:
以此实现抓包,范强两不误。
觉得不错点个小赞哦~🌹