ProxyPin 自定义 Hosts 本地域名映射
Hosts 映射的工作原理
ProxyPin 在代理层面做域名解析拦截:当 App 请求某个域名时,ProxyPin 不查询真实 DNS,而是根据你配置的 Hosts 映射直接返回指定 IP。
这相当于在系统 hosts 文件层面做操作,但优点是:
- 不用 root 权限(不像 Android 改 hosts 文件需要 root)
- 即时生效(配置完立刻生效,不用刷新 DNS 缓存)
- 可随时开关(禁用规则就恢复正常 DNS)
Hosts 映射 vs 其他重定向方式
| 方式 | 层级 | 适用场景 |
|---|---|---|
| Hosts 映射 | DNS 层 | 域名 → IP(最底层,影响最大) |
| 请求重写 | HTTP 层 | URL → URL(只影响 HTTP/HTTPS) |
| 请求映射 | 应用层 | 请求 → 本地文件(最精细) |
Hosts 映射影响范围最大——所有协议(HTTP、HTTPS、TCP)都会被重定向。请求重写只影响 HTTP 请求。
配置入口
进入「我的」→「Hosts 映射」:
- 添加规则
- 填入域名(支持通配符,如
*.myapp.com) - 填入目标 IP
- 启用
典型用途
开发环境切换
把生产域名临时指向开发服务器:
api.myapp.com → 192.168.1.50(开发机 IP)
App 里用的生产域名 api.myapp.com 实际请求到开发服务器。
本地测试
把某个域名指向 127.0.0.1,让流量到达本地服务:
test.myapp.com → 127.0.0.1
屏蔽特定域名
把不需要的域名指向无效 IP:
google-analytics.com → 0.0.0.0
这样 App 请求 analytics 时根本到不了 Google,相当于屏蔽了。
与请求重写的配合
Hosts 映射到 IP 后,如果还需要修改请求内容(改 Header、改 Body),继续配请求重写规则即可。两者可以叠加使用:
Hosts 映射:api.myapp.com → 192.168.1.50
请求重写:把 Host Header 从 api.myapp.com 改成 internal-api.myapp.com
注意事项
- Hosts 映射作用于 DNS 解析,TLS 握手时证书验证可能出问题(IP 做 SSL 证书时)
- 建议需要完整 HTTPS 调试时,优先用请求重定向而不是 Hosts 映射
- 修改规则后立即生效,不需要重启 ProxyPin