PCAPdroid + Orbot 走 Tor — 所有 TCP 流量经 Tor 出口节点
为什么要和 Tor 一起用
PCAPdroid 的流量分析能力和 Tor 的匿名能力可以互补:
- PCAPdroid 看:哪些 App 发了什么流量、连到哪些域名
- Tor 保护:这些流量的真实来源 IP 被 Tor 隐藏,网站只看到 Tor 出口节点 IP
前置条件
安装两个应用:
- Orbot(Google Play 或 F-Droid 有):Android 上运行 Tor 的标准客户端
- PCAPdroid(已装好)
Orbot 侧配置
- 安装 Orbot 后打开
- 不要启用 Orbot 的 VPN Mode(Orbot 自己也用 VpnService,和 PCAPdroid 冲突)
- 直接启动 Orbot 让它在本地监听 SOCKS5 代理端口(默认 9050)
- 保持 Orbot 在后台运行
PCAPdroid 侧配置
- PCAPdroid 设置里找到 SOCKS5 proxy 区域
- Host 填
127.0.0.1(Orbot 就在本机上) - Port 填
9050 - 启用 SOCKS5 proxy 开关
开始抓包
点击 PCAPdroid 播放按钮开始抓包。此时:
- PCAPdroid 把 所有 TCP 流量 通过 SOCKS5 代理发往 Orbot
- Orbot 把这些流量封装成 Tor 电路发出
- UDP 流量不走 Tor(Tor 不支持 UDP),包括 QUIC 和部分 DNS
效果验证
打开浏览器访问 check.torproject.org,应该看到页面显示 "Congratulations. This browser is configured to use Tor."——此时你的出口 IP 就是 Tor 出口节点 IP。
PCAPdroid Connections 里所有应用的 TCP 连接目标端口都会变成 Orbot 的本地 SOCKS5 端口(9050),但协议详情里仍能看到原始目标主机和端口。
⚠️ DNS 泄漏风险
Tor SOCKS5 代理默认不处理 DNS——如果应用自己用普通 UDP 53 端口发 DNS 查询(不走 Orbot),这些查询会绕过 Tor 直接发出,构成 DNS 泄漏。
解决方法:配合 PCAPdroid 端口映射 + DNSCrypt(见 DNS 服务器与 DoH 集成页):
- 把 UDP/TCP 53 端口映射到 InviZible 监听的 5354
- InviZible 配置 DNSCrypt 加密查询
- 这样 DNS 查询也不走普通 53 端口,泄漏被堵住
另一种简单做法是:在 PCAPdroid 里开 SOCKS5 代理的同时,把设备上所有应用的 DNS 查询强制阻断(用防火墙拦截 53 端口出站),只保留走 SOCKS5/Tor 的 DNS。
<img src="images/tor-socks5.jpg" alt="PCAPdroid SOCKS5 设置" title="SOCKS5 代理指向 Orbot 本地端口" />