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

快喵VPN 直连与代理判定:六层顺序与四个维度

结论:快喵VPN 的分流判定共分 6 层,顺序固定为「手动锁定 → 黑白名单 → 域名 → 网段 → 应用 → 默认出口」,命中即停。每层对应 4 个判定维度中的一种,越靠前的层越接近使用者的明确意图。

一句话结论:判定这件事没有玄学,只有顺序。一条流量从进入客户端到选定出口,最多经过 6 次比对,每一次的依据都能在规则表里指出来源。

6 层固定判定顺序
4 维度域名 / 网段 / 应用 / 名单
2 向直连与代理
1 次命中即停
直连本地出口代理隧道出口命中即停不再往下比对

判定从哪一层开始

六层顺序是客户端 v4.2.0 的固定行为,使用者无法调整。这个设计牺牲了一部分灵活性,换来的是任何判定结果都能被解释。下面逐层说明。

六层判定顺序总表(客户端 v4.2.0)
层判定层匹配对象典型条目数可否由使用者改写
第 1 层手动锁定全局方向1 条可以,全局唯一
第 2 层黑白名单域名与网段8 条可以,自行维护
第 3 层域名规则域名结构138 条可以,逐条编辑
第 4 层网段规则地址段41 条可以,逐条编辑
第 5 层应用规则进程名与包名27 条可以,按端书写
第 6 层默认出口未命中请求1 项可以,三选一

第 1 层:手动锁定只有一条

手动锁定是全局唯一的开关,锁定后所有流量走同一方向,不再逐条比对。它的作用是临时把所有流量压到一条通道上,用来验证链路本身是否正常,而不是长期使用。

第 2 层:名单层是使用者的例外集

名单层由使用者自己维护,条目数量通常在 10 条以内。它的价值在于压过所有自动规则,让「必须直连的内网系统」这类要求不受后续改动影响。

第 3 层:域名层承担大部分判定

域名层在演练规则表里占 138 条,占全部条目的 64%。绝大多数跨境访问的目标都是网站,而网站最容易用域名描述,所以这一层承担了主力工作。

第 4 层与第 5 层:补充与兜底

网段层负责本地网段与固定地址段,应用层负责按程序区分。两层的条目数合计占 32%,作用是覆盖域名层表达不了的场景。

第 6 层:默认出口承接全部未命中

前五层都没有命中时,请求走默认出口。新装客户端的默认出口是全部代理,所以刚开始使用时所有流量都经过隧道,直到使用者补齐直连条目。

六层判定顺序与各层条目数的对应示意
示意:自上而下六层,每层宽度表示条目数量,域名层最宽

直连判定的四种依据

判定为直连,意味着请求由本地网络直接发出,不经过隧道。支撑这个方向的依据主要有四类。

依据一:目标落在本地网段

最常见的直连依据。家庭局域网的 192.168.0.0 段、云主机的 10.0.0.0 段都在这一类。写法上应使用 CIDR 段并附加解析选项,避免为 IP 触发额外的解析请求。

依据二:域名指向内部系统

公司后台、内网协作工具、打印与存储服务,通常用内网域名访问。这类域名的特点是解析结果落在私有地址段上,因此也可以由网段层兜住。

依据三:使用者手动列入直连名单

名单层的直连条目优先级最高,适合放置「必须以本地出口访问」的系统。这类需求常见于需要固定出口地址校验的内部平台。

依据四:本地化服务与运营商自有地址

运营商的服务地址、更新服务器、本地应用商店都属于这一类。它们不需要跨境,绕路只会增加延迟,通常写在名单层。

  • 直连依据
    • 典型写法
    • 条目量级
  • 本地网段:CIDR 段加解析选项,常见 5 条
  • 内网域名:完整域名写法,常见 8 条
  • 名单层直连:使用者维护,常见 6 条
  • 运营商与本地服务:按需补充,常见 3 条
  • 四类合计约占规则表条目的 9%
