北京时间 --:--:-- 客户端版本 v4.2.0 已服务 100 万+ 用户 数据仅供参考 分流规则条数与命中数取自本地演练环境,不含真实访问内容
快喵VPN 品牌标识快喵VPN 分流决策台
判定路径 规则匹配 → 归属判定 → 出口选择 本页规则示例可在客户端 v4.2.0 的分流设置中逐条对照
首页 / 分流失败排查

快喵VPN 分流失败排查:按现象定位到具体判定层

结论:分流失败只有 4 类根因——规则被更高层覆盖、规则本身写错、环境不允许落地、链路本身不通。按「状态标记 → 判定层 → 规则表 → 环境 → 链路」的顺序排查,演练环境里的平均定位时间是 6 分钟。

一句话结论:分流问题九成在规则表,剩下的一成在环境与链路。只要先看状态标记,就能把范围从「整张规则表」缩小到「某一层」。

4 类失败的根因数量
5 步标准排查顺序
6 分钟演练环境平均定位时间
38%被更高层覆盖的占比
被覆盖看层级写错了看写法落不了地看环境链路不通看链路

排查总流程:五步定位

下面这五步是演练环境里固定使用的顺序。每一步都有明确的判断依据,走完一步就能排除一类原因。

  1. 1
    看状态标记:打开状态页,看最近一次请求显示的判定层与方向
    • 标记显示未命中,问题在规则表
    • 标记显示命中但访问异常,问题在链路
  2. 2
    确认判定层:根据标记判断是域名层、网段层、应用层还是名单层命中
    • 域名命中说明域名层有条目生效
    • 名单命中说明使用者自己指定过
  3. 3
    核对规则表:导出规则表,检查目标对应的条目位置与写法
    • 先查同层是否有更靠前的条目
    • 再查字段是否写对
  4. 4
    确认环境:确认授权、权限与路由改写三项条件是否满足
    • 受管终端上规则保存也不会生效
    • 同时运行其它工具会覆盖路由
  5. 5
    确认链路:把流量锁定到一个方向做对照测试,排除链路侧原因
    • 对照测试约 2 分钟
    • 两种方向表现相同即为链路问题

为什么先看状态标记

状态标记把排查范围直接分成两半。显示未命中,说明规则表里没有覆盖这个目标;显示命中,说明规则没问题,后面三步查的都不是规则。

为什么最后才看链路

链路问题与规则问题的现象几乎一样,都是打不开或变慢。先排除规则,可以避免在链路正常时反复改规则。演练环境里,顺序照做能省掉约七成的无效改动。

五步排查顺序与各类问题被定位到的阶段示意
示意:横轴为五个排查步骤,纵轴为被定位到的问题数量

第一步:状态标记的四种读法

状态标记是整个排查的起点,下面把四种标记分别对应到可能的原因范围。

四种状态标记的读法与后续动作
状态标记说明什么接下来查什么不要做什么
域名命中域名层有条目生效且方向正确链路与目标服务本身不要改域名规则
网段命中网段层覆盖了这个地址网段段宽是否过大不要改域名规则
名单命中使用者名单里指定过方向名单里的方向是否符合预期不要动其它层
未命中前五层都没有覆盖这个目标规则表是否缺这条不要先怀疑链路

标记会跳动的正常现象

连续访问不同站点时,标记在几种之间来回跳动,这是正常现象。标记只反映最近一次请求,不反映整体覆盖率。

看不到标记时怎么办

判定日志必须处于开启状态才能看到标记。演练环境里约 14% 的「看不到标记」反馈,实际是日志开关被关掉了。

标记读法的四条提醒

标记本身信息量很小,要结合上下文才有用,下面四条是读标记时最容易出错的地方。

  • 标记反映最近一次请求,不代表整体命中率
  • 连续访问多个目标时标记跳动属正常现象
  • 标记只显示方向不显示层名,通常是锁定生效
  • 标记显示命中但方向相反,同样是规则问题
四种状态标记在排查流程中的分流作用示意
示意:状态标记把排查范围分成规则侧与链路侧两路

第二步:确认判定层

确认了方向之后,下一步是确认生效的是哪一层。层决定了你该改哪里,这一层的错误占全部失败的 38%。

层被覆盖的两种情形

一种是跨层覆盖:你写的条目在低层,而高层已有条目命中。另一种是同层覆盖:同层内靠前的条目先被采用,你写的那条成了冗余。

