本文适合已经在 Shadowrocket 中导入自己已有订阅、需要核对流量去向的用户。先区分服务器与应用两个观察维度,再用测试前后的上传、下载差值定位活动,最后结合 Global Routing 与连接记录核对规则结果。Data 是客户端观察窗口,不是服务商的套餐余额,也不能单凭一个累计数字认定请求经过了哪条规则。
Data 的统计范围:先区分方向、总量与速率
Shadowrocket(小火箭)的 Data 用来观察客户端记录到的网络活动。上传是从设备发向远端的数据,下载是远端返回设备的数据。打开网页时,两者通常都会增长:请求、确认和应用同步也需要上传,并非只有发送文件才产生上传流量。
读数首先要看单位。KB、MB、GB 表示数据量;带有 /s 的单位表示速率。累计下载 120 MB 不能说明此刻仍在下载,某一刻显示 0 B/s 也不能说明此前没有传输。以下示例数字只用于说明计算方法,不是性能测试结果或套餐计费承诺。
Data 不是整台设备所有网络活动的完整账本。统计取决于进入客户端处理路径的连接、系统可提供的信息以及当前页面的归类范围。没有进入该处理路径的活动,不能要求它一定出现在 Data 中;系统蜂窝网络统计与这里的数字也不必相等。
按服务器读取:观察哪个出口产生了增量
按服务器查看时,重点是服务器条目对应的上传、下载变化,而不是只找累计值最大的那一行。旧条目可能保留较长时间的使用记录;当前选中的服务器也可能暂时没有新增请求。条目名称相似时,回到 Home 核对具体条目,避免把重名服务器当成同一出口。
- 在 Home 确认当前选择的服务器,并记下 Global Routing 当前是 Proxy、Direct、Config 还是 Scene。
- 进入 Data,找到目标服务器,记录测试前的上传、下载读数与时间。
- 只进行一次明确操作,例如在浏览器中打开一个自己可访问的测试页面,等待加载结束。
- 返回 Data 等待读数刷新,再记录同一行的数值,比较前后差值。
例如,某条目的下载从 120 MB 增至 128 MB,按当前显示精度计算,观察增量约为 8 MB。它说明这个条目在观察窗口内有下载活动,不能直接证明这 8 MB 全部来自刚打开的页面。后台同步、其他应用请求以及页面内多个资源都可能同时使用这个出口。
按应用读取:应用归属与目的地址不是同一件事
按应用视图回答的是“哪些可识别来源产生了流量”,按服务器视图回答的是“哪些出口处理了流量”。这是同一批活动的不同切面,不能把两个视图的合计再次相加。一个应用可能请求多个域名,并同时触发 PROXY 与 DIRECT;一个服务器也可能承载多个应用的请求。
应用归属受系统提供的信息限制。对于没有明确应用名称、被合并归类或只显示连接信息的记录,不要仅凭域名就认定它来自某个应用。共享服务、网页内嵌资源和系统后台活动都可能访问相似地址。Data 也不等同于系统的逐应用流量审计。
- 验证来源:先暂停其他前台操作,记下目标应用所在行的读数,再只在该应用中执行一次刷新。
- 验证去向:同时查看服务器增量和相应连接记录;应用行增长本身不区分代理与直连。
- 处理空白:如果当前设备没有显示应用归属,不要自行补写名称,改用请求时间、目标域名和实际策略关联判断。
- 避免误判:应用退到后台不等于立即停止网络活动,结束测试后仍可能出现短暂增量。
用 Global Routing 与规则记录交叉核对 PROXY、DIRECT
先看 Home → Global Routing,再解释统计。Proxy 采用代理路由姿态;Direct 采用直接连接姿态;Config 按当前配置中的规则分流;Scene 按所选场景定义的条件与设置运行。不要把 Scene 当成另一种固定的“全部代理”。验证规则文件时应使用 Config,并在 Config 中确认实际启用的是待检查的配置。
Global Routing 核对
- 入口
- Home → Global Routing
- Proxy
- 代理路由姿态,不用于验证逐条分流规则
- Direct
- 直接连接姿态,不以代理服务器增量作成功标准
- Config
- 使用当前配置的规则结果
- Scene
- 核对当前场景条件及其路由设置
测试过程中保持姿态不变,避免把切换前后的读数混在一起。
最小规则示例
- DOMAIN-SUFFIX
- example.com,PROXY
- IP-CIDR
- 192.168.0.0/16,DIRECT,no-resolve
- GEOIP
- CN,DIRECT
- FINAL
- PROXY
示例用于解释语法,example.com 是示例域名;不要直接覆盖正在使用的完整配置。
在配置的 [Rule] 段中,每条规则仍需写成完整行。规则通常自上而下匹配,先命中的规则决定处理策略,FINAL 放在末尾兜底。下面的 no-resolve 表示不为了这条 IP 规则主动触发域名解析;GEOIP 判断的是目标 IP 的归属,不是按网页文字或域名后缀猜测地区。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
核对一次访问时,在连接记录中找到相应时间和目标,查看实际命中的规则、策略及出站信息。若 PROXY 指向策略组,还要确认组内实际使用的服务器。DNS、重定向、页面子资源可能产生额外连接,因此同一次页面加载不一定只有一个策略结果。
结论:规则结果与流量增量需要同时成立
判断指定请求是否走 PROXY,应先找到该请求的匹配结果与实际出口,再用同一时间窗口内服务器的增量佐证;判断 DIRECT 时也应查看请求记录,不能只凭代理服务器“没有增长”下结论。
统计口径与清零时机:保留基线再开始测试
清零适合建立新的观察窗口,不适合用来修复路由。断开再连接、切换服务器、更新 Subscribe 或重新选择 Config,都不能被当作“所有累计值必然归零”的依据。不同页面可能展示不同范围的累计数据,操作前先确认当前正在观察哪一层。
- 保存基线:记录时间、服务器名称、路由姿态,以及上传和下载数值;排障时同时保留相关连接记录。
- 先确认范围:需要使用 Data 中的清零操作时,阅读当前界面提示,确认作用于当前条目还是全部统计。没有明确范围提示时,优先采用前后相减。
- 减少背景流量:暂停可控的大文件传输和媒体播放,但不要假设所有后台活动都会立即停止。
- 统一窗口:完成一次测试后再记数;不要在测试中途更新订阅、切换服务器或改变配置。
- 保留结论:把观察到的增量与规则记录放在一起,之后才决定是否开始下一轮清零测试。
清零客户端读数不会重置服务商已记录的使用量,也不会改变套餐周期。即使双方都统计上传和下载,协议封装、重传、计数位置、显示单位和更新时间仍可能造成差异。比较时先统一时间范围与单位,再核对服务商的计费定义,不要用两个不同周期的总数推断异常。
常见读数问题:先定位现象,再做单项复测
网页能打开,服务器统计却几乎不动,是没有经过 Shadowrocket 吗?
不一定。先检查 Home → Global Routing,再查看该请求是否命中 DIRECT。缓存页面可能没有重新下载主要资源,小请求也可能被显示精度掩盖。换一个明确会产生新请求的操作,并以连接记录确认是否进入客户端处理路径。
没有主动上传文件,为什么上传数值一直增长?
网页请求、连接确认、应用同步都可能产生上传。先停止媒体播放和可控传输,记录一分钟观察窗口,再检查新增连接的目标与时间。只有把持续增长关联到具体请求,才能判断它是正常后台活动还是需要调整的应用行为。
选了新服务器,为什么旧服务器还有少量增长?
切换前建立的连接可能尚未结束,配置中的策略组也可能选择不同出口。先检查连接建立时间、命中策略和实际服务器;需要隔离复测时,在可接受业务中断的前提下停止当前测试连接,再重新发起请求,不要只按 Home 中的选择状态推断所有既有连接。
已经关闭连接,过一会儿又出现新流量怎么办?
先看系统 VPN 状态及 Settings → On Demand,确认是否有自动连接条件重新建立连接;再确认读数是否只是延迟刷新。临时排障可在记录原设置后暂停 On Demand,完成测试后恢复,避免把自动重连误当成统计没有停止。
按应用的合计与按服务器的合计不同,应该以哪个为准?
两个视图的归类范围可能不同,未识别来源与 DIRECT 活动也会影响对照。先核对同一个观察时间窗口,再逐条关联请求;若用途是核对服务余额,应回到自己已有服务的账户记录,不能把 Data 中某个合计直接当成账单。
保存一份可复查的流量测试记录
一次有效的检查应能回答三个问题:哪个应用发起了什么请求、规则把它交给了什么策略、对应出口是否产生了合理增量。下面是手工记录格式,数字为演算示例,不代表固定流量。测试域名应替换为自己能够合法访问且便于观察的目标,不要在记录中附上订阅凭据。
| 记录项 | 测试前 | 测试后或核对结果 |
|---|---|---|
| Global Routing | Config | 保持 Config |
| 目标服务器上传 | 12 MB | 13 MB,约增加 1 MB |
| 目标服务器下载 | 120 MB | 128 MB,约增加 8 MB |
| 请求结果 | 记录目标与开始时间 | 核对命中规则、策略及实际出口 |
如果现象仍无法复现,先重复同一操作,不要同时改协议、服务器和规则。分享排障材料前,应遮盖订阅地址、令牌、密码、密钥及个人访问记录。Data 提供的是判断线索;把来源、规则、出口和增量放在同一个时间窗口内,才能形成可以复查的结论。