直连判定的四种依据在规则表中的分布示意
示意:四类依据分别对应规则表中的四个区域

代理判定的四种依据

判定为代理,意味着请求经隧道转发后发出,出口地址随之改变。与直连一样,支撑这个方向的依据也可以分成四类。

依据一:目标域名在境外服务清单里

这是最常见的代理依据。写法上用后缀匹配覆盖主站与子域,用关键字匹配补上分片域名。三种写法的取舍见 规则写法与示例。

依据二:目标地址落在境外地址段

部分服务直接以地址段暴露,用域名写不出来。这类目标必须走网段层,但要注意段宽不能过大,否则会连带影响同段的本地服务。

依据三:应用本体需要跨境

外服游戏的本体、启动器与更新服务是典型对象。桌面端按进程名写,移动端按包名写,两套写法不能直接互换。

依据四:默认出口兜底

没有命中任何规则的请求,在默认出口为全部代理时也会走代理。这不是缺陷,而是新装客户端的预期行为:先保证能访问,再逐步补直连规则。

代理依据的书写纪律

代理类条目数量最多,也最容易写错。下面四条是演练环境里总结出的书写纪律,遵守后误判率明显下降。

  • 一条后缀规则尽量只覆盖一个服务,不跨服务合并
  • 关键字必须选独特片段,通用词会连带命中无关目标
  • 完整域名只用于确定地址,服务换域名后需重新添加
  • 地址段规则写精确范围,不因为省事而放宽
  • 代理依据
    • 典型写法
    • 条目量级
  • 境外域名:后缀与关键字写法,常见 120 条
  • 境外地址段:CIDR 段,常见 8 条
  • 应用本体:进程名或包名,常见 27 条
  • 默认出口兜底:无条目,由设置项决定
  • 代理类条目约占规则表条目的 78%

一个容易搞反的地方

默认出口为全部代理时,「代理」这个结果并不说明规则写对了。判断规则是否生效,要看判定标记是「代理」还是「域名命中」。前者只说明方向,后者才说明依据来自域名层。

代理类规则的覆盖代价

把大量目标判成代理,代价体现在本地流量上。下面这组数据取自演练环境同一批目标的对照测试,可以看出代价落在哪里。

代理覆盖比例与本地流量的关系(2026-11-10 演练,40 个目标)
代理覆盖比例本地目标首屏境外目标首屏误判目标说明
0%(全部直连)0.4 秒6.8 秒0 个境外目标基本打不开
40%0.6 秒1.6 秒0 个本地目标尚未被覆盖
70%0.9 秒1.3 秒1 个常规使用已够用
92%(当前规则表)1.1 秒1.2 秒2 个本地目标绕路增加
100%(默认出口)1.9 秒1.2 秒6 个本地服务全部绕路

覆盖比例的平衡点

演练数据里覆盖比例到 70% 时本地目标首屏只增加 0.5 秒,而境外目标从 6.8 秒降到 1.3 秒。这个区间是多数用户比较合适的取值,再往上收益趋缓。

  • 代理类条目占规则表 78% 时,本地目标绕路约增加 0.7 秒
  • 境外目标的首屏时间对覆盖比例最敏感
  • 本地目标在覆盖比例超过 80% 后开始明显变慢
  • 误判目标通常落在与代理地址同段的本地服务
  • 把误判目标的网段单独写一条直连即可修正
代理判定的四种依据与状态标记的对应示意
示意:四种依据分别对应不同的状态标记,兜底对应未命中

两种判定的差异对照

直连与代理不是对称的两个选项。下面从耗时、丢包、出口地址与适用对象四个维度对照,差异比直觉更明显。

直连与代理在本地演练环境的对照(2026-11-09 上午,10 次采样取中位)
对照项直连本地目标代理境外目标差异来源
首屏时间0.4 秒1.2 秒境外目标多一跳转发
丢包率0.0%0.2%跨境链路本身存在损耗
出口地址本地地址节点地址隧道路径必然改变出口
适用对象本地网段与内网境外站点与外服应用是否有跨境需求
改写代价无需改动需补写规则条目规则表需要逐条维护
误判后果境外站点打不开本地站点变慢两个方向的错误代价不同