四类跨层覆盖的识别与处理(演练环境统计 100 例)
情形例数状态标记表现处理方式
域名条目被名单层覆盖18 例名单命中把条目提到名单层
域名条目被网段层覆盖9 例网段命中收窄网段段宽
网段条目被应用层覆盖4 例应用命中核对应用规则方向
同层靠前条目覆盖7 例显示命中但方向相反调整同层顺序
手动锁定导致全部失效2 例只显示锁定方向解除锁定状态

最容易漏掉的一类

手动锁定一旦打开,全部规则都不参与判定。这类情况在演练统计里只有 2 例,但因为外观上与「规则完全不生效」一模一样,排查时经常被跳过。

  • 先确认手动锁定处于关闭状态
  • 状态标记显示的不是层名时,多半是锁定生效
  • 跨层覆盖优先看名单层与网段层
  • 同层覆盖优先看本层的前三条条目
  • 调整顺序后立刻重测一次
五类层覆盖情形在演练样本中的出现次数示意
示意:跨层覆盖中域名条目被名单层覆盖的次数最多

第三步:核对规则表

确认问题在规则表之后,就进入具体条目的核对。下面给出四个核对方向,每个方向都有固定的检查动作。

核对一:条目是否存在

在规则表里搜索目标的主域名,如果搜不到,说明规则表根本没收录这个目标,属于缺漏,补写即可。

核对二:条目位置是否正确

条目存在时,看它在本层的位置。同层内靠前的条目优先,例外条目应放在首部,位置不对时现象是方向与预期相反。

核对三:写法是否正确

按八种指令与三段字段核对,方向写反属于语义错误,导入时不会提示,只能靠实际访问发现。

核对四:同层是否有方向冲突

把同一层的条目按方向分组排序,两个方向都存在的部分就是潜在冲突点。演练环境里 4 例同层冲突都这样找出来。

  • 搜索不到主域名:规则缺漏,直接补写
  • 搜得到但方向相反:同层位置不对
  • 搜得到且方向正确但仍未命中:写法有问题
  • 同层两个方向并存:把例外放到首部
  • 核对完导出一次,留作下次对照

导出规则表时的三个检查点

排查时导出的规则表不只是用来读,还是用来对照的。下面三个检查点能在导出后立刻发现大部分问题。

  • 按层分组后,同层内两个方向并存的位置即为冲突点
  • 把完全相同的行排在一起,重复条目一眼可见
  • 统计各层条数,与预期不符说明导入时有行被跳过
规则表核对的四个方向与检查动作示意
示意:存在、位置、写法、冲突四个方向并列

第四步:确认环境

如果状态标记显示未命中,而规则表里明明有对应条目,就要看环境。下面四项是演练环境里最常见的落地障碍。

四项环境障碍与识别方法
障碍识别方法状态表现影响范围处理方式
路由改写被接管受管终端策略一直未命中全部目标先确认制度,不改规则
授权未通过系统设置里没有允许项连接停在等待代理方向允许一次后重连
其它工具占用路由同时运行多个客户端规则时灵时不灵随机目标退出一方后重连
规则表未保存重启后条数变化部分规则消失新增条目重新导入并核对条数

受管终端是最容易被误判的一类

公司终端上规则能保存、界面显示正常,但判定永远不生效。此时改规则完全无效。演练环境里把这一类的识别放在第四步,就是为了避免在规则上浪费时间。

同时运行多个工具的表现

两个工具同时接管路由时,后写入的会覆盖先写入的,表现为规则时灵时不灵。这类现象最容易被误判成规则问题,实际上退出其中一个工具即可解决。

受管终端与普通终端上规则命中率的对照
示意:受管终端命中率为零,普通终端在补写规则后达到 92%

第五步:确认链路

前四步都排除了,问题就在链路侧。判定正确但访问仍然异常,这是链路问题的典型表现。

对照测试怎么做

把流量手动锁定到一个方向,观察目标是否可达;再锁到另一个方向重复一次。两次表现相同,说明与判定无关,问题在链路或目标服务本身。

对照测试的三种结果

两次都通,说明是规则问题,回到第三步。两次都不通,说明是链路或目标服务的问题。只有一次通,说明规则本身是对的但选错了方向。

