在 Mac 或 PC 上,改一下 /etc/hosts 就能把域名指向另一台服务器。DNS 切换前预览新服务器上的网站、让 App 连预发机器,都是这么做的。iPhone 不越狱就没有可编辑的 hosts 文件。HTTPS Capture 的 Hosts 规则可以达到同样的效果,不用越狱,也不用自己搭 DNS 服务器。
原理
开启抓包后,HTTP 和 HTTPS 连接都会经过 HTTPS Capture 的本地代理。域名命中 Hosts 规则时,代理会连接你填写的地址,而不是 DNS 解析出的地址。URL、Host 头和 TLS 的服务器名称(SNI)都保持 原来的域名,所以目标服务器仍会返回正确的站点和证书,效果和改 hosts 文件一样。
第一步:添加 Hosts 规则
- 在抓包页点 规则 → Hosts。
- 打开 启用 Hosts 映射,点 +。
- 匹配模式:要改写的域名,比如
www.example.com;写成*.example.com可以覆盖所有子域名。 - 目标:一个 IP 地址,比如
203.0.113.10,也可以是另一个域名。 - 可以加个备注,保存。
第二步:开始抓包并测试
开始抓包,用 Safari 打开网站或启动 App,这个域名的请求就会发到目标服务器。点开请求看 概览,可以确认实际连接的远程 IP。
规则实时生效。关掉某条规则后,下一次连接就会恢复正常 DNS 解析,不用重新开始抓包。
常见用法
- 网站迁移前预览:DNS 切换之前先看新服务器上的效果。
- 让 App 连预发或本地服务:指向
192.168.x.x,不用专门打测试包。 - 直连 CDN 或负载均衡的某个节点 做测试。
- 快速切换环境:为生产、预发、本地分别建一个 配置文件,在左上角菜单里切换。
和真正的 hosts 文件相比的限制
- 规则只在 抓包运行期间 生效,因为它工作在 HTTPS Capture 的隧道里。
- 只对经过代理的 HTTP 和 HTTPS 流量生效。走原始 TCP 或 UDP 的游戏等其他协议不会被改写。
- HTTPS 网站需要先安装并信任 CA 证书。Hosts 规则作用于 HTTPS Capture 自己处理的连接。
Hosts 和远程映射的区别
Hosts 只改变 连接哪个 IP,域名、路径和端口都不变。如果要把请求发到 另一个域名、端口、协议或路径,比如 https://api.example.com/v1 → http://192.168.1.20:8080/v2,请用 远程映射。
准备好试试了吗?
HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone
App Store 免费下载