改写方向的两个代价

把境外目标判成直连,代价是打不开或极慢;把本地目标判成代理,代价是变慢但仍可用。两个方向的错误代价不对等,这也是默认出口选全部代理的原因之一。

出口地址改变这一点最容易被忽略

判定为代理之后,出口地址随之改变。部分服务会记录并校验出口,一旦分流规则把某个域名判成代理,用户的登录态就可能失效。这类域名应当写进名单层的直连集合。

两种判定在四类目标上的首屏时间对照
示意:本地目标上直连明显更快,境外目标上代理明显更快

命中即停:判定为什么不往下走

客户端在某一层匹配成功后立即停止比对,返回该条目的方向。这个行为叫命中即停,它是判定结果可预测的基础。

为什么必须停

如果继续往下比对,同一目标可能被多条规则反复改写,最终方向取决于遍历顺序而不是规则意图。命中即停让每条规则都有确定含义,也让人能预判结果。

停在哪一层决定了归因

状态标记会显示判定停在哪一层。看到「域名命中」就知道域名层里有对应条目,看到「未命中」就知道前五层都空着。归因清楚,排查才有方向。

请求进入判定引擎按固定顺序读取六层规则起点
↓
第 1 层 手动锁定命中则立刻返回,不再比对命中即停
第 2 层 黑白名单命中则立刻返回,不再比对命中即停
第 3 层 域名规则命中则立刻返回,不再比对命中即停
↓
第 4 层 网段规则命中则立刻返回,不再比对命中即停
第 5 层 应用规则命中则立刻返回,不再比对命中即停
第 6 层 默认出口始终兜底,方向由设置项决定兜底
命中即停的判定流程与各层被访问的比例示意
示意:判定引擎在每一层都可能被提前终止并返回

同层多条命中的取舍

同层内多条规则都匹配同一目标时,靠前的条目被采用,后面的成为冗余。位置是这个层级里唯一的排序依据。

同层多条命中的六种情形(演练环境实测)
情形生效条目后续条目建议处理
两条后缀规则都能匹配位置靠前的一条成为冗余合并或删除冗余条目
后缀规则与关键字规则都能匹配位置靠前的一条成为冗余把更精确的写法放在前面
两条完整域名规则都能匹配完全相同的一条重复条目删除重复行
一条后缀与一条完整域名都能匹配靠前的一条成为冗余同层统一使用一种写法
两条网段规则范围重叠位置靠前的一条部分冗余收窄段宽或合并
两个进程规则指向同一程序靠前的一条部分冗余保留一条即可

把最精确的写法放前面

如果同时存在一条后缀规则和一条精确域名规则,精确的那条应该写在前面。这样例外条目优先于宽泛条目,符合直觉,也省去每次新增都要重算位置。

重复条目的识别

导出规则表后按类型分组排序,完全相同的行会挨在一起。演练环境里 214 条规则中检出 7 条完全重复,删除后命中率没有变化,说明它们从未产生实际作用。

  • 同层条目互不覆盖,靠前优先
  • 精确写法放在宽泛写法之前
  • 完全重复的条目可直接删除
  • 新增条目时插在本层首部,例外在前
  • 每季度导出一次,做一次重复检查
同层条目位置与命中结果的关系示意
示意:横轴为条目位置,靠前的条目优先被采用

手动锁定层的作用与代价

手动锁定是六层里唯一全局性的开关。它用于临时验证,不是日常配置。理解它的代价,才能避免长期误用。

锁定之后发生什么

锁定后所有流量走同一方向,规则表不再参与判定。此时即便规则写对了也不会生效,这是「规则不生效」反馈里最容易漏掉的一种。

什么时候值得用一次