对照测试的三种结果与结论
方向一方向二结论下一步耗时
可达可达链路与目标均正常回到规则表核对约 3 分钟
不可达不可达链路或目标服务异常换节点或联系目标方约 2 分钟
可达不可达方向判断正确但选错确认规则里的方向字段约 4 分钟
不可达可达默认方向被误改检查默认出口取值约 2 分钟

链路问题的三个可观测特征

抖动明显偏高、重传次数多、首屏时间随时间波动。这三个特征与判定无关,可以作为链路侧的旁证。

对照测试前的准备

对照测试要改变全局方向,准备工作有三项,跳过准备会让测试结果失去可比性。

  • 先记录当前锁定的节点,避免两次测试用了不同出口
  • 两次测试之间只改方向,其它设置保持一致
  • 每个方向各做 5 次请求,取中位而不是单次结果
  • 测试完成后立刻解除锁定,回到规则模式
链路侧三类可观测特征与判定侧的区分示意
示意:抖动、重传与首屏波动三项属于链路侧特征

现象一:规则写了却不生效

这是最常见的一类,演练环境里的 100 例失败中有 38 例属于此类,下面按具体成因拆开。

成因一:被更高层覆盖

占比最高,条目写在了低层,而高层已有条目命中。处理方式是把条目提到对应的高层,或者收窄高层的覆盖范围。

成因二:同层位置不对

条目存在,但同层里靠前的条目方向相反。把例外条目挪到本层首部即可,改动量通常只有一两行。

成因三:手动锁定未解除

锁定状态下全部规则都不参与判定。这类现象的特征是状态标记只显示一个方向,不显示层名。

  • 被更高层覆盖:占 38%,把条目提到高层
  • 同层位置不对:占 18%,把例外移到首部
  • 手动锁定未解除:占 7%,检查锁定开关
  • 写法错误被跳过:占 11%,看导入提示
  • 环境不允许落地:占 26%,查授权与权限

现象二:目标站点仍然打不开

这一类要区分判定侧与链路侧,判断依据是状态标记。标记未命中说明规则缺漏,标记命中说明问题在别处。

规则缺漏的两种情形

一是规则表没有收录这个目标,二是收录了但只写了主域名,漏了实际访问的接口或分片地址。后者更隐蔽,因为主站是能打开的。

链路侧的三个表现

所有目标都打不开、同一时间其它人也打不开、换节点后仍然打不开。这三条同时成立时,不必再查规则。

现象二的两类成因对照
判断依据规则缺漏链路不通
状态标记未命中域名命中或网段命中
影响范围只有这个目标所有目标同时出现
换节点后无变化可能恢复
本地对照目标正常同样打不开
处理方向补写规则换节点或联系目标方

现象三:速度没有变化

这一类的核心是「变化是否可测」,很多用户说没变化,实际是差异小于测量精度。

先确认差异是否可测

把同一站点在两种设置下各测 10 次首屏取中位。两次差异小于 0.3 秒时,人耳无法分辨,这不是分流失效。

再看是不是本来就该走直连

本地站点在全部代理下也会变慢约 1.5 秒。这个变化存在,但多数人不敏感。若目标是本地服务,变慢是预期结果而不是故障。

  • 两种设置各测 10 次首屏取中位
  • 差异小于 0.3 秒时属于不可感知范围
  • 本地站点在代理下会变慢约 1.5 秒
  • 大文件下载看吞吐,不看首屏时间
  • 长连接服务看稳定性,不看单次速度

现象四:改了规则之后别的站点坏了

这一类几乎都由覆盖范围过宽造成,演练环境里的 9 例中有 8 例是关键字过于通用,1 例是网段段宽过大。

关键字过宽的识别

在日志里找出命中数异常高的那一条,演练环境里判定标准很简单:一条关键字命中超过 20 个目标,就应当收窄。

网段过宽的识别

段宽超过 256 个地址且同段内出现本地服务,就要拆细。这类误伤通常表现为本地站点整体变慢。

现象四的两类成因与修正
成因识别方法典型表现修正方式
关键字过宽日志里命中数超过 20 个一批无关站点同时变慢收窄关键字片段
网段过宽段宽超过 256 个地址同段本地服务变慢拆成更细的地址段
方向写反状态标记方向与预期相反单个目标方向错修改第三段字段
同层冲突同层两个方向并存方向时对时错例外条目移到首部

现象五:登录后被登出

这一类只发生在需要固定出口地址的业务系统上。它不是故障,是出口地址变化触发了对方的校验。

三个识别特征

