Shadowrocket(小火箭)的 Data 读数适合检查连接期间的数据变化,不应直接当作订阅剩余额度或系统蜂窝账单。本文面向已经导入自己已有订阅或配置的用户,说明怎样确认统计范围、比较服务器与应用视角,并通过一次受控测试区分后台流量、规则分流和单位差异。
一、先确认 Data 的入口与统计边界
从 Shadowrocket 的 Settings → Data 查看数据记录,先辨认当前页面显示的是累计数据、连接期间的数据,还是某一分组的明细。Home 用于确认连接状态与所选服务器,Config 用于检查当前配置;这两处的信息需要与 Data 一起记录,否则单独看到一个数值,无法知道它对应哪条连接、哪段时间。
客户端只能统计其能够观察到的流量。未经过当前处理路径的连接、应用断开期间的访问,以及系统使用其他网络路径完成的传输,不应默认包含在同一个统计总量中。界面中的分组和可识别信息也受系统能力及当前页面提供的字段限制;没有展示的维度,不能从总量反推出精确明细。
这条流程用于解释数据观察位置,不是计费流程。尤其在 Config 下,规则可能让不同请求分别走 DIRECT 或某个代理策略。某台服务器的累计量只反映归属于该服务器的部分,不等于设备在这段时间的全部网络用量。更多入口说明可参阅Data 功能说明。
二、上传、下载、速率与总量分别表示什么
上传和下载按设备方向理解:设备向外发送请求、附件、备份内容属于上传,接收网页、视频和文件内容属于下载。阅读网页时也会发生上传,因为请求头、确认信息和其他控制数据需要发出;上传不是零,并不意味着正在上传某个大型文件。
累计量与实时速率不能直接比较。MB 或 GB 表示数据量,B/s 或 MB/s 表示每秒数据量,Mbps 则通常表示每秒兆比特。例如 8 Mbps 在纯单位换算上相当于 1 MB/s,但实际文件下载还受链路开销、远端响应及本地处理影响。不要用瞬时峰值乘以整个连接时长来估算累计流量。
| 读数类型 | 可以回答的问题 | 不能直接推断的内容 |
|---|---|---|
| 上传累计量 | 观察范围内发出了多少数据 | 发出了哪些完整文件 |
| 下载累计量 | 观察范围内接收了多少数据 | 用户实际保存了多少文件 |
| 实时速率 | 当前传输是否活跃 | 整段时间的平均速度 |
| 服务器分组 | 某个出站归集了多少数据 | 设备全部用量或服务端计费量 |
总量若由上传与下载相加得到,应使用同一统计周期、同一分组的数字。界面四舍五入后,两个显示值的和与显示总量可能略有差异;这时先看单位和小数精度,不必立即判断为数据丢失。
三、按服务器与按应用是两种不同的观察方式
按服务器观察,关注的是连接最终使用哪个代理出站。按应用观察,关注的是请求来自哪个应用。两者不是一一对应:同一个应用可以访问多个域名,规则也可以让这些连接使用不同策略;同一台服务器则可能同时承载多个应用的请求。
服务器视角
- 观察对象
- 归属于某个服务器条目的流量
- 核对入口
- Home 中的所选服务器与 Data 分组
- 比较前提
- 相同统计周期、相同连接条件
- 常见用途
- 确认切换出站后哪一组读数增长
服务器名称是条目标识,不自动等于服务端账户的计费范围。
应用视角
- 观察对象
- 能够识别并归属到应用的连接
- 核对入口
- Data 当前页面实际提供的分组字段
- 识别限制
- 域名、IP 地址不能单独证明应用身份
- 辅助证据
- 一次只操作一个应用并比较前后增量
页面没有应用归属字段时,不要把域名分组称为精确的按应用统计。
在 iPhone 与 iPad 上,不应假定 VPN 客户端可以取得每条连接的完整应用身份。若 Data 展示的是服务器、目标地址或域名,应按原字段理解。需要查看系统归属到各应用的蜂窝用量时,可到系统 Settings → Cellular 查看;该统计只针对相应蜂窝范围,不覆盖同一周期的 Wi-Fi 总量,也不与客户端记录天然同步。
例如一个视频应用可能连接媒体域名、登录域名和分析域名;另一个应用也可能使用相同的公共内容分发地址。因此,看到某个域名增加了 20 MB,只能说明该目标相关连接有数据增长,不能据此认定某个应用独占了这 20 MB。后台刷新也会让“没有打开的应用”继续产生连接。
结论:先做增量归因,再判断应用用量
暂时停止其他主动传输,记录基线,只操作一个目标应用,再比较 Data 的前后变化。把结果称为“本次操作期间的增量”,比把域名总量直接标记成应用总量更可靠。
四、规则分流为什么会改变服务器读数
Home → Global Routing 的选择会影响流量处理。Config 按当前配置规则处理,Proxy 使用代理处理,Direct 使用直连处理;Scene 则需要同时检查所选场景及其条件,不能把它当作固定不变的出站方式。排查数据时,先记录当前姿态,不要只记录连接开关是否开启。
下面是解释统计差异的规则示例,并非要求替换现有配置。PROXY 必须对应配置中实际可用的策略。域名与 IP 匹配方式不同,规则自上而下检查,FINAL 放在末尾作为未匹配连接的处理规则。
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX,example.com,DIRECT:该域名及其子域名匹配后使用 DIRECT,不应期待它们全部归入代理服务器累计量。IP-CIDR,192.0.2.0/24,DIRECT,no-resolve:此处使用文档示例地址段说明语法;no-resolve避免为这条 IP 匹配额外进行域名解析。GEOIP,CN,DIRECT:依据 IP 地理数据库匹配,结果不等于根据网页语言或域名后缀判断。FINAL,PROXY:前面的规则没有匹配时才使用 PROXY,不会覆盖已命中的 DIRECT 规则。
如果 Data 总量增长而某台服务器分组基本不变,应先检查命中规则和实际出站,而不是反复更新订阅。订阅更新可能改变服务器条目或名称,却不会自动证明当前请求已经切换到新条目。已有连接也可能继续沿用建立时的出站,比较时应使用新发起的请求。
五、怎样做一次可重复的读数检查
最实用的检查不是同时打开多个应用,而是固定时间窗口、网络、服务器和 Global Routing,再比较增量。清零并非必需:保留测试前后读数,通常更便于复核。如果确实需要清零,先保存记录,再确认 Data 当前界面提供的清除操作及其作用范围,不要把清除连接日志当作重置流量累计。
- 记录基线。写下开始时间、Wi-Fi 或蜂窝网络、Home 所选服务器、Global Routing 姿态,以及 Data 对应分组的上传和下载数值。
- 减少干扰。暂停文件同步、视频播放及其他主动下载。检查 Settings → On Demand,确认测试期间不会因网络条件变化发生意外重连。
- 执行单一操作。在一个应用中打开一个此前未加载的页面,或下载自己已有的测试文件。优先选择已知大小的资源,并确认实际发生了传输。
- 等待读数更新。操作结束后回到 Data,等待页面刷新,再记录同一组数字。不要把传输未结束时的读数当作最终值。
- 计算增量。结束值减去开始值,分别计算上传和下载。若要复测,重新记录基线,保持其他条件一致。
| 项目 | 开始值 | 结束值 | 本次增量 |
|---|---|---|---|
| 上传 | 3.0 MB | 3.4 MB | 0.4 MB |
| 下载 | 120.0 MB | 132.5 MB | 12.5 MB |
| 合计 | 123.0 MB | 135.9 MB | 12.9 MB |
表格是计算示例,不是实测结果或固定开销比例。若测试文件标称 10 MB 而下载增量是 12.5 MB,先检查是否同时加载了网页资源、发生了重试,或有其他后台请求。不同统计位置是否计入协议封装也会影响结果,不能把全部差额都归因于某一种协议。
六、清零、断开与服务端额度为什么对不上
本地 Data、系统蜂窝统计和已有服务的账户用量来自不同观察点。服务端可能使用自己的统计周期、上传下载合并方式或计费规则;客户端可能观察连接处理中的数据;系统蜂窝统计则限定在蜂窝网络范围。比较之前必须对齐起止时间和单位,尤其不能用本地一小时的增量去核对账户整月累计。
断开再连接,为什么数字没有从零开始?
断开连接与清除累计记录是不同操作。先确认页面显示的统计范围;需要新一轮测试时,记录当前数字作为基线即可。只有明确使用了对应统计项的重置操作,才检查该项是否归零。
更新已有订阅后,服务器分组怎么变了?
回到 Home 核对条目名称和当前所选服务器,再比较更新前的记录。更新可能改名、增删条目或改变标识,不要把新旧条目的读数直接认作同一连续序列。
没有使用手机,下载数字为什么还在增加?
先暂停后台同步和正在播放的媒体,再检查 Settings → On Demand 是否保持连接。记录一分钟前后的增量,并查看这段时间的连接记录;应用不在前台不等于没有网络请求。
服务端扣除的用量比 Data 多,应该看哪个?
先对齐统计周期、单位和账户内其他设备的使用情况,再核对用户已有服务的计费说明。Data 用于本地排查,账户额度以对应服务的计量规则为依据,二者不应要求逐字节一致。
如果完成这些核对后仍有明显差异,保留测试时间、网络类型、姿态、前后读数与实际出站记录,再进行下一轮单变量测试。不要公开包含凭据的订阅链接、UUID 或服务器密码。本文讨论的是客户端使用方法,不涉及服务选择;客户端一次性买断与线路套餐是两回事。