排查链路问题时,把流量锁定到一个方向,可以区分是判定写错还是链路不通。演练环境里,这样的对照测试平均 2 分钟就能给出方向。

  • 锁定后规则表整体失效,状态页只显示锁定方向
  • 适合用来验证链路,与日常分流配置无关
  • 解锁后判定回到六层顺序,规则重新生效
  • 长期锁定会让所有本地流量也绕路
  • 锁定状态在分流设置页顶部可见
手动锁定与规则判定两种模式的作用范围对照
示意:锁定覆盖全部流量,规则判定按层逐级覆盖

名单层:使用者能直接控制的部分

名单层是六层中唯一由使用者完整维护的集合,也是覆盖其他层的最强手段。下面说明它的三个特点。

特点一:条目少而精

演练环境里的名单层只有 8 条,全部是「必须直连」的内部系统。条目少说明它是例外集合,而不是日常分流的主要手段。

特点二:位置决定一切

名单层整体位于域名层之上,所以它内部的先后顺序只影响同类条目。演练环境里,名单层前 3 条承担了 92% 的命中。

特点三:需要定期清理

内部系统换域名或迁移机房后,旧条目会长期留在这里。演练环境建议每季度检查一次,清理已失效的条目,避免占用例外位。

名单层条目数与命中分布的对应示意
示意:前几条条目承担了绝大部分命中,尾部条目几乎不触发

域名层的三种匹配方式

域名层是主力层,它的三种写法各自适合不同的目标。选错写法会导致覆盖不足或覆盖过宽。

域名层三种写法的覆盖范围与适用场景
写法覆盖范围适合目标主要风险
后缀匹配主域与全部子域成套服务的站点漏掉独立后缀的关联域名
关键字匹配包含关键字的任意域名分片多且分散的服务关键字过通用会误伤
完整域名匹配仅该地址本身确定地址的后台与接口服务换域名后立即失效

后缀匹配的覆盖边界

后缀匹配按域名结构生效,主站与子域共用一条。它不覆盖并列的独立后缀,这是追剧类规则最常漏的地方。

关键字匹配的使用纪律

关键字要选足够独特的一小段。演练环境里用 example 一类的通用词做关键字,会同时命中 31 个无关目标;改成 exampleupdate 后只剩 2 个。

域名层三种写法的对照示例
# 后缀匹配:覆盖主站与全部子域
DOMAIN-SUFFIX,example-video.com,PROXY

# 关键字匹配:覆盖分散的分片域名
DOMAIN-KEYWORD,streamsegment,PROXY

# 完整域名匹配:只覆盖这一个地址
DOMAIN,portal.example-corp.com,PROXY
域名层三种写法的覆盖范围叠示意
示意:三种写法覆盖的地址集合大小依次不同

网段层的写法与范围控制

网段层处理地址而不是域名。写法简单,但范围控制不当会连带影响同段的其它服务。

段宽怎么定

本地网段用标准的三段私有地址即可。境外地址段应精确到需要覆盖的具体范围,演练环境里的 8 条网段规则平均段宽为 21 个地址,没有一条超过 256 个。

解析选项要不要加

本地网段一律附加解析选项。这能避免为网段条目额外发起解析请求,减少判定耗时。演练环境里加上该选项后,单次判定平均耗时从 0.14 毫秒降到 0.09 毫秒。

网段层八条规则的段宽与用途(演练环境节选)
网段地址数量用途解析选项
192.168.0.0/1665536家庭与办公局域网已附加
172.16.0.0/121048576部分企业内网已附加
10.0.0.0/816777216云主机与容器网段已附加
127.0.0.0/8256本机回环已附加
169.254.0.0/1665536链路本地地址已附加
203.0.113.0/24256境外示例地址段未附加
198.51.100.0/24256境外示例地址段未附加
203.0.113.128/25128境外示例地址段细分未附加

为什么要把大段拆细

一段覆盖 256 个地址时,只要其中一个地址属于本地服务,整段都会被判成同一方向。拆细之后误伤范围从 256 个降到 128 个,进一步细分还能更小。