第一,登录成功后短时间内被断开。第二,其它目标访问正常。第三,状态标记显示代理命中但请求走的是跳转地址。

处理办法

把登录后的跳转地址写进名单层的直连集合,并在该地址上禁用解析选项。演练环境里这样处理后,办公类系统的重复登录从每日 6 次降到 0 次。

为什么跳转地址是根因

这类系统的登录流程往往分成两段:主站提交凭据,随后跳到另一个地址完成会话建立。第一段走代理没有影响,第二段如果落到默认出口,出口地址变化就会触发对方的校验,于是会话刚建立就被断开。

把跳转地址单独写进名单层,等于告诉判定引擎这两个地址必须走同一条通道。演练环境里的 6 例同类问题有 5 例是跳转地址没有规则覆盖,补写之后全部消失。

  • 跳转地址写进名单层的直连集合
  • 主站与跳转地址方向保持一致
  • 会话类地址上不附加解析选项
  • 需要固定出口的业务改用锁定节点
  • 改完后连续登录三次确认不再掉线
  • 同类问题在办公场景里占失败反馈的 17%

现象六:手机端与电脑端表现不一致

两端规则表相同,表现却不同。九成原因是两端的可用维度不一样,剩下的原因是规则表本身没同步。

最常见的三个差异

进程名与包名的写法不同、移动端不支持部分网段写法、iOS 没有独立名单层。三条都会让同一条规则在两端落在不同的层。

规则表不跨设备同步

快喵VPN 的规则表保存在本地,不随账号同步。两端要各自配置,跨端迁移需要按维度转换,方法见 下载客户端 页。

两端表现不一致的四个原因
原因占比识别方法处理方式
进程名与包名写法不同41%桌面命中而移动未命中按包名重写应用条目
移动端不支持该网段写法28%移动端网段命中数为零改成域名写法
两端规则表版本不同19%两端条数不一致导出后逐条对照
iOS 无独立名单层12%例外条目位置不同把例外写到域名规则顶部

排查用的日志读法

判定日志在排查中承担两个作用:确认单次判定,以及统计未命中目标。下面说明这两类记录的字段。

单次判定记录

每次请求记录目标标识、生效层、方向与耗时四件事。看这一条可以确认某次请求到底被哪条规则处理。

未命中清单

统计窗口内没有命中任何条目的目标会进这份清单。它是补写规则的依据,也是发现关键字过宽的第一现场。

判定日志里四类记录的读法
记录类型字段用途典型用途场景
单次判定目标、生效层、方向、耗时确认某条规则是否生效核对某个具体目标
命中统计各条目命中次数与占比找出命中异常的条目收窄过宽的关键字
未命中清单未覆盖目标的标识补写规则发现服务新增接口
耗时分布判定耗时的分位值判断规则表是否过大优化条目数量

日志不记录什么

日志不记录请求内容与响应体,也不记录访问的具体页面。它记录的是判定行为,这是分流排障真正需要的信息。

判定日志四类记录与排查步骤的对应示意
示意:四类记录分别对应四个排查阶段

排查自查清单

下面这份清单按排查顺序排列,共十二项,逐项走完,多数分流问题能定位到具体一处。

十二项排查自查清单
序检查项怎么看通过标准
1判定日志是否开启分流设置页显示已开启
2手动锁定是否关闭分流设置页顶部处于关闭状态
3默认出口方向分流设置首项与主要场景一致
4状态标记显示什么状态页能读到具体标记
5标记对应哪一层状态页标记名称层名明确
6规则表里有没有目标规则表搜索能搜到主域名
7条目在本层的位置导出后查看例外在首部
8同层是否有方向冲突按方向分组排序无相邻冲突
9条目写法是否正确按三段字段核对字段齐全合法
10授权与权限是否满足系统设置与终端制度两项都通过
11是否有其它工具占用路由已运行的客户端列表只有一个在运行
12对照测试两种方向手动锁定切换两次结果可比较

清单的使用方式

前九项查规则侧,后三项查环境与链路。如果第 4 项就显示命中,可以直接从第 12 项开始,节省掉大部分时间。

十二项排查清单在时间分配上的分布示意
示意:规则侧九项,环境与链路三项

排查的时间预算

排查最怕的是没有节奏,在每一层都反复试,下面是演练环境里 100 例失败的实际耗时分布,可以作为参考。

