博客

看哪一条在涨,不要看图标亮不亮。

状态栏的 VPN 标记只说明扩展在跑。策略停在 Direct 时,标记可以同样亮着,字节却全部从原路径离开。要问「这次访问进了当前记录没有」,只能看 Data。

四组信号

它们各自在回答一个不同的问题

Shadowrocket 的 Data 页:备份、Statistics 与日志入口
Data 页。两条累加器在 Statistics。截自 App Store,以你设备上的版本为准。

主界面同时亮着好几样东西:开关、策略、Data、列表旁边的毫秒数。人的眼睛会自动把它们收成一句「连上了」或「没连上」。这是误读的起点。这四组信号彼此独立,把其中任何一组当成另外一组的别名,后面所有判断都会反着来。完整对照写在手册的 读数 一章;本篇只把 Data 这一组拆开,并说明它为什么比图标更值得看。

开关回答的是:Network Extension 有没有跑起来。停在接通、状态栏有 VPN 图标,只表示隧道这一层在。策略回答的是:进了隧道之后,还要不要问规则。Config 才跑规则,Proxy 强制进当前记录,Direct 强制走原路径。列表探测回答的是:这一跳此刻探不探得通。Data 回答的是:已经发生的字节,走了 Direct 还是 Proxy。四个问题叠在同一次观察里,只看第一问,会得到「已经连上了怎么还不行」这种无法动手的结论。

VPN 图标尤其容易骗人。它跟开关绑定,不跟策略绑定。Direct 下图标可以亮,请求仍从蜂窝或 Wi-Fi 原路径离开,完全不经过你选中的那条记录。把图标当成「走了节点」的证明,等于用隧道的存在去代替出口的使用。隧道如何启动,见 隧道

两条累加器

Data 统计的是已经发生的字节

Data 里有两个累加器,名字就叫 Direct 和 Proxy。它们写在本机上,统计已经发生的字节。不是套餐余量,看不到任何第三方账户里还剩多少流量,重置之后从零再计,远端配额也不会跟着动。把 Data 当成「节点还剩多少 G」,会在数字很大或很小的时候做出完全不相关的决定。

一次访问之后,只应有一侧明显增加。访问一个你认为应该进当前记录的主机,然后立刻看:Proxy 增加,说明有字节进了这条记录。网页仍然失败,问题多半在对端、解析、或这个 App 自己拒绝隧道,而不是「没走节点」。这时再去改规则,是在修一个已经证明走了记录的路径。只有 Direct 增加,说明请求被留在了原路径。若你预期它该进记录,去看策略是不是 Direct,或 Config 下规则是不是先把它写成了 DIRECT / REJECT。见 规则

两条几乎都不动:请求可能没进隧道——开关没稳住、系统里没有可用的 VPN 配置、另一款 VPN 占着槽——或者根本没有出站,例如飞行模式、门户页没过、应用还在本地缓存里打转。先看开关和 系统,再怀疑记录。

REJECT 命中时,通常不会像一次成功加载那样推高计数。应用报错、Data 安静,和「节点没流量」长得像。把策略切到 Proxy 再访问一次,才能把「规则丢掉了」和「记录握手失败」分开。前者在 Proxy 下会通,后者在 Proxy 下仍然失败。

这两条累加器只分左右,不分「是哪一条记录」。换高亮行之前的 Proxy 数字还在,不会按行清零。要把计数和某一行对应起来,先重置,再固定那一行做一次访问。连续打开十个页面再回头看总数,Direct 与 Proxy 可能都动了,无法对应到某一次。对照的粒度是「一次访问」,不是「一个下午」。

对照

固定一行,只改策略

选定列表里的一行之后,按 Direct → Proxy → Config 的顺序切。不要同时换记录、改 FINAL、刷新容器。Direct 下本机访问、门户认证页应可用;这里已经没有网,先处理 Wi-Fi、蜂窝或登录页,与记录无关。Proxy 下预期走记录的主机能打开:隧道和这条记录在应用层可用;这里也打不开:问题在记录或对端,不要先改规则。Config 仅在 Proxy 已经证明记录可用之后再调,一次改一个条件,用 Data 看计数站在哪一侧。

这个顺序的用处是归因。Direct 失败,修本地网络。Proxy 失败,修记录。Config 失败而 Proxy 成功,修规则。三步同时做,屏幕上每一次变化都可以用另外两个变量解释,等于没有解释。手册把同一套顺序写进了读数章,本篇只强调:图标不参与这三步里的任何一步。

探测数字很小,网页仍可以打不开

列表探测通常只走到这一跳的握手,并不加载你正在用的那个网站。探测成功、网页失败:这一跳当前探得通,失败在 DNS、规则、对端站点、或该 App 拒绝隧道。探测失败、个别网页却能打开:那些网页可能走了 DIRECT,看 Data,不要看毫秒数。

系统时间未自动同步时,TLS 会批量失败,开关在任何记录上都会表现异常,探测也会一起坏。先打开「自动设置」时间,再谈记录。目的地址是 IPv6、规则只写了 IPv4 的 IP-CIDR 时,请求掉到 FINAL,看起来像规则「有时灵有时不灵」,见 解析。另一款 VPN 正处于连接:系统可能不把流量交给本扩展,开关亮着也不表示字节进了 Shadowrocket,Data 两条都不动。

图标亮着、探测很小、网页失败、Data 只涨 Direct:四件事可以同时为真。只看第一件,会得出无法行动的结论;四件一起看,结论是策略或规则把这次访问留在了原路径。下一步是固定那一行,只动策略,而不是再买一条新的记录、或再导入一份新的名单。

还有一种常见误读:把 Data 的 Proxy 数字当成「今天用了多少套餐」。那条数字只说明本机曾经把多少字节送进过当前这条或此前高亮过的记录,它既不按网站拆开,也不按日期清零,除非你手动重置。换了一条记录再访问,新的增量会叠在旧的 Proxy 上。若要回答「这一条行不行」,必须先重置,再只访问一次,再看哪一侧动了。不重置、连续换行、同时开着好几个 App,得到的是一笔糊涂账,不能用来给任何一行定罪。