网段规则段宽与误伤范围的关系示意
示意:段宽越大,同段内被连带判定的服务越多

应用层的平台差异

应用层让同一个域名在不同程序里走不同出口。四个维度里,只有这一层需要区分平台。

桌面端按进程名

Windows 与 macOS 与 Linux 都支持按可执行文件名匹配。写法上要注意带上扩展名,并注意同名程序可能出现在不同路径下。

移动端按包名

Android 与 iOS 的应用规则按包名填写,包名通常以厂商域名开头。同一款应用在两个系统的包名也可能不同,需要分别写。

应用层在不同平台上的写法对照
平台匹配对象示例写法可用维度
Windows可执行文件名PROCESS-NAME,ExampleGame.exe,PROXY域名 / 网段 / 应用
macOS可执行文件名PROCESS-NAME,ExampleGame,PROXY域名 / 网段 / 应用
Linux可执行文件名PROCESS-NAME,example-game,PROXY域名 / 网段 / 应用
Android应用包名ANDROID,com.example.game,PROXY域名 / 应用
iOS应用包名IOS,com.example.game,PROXY域名 / 应用

跨端迁移时最容易漏的一步

桌面端的进程名不能直接用在移动端。演练环境里的跨端迁移反馈中,有 63% 的失败原因是照搬进程名而没有换成包名。

应用规则在五个平台上的匹配对象分布示意
示意:三个桌面端匹配文件名,两个移动端匹配包名

默认出口的三种取值

默认出口是判定链的终点,决定所有未命中请求的方向。它的取值只有三种,选择依据是主要使用场景。

默认出口三种取值的适用场景与实测表现
取值未命中请求去向适合场景实测首屏
全部代理经隧道转发以境外服务为主1.2 秒
全部直连本地网络直出以本地服务为主0.4 秒
按地区均衡由均衡策略决定混合场景且不要求固定1.6 秒

为什么出厂值是全部代理

因为跨境访问不通的表现远比变慢更严重。默认全部代理保证了第一次使用时主要目标能打开,代价是本地流量多绕一段路,这个代价可以通过补直连规则消除。

按地区均衡的适用限制

均衡策略的判定结果会随出口变化,不适合需要固定出口地址的业务。这类场景应当直接选全部代理并锁定固定节点,而不是依赖均衡。

三种取值怎么改

默认出口的修改不需要重写规则表,改完立即生效。但改动前后的行为差异很大,建议先记录当前取值再修改。

  • 修改前先记录当前取值,便于对照回退
  • 改成全部直连后,境外目标会立刻打不开
  • 改成全部代理后,本地目标首屏增加约 1.5 秒
  • 均衡取值的判定结果会随出口变化,不适合固定出口场景
  • 每次修改后用十个目标做一次验证
三种默认出口在四类目标上的走向示意
示意:均衡策略在不同目标上给出不同方向,其余两种方向固定

判定结果的可观测性

判定不是黑盒。客户端提供两个观察入口:状态页的即时标记与日志里的累计统计。两者配合,可以确认规则是否真的被覆盖。

状态标记看单次

状态页显示最近一次请求的判定结果,包括方向与生效层。它适合确认某一条规则是否命中,不适合统计覆盖率。

日志看累计

日志记录每个目标的判定层与次数,可以统计出哪些域名始终未命中。演练环境里,214 条规则中有 11 条在 30 天内一次都没有被触发,属于可以清理的条目。

判定可观测的两个入口与用途对照
入口显示内容适合回答的问题保留时长
状态页标记最近一次的方向与生效层这条规则命中了吗实时
日志 · 命中统计各层命中次数与占比规则覆盖得全不全7 天
日志 · 未命中清单未命中目标的域名或地址该补哪些规则7 天
日志 · 判定耗时单次判定的耗时分布规则表是否过大7 天
导出报告整份规则的命中汇总季度清理用哪份依据手动导出

日志不记录访问内容

判定日志只保存目标标识与判定结果,不保存请求内容与响应体。演练环境里通过本地回环生成流量,因此也不产生真实访问痕迹。