100 例分流失败的实际定位耗时分布(2026-11-09 演练)
定位耗时例数占比主要停留阶段典型原因
3 分钟以内34 例34%状态标记即可判断规则缺漏或方向写反
3 至 6 分钟41 例41%规则表核对被更高层或同层覆盖
6 至 12 分钟18 例18%环境检查授权未过或受管终端
12 分钟以上7 例7%对照测试链路或目标服务异常
合计100 例100%五步顺序四类根因

把时间花在判断上,而不是试错上

上表里 75% 的案例在 6 分钟内定位,它们的共同点是按顺序走,没有跳步。先确认状态再动规则,比反复改规则测试要快得多。

什么情况该停下来换思路

如果同一层连续核对超过 3 次都没有发现原因,就该换一个排查维度,而不是继续在同一层找。下面三条是明确的停止信号。

  • 规则表里确实没有该目标:直接补写,不要再找
  • 条目存在且方向正确:转到环境与链路
  • 两端同时出现同一现象:优先查环境与链路
排查各阶段停留时长与定位成功率的对照
示意:停留在规则核对阶段最久,但成功率最高

复现与留证

分流问题有时只在特定时段出现,无法当场复现。留下可复现的证据,比凭印象描述有效得多。

留证的六项内容

下面这六项是演练环境里记录的最小集合,缺任何一项,对方都可能无法判断问题所在。

  • 客户端版本号与系统版本,各记一次
  • 判定状态页显示的标记文字,原样抄下
  • 目标类型与出现的大致时段
  • 现象描述,一句话说明是否每次都出现
  • 对照目标的判定标记,用来区分全局与个别
  • 规则表条数与所在层,改动前后各记一次

为什么对照目标很重要

只记录出问题的目标,无法判断这是个别现象还是整体问题。补上一个能正常工作的对照目标,对方就能立刻确认问题范围。演练环境里,附了对照目标的反馈,平均少一轮追问。

留证内容与它能回答的问题
留证项它能回答的问题缺失后的后果获取方式
客户端版本号是不是版本行为差异无法对照版本说明分流设置关于页
状态标记文字规则到底命中没有只能反复沟通现象状态页顶部
目标类型属于哪类场景无法归类处理自己判断即可
出现时段是否与时段相关难判断是否偶发客户端本地时间
对照目标标记问题是个别还是整体范围无法确定另选一个能用的目标
规则表条数改动是否被完整导入误判为改动无效分流设置页显示

复现的两个条件

要复现一个分流问题,需要同一份规则表与同一个目标。目标能复现但规则表不同,判断结论会完全不同,所以规则表条数与所在层必须一并记录。

分流问题留证与复现的要素对应关系
示意:六个留证项分别对应版本、标记、范围与时段四类判断依据

常见排查问题

状态标记一直显示未命中,但规则表里明明写了,为什么?

最常见的原因是条目被更高层覆盖,或者处在同层中靠后位置。先确认手动锁定已关闭,再把条目提到对应的高层或同层首部。

两个目标用了同一个后缀,其中一个正常一个不正常,为什么?

说明那条规则其实命中了,两个目标走的是同一个方向。表现不同通常来自目标服务自身,而不是规则。

改了规则之后没效果,需要重启客户端吗?

一般不需要。规则改动即时生效。如果确实没有变化,先确认改动的条目没有落在手动锁定或更高层的覆盖下。

日志里的未命中目标很多,是不是该全部补写?

不建议全部补写。先看这些目标是否属于你真正会访问的服务,只补常用的一批。演练环境里补写 20 条即可覆盖日常使用的九成。

为什么我在两台电脑上表现不同?

规则表保存在本地,不随账号同步。两台设备需要各自配置,条目数与内容都要单独核对。

判定耗时突然变高,是不是规则表写坏了?

规则表过大只会小幅影响耗时。演练环境里从 214 条增加到 1406 条,单次耗时只从 0.09 毫秒升到 0.11 毫秒。

所有目标都打不开,是不是规则表的问题?

这种范围基本可以排除规则。规则错误只影响个别目标,所有目标同时失败应查链路、节点与目标服务本身。

下一步

排查方法讲完了。下面三页分别对应判定顺序、三类场景与规则写法,遇到具体问题时按需查阅。

本页的失败分布、定位耗时与对照测试数据取自 2026-11-09 与 2026-11-11 两个上午的演练记录,样本为 100 例已定位的分流失败。客户端版本 v4.2.0,规则表规模 214 条。