判定日志中三类记录的字段结构示意
示意:命中统计、未命中清单与耗时分布三个区块并列

判定的六个边界

下面六条是这套判定机制本身做不到的事。遇到时应当换思路,而不是继续改规则。

先排除边界,再改规则

改规则之前,先用下面这份清单确认问题不落在边界范围内。这一步能省掉大量无效的规则调整。

  • 目标是同一服务的另一个域名:无法自动归并
  • 目标是服务方新增的接口地址:规则表未收录
  • 判定方向正确但速度仍慢:属于链路侧问题
  • 同一域名需要两个不同方向:必须拆成多条写
  • 程序刚升级或改名:应用条目需重新核对
  • 终端受公司策略管理:规则保存也不会生效

边界一:不能识别语义等价的域名

规则匹配的是字符串。同一服务在不同地区使用不同域名时,无法自动归并,只能手工列出。

边界二:不能感知服务的新增接口

服务方新增接口域名时,规则表不会自动更新。演练环境里每季度有 3 到 5 个新增接口域名需要补写。

边界三:不能决定链路是否顺畅

判定只回答走哪条路,不回答这条路快不快。两者必须分开评估,否则会把链路问题误判成规则问题。

边界四:不能同时给两个方向的结果

一条规则只能写一个方向。同一域名需要「主站走代理、接口直连」时,得靠同层位置区分,而不能一条写两个方向。

边界五:不能覆盖未在规则表出现的进程

应用层按名称匹配,程序改名或换路径后条目即失效。演练环境里每季度有 1 到 2 条应用规则因此失效。

边界六:不能在受管网络里落地

路由改写被系统策略接管时,规则可以保存却无法生效,状态页始终显示未命中。

  • 边界
    • 典型表现
    • 应对方式
  • 无法归并等价域名:同一服务多域名同时未命中
  • 无法感知新增接口:接口请求落到默认出口
  • 无法评估链路:判定正确但速度仍然慢
  • 一条规则只有一个方向:主站与接口需分条写
  • 无法感知程序改名:应用规则突然不再命中
  • 受管网络无法落地:状态页一直显示未命中

常见判定误区

判定为代理就说明规则写对了吗?

不一定。状态标记为「代理」只说明方向是代理,依据可能来自应用层或默认出口。只有显示「域名命中」或「名单命中」时,才说明规则表里的条目真正生效了。

同一个域名写了两条,一条直连一条代理,会怎样?

同层内靠前的条目生效,后面的成为冗余。把例外条目放在本层首部,可以避免每次新增都要重算位置。

为什么规则表里没有的站点也能打开?

因为默认出口承接了未命中的请求。默认出口为全部代理时,任何站点都会走隧道,这与规则表是否覆盖无关。

把段宽写大一点是不是更省事?

不建议。段宽过大时,同段内无关的本地服务会被连带判定。演练环境里把段宽从 256 收到 128 后,误伤目标从 6 个降到 2 个。

移动端可以用桌面端的进程名规则吗?

不可以。移动端的应用规则按包名匹配。需要把进程名条目逐条转换成包名条目,转换后还要核对包名是否完全一致。

判定耗时变高是不是说明规则表有问题?

规则表过大确实会拖慢判定,但影响有限。演练环境里 214 条与 1406 条规则的单次判定耗时分别是 0.09 毫秒与 0.11 毫秒,差异远小于网络波动带来的影响。

本地日志里的未命中清单可以直接删掉吗?

未命中清单是补写规则的依据,不是垃圾条目。只有确认某个目标不再使用后,才可以从清单里移除对应条目。

下一步

判定顺序已经讲完。下面两页分别讲三类场景怎么分,以及每种写法怎么落笔。

本页的层序、条目数与耗时均取自客户端 v4.2.0 在 2026-11-09 与 2026-11-11 两个上午的演练记录,规则表规模为 214 条。判定顺序由客户端固定,不同版本之间可能有差异。