Windows 下基于 YAML 规则的指定域名分流:以哔哩哔哩为例

一、应用场景

在企业专线、校园网、多网卡或家庭多出口网络中,不同出口访问同一网站时,链路质量可能存在差异。

我的网络环境中,默认出口访问哔哩哔哩时延迟非常高(可能是公司为了防止员工摸鱼,我所在公司办公室网络对B站进行了限流策略),而另一个已授权的网络出口连接更加稳定。如果直接切换整个系统的出口(全局代理),其他原本正常的网站也会受到影响。

因此,本次配置的目标是(在智能代理模式中,指定让B站的连接走代理):

  • 哔哩哔哩相关域名使用指定策略组

  • 其他网站继续使用本地默认出口

  • 根据域名自动选择路径

  • 远程配置更新后仍然保留自定义规则

本文只讨论合法网络环境中的域名匹配和出口调度,不涉及网络服务获取、节点来源或访问受限制的网站。

二、配置原理

支持 YAML 规则的网络客户端通常会从上到下依次匹配规则。

本次配置逻辑如下:

复制代码
访问哔哩哔哩相关域名
        ↓
交给指定的网络策略组
        ↓
未匹配的其他流量
        ↓
使用 DIRECT 本地直连

核心规则由两部分组成:

复制代码
DOMAIN-SUFFIX:匹配指定域名及其子域名
MATCH,DIRECT:未被前面规则匹配的流量使用本地出口

因此,具体域名规则必须放在 MATCH,DIRECT 前面。

三、确认策略组名称

打开客户端的"策略"或"节点"页面,找到计划用于哔哩哔哩的策略组名称。

例如,我的策略组名称是:

复制代码
🔰 选择节点

实际配置时,名称必须完全一致,包括:

  • 中文文字

  • 英文字母大小写

  • 空格

  • Emoji 图标

不同配置中可能使用其他名称,例如:

复制代码
线路选择
自动选择
PROXY
Proxy

请以自己客户端中显示的真实名称为准。

四、打开配置文件预处理

在本文使用的客户端中,入口为:

复制代码
设置 → 配置 → 配置文件预处理 → 编辑

第一次打开时,编辑器中可能只有:

复制代码
parsers: # array

如果没有其他自定义内容,可以删除原内容并填写下面的完整配置。

如果原来已经存在其他 parsers 配置,不要再次添加第二个同名顶层字段,应将新的处理项合并到原有数组中。

五、添加域名分流规则

下面以策略组 🔰 选择节点 为例:

复制代码
parsers:
  - reg: "^https?://.*$"
    yaml:
      prepend-rules:
        - "DOMAIN-SUFFIX,bilibili.com,🔰 选择节点"
        - "DOMAIN-SUFFIX,bilibili.net,🔰 选择节点"
        - "DOMAIN-SUFFIX,bilibili.tv,🔰 选择节点"
        - "DOMAIN-SUFFIX,biliapi.com,🔰 选择节点"
        - "DOMAIN-SUFFIX,biliapi.net,🔰 选择节点"
        - "DOMAIN-SUFFIX,bilivideo.com,🔰 选择节点"
        - "DOMAIN-SUFFIX,bilivideo.net,🔰 选择节点"
        - "DOMAIN-SUFFIX,bilivideo.cn,🔰 选择节点"
        - "DOMAIN-SUFFIX,hdslb.com,🔰 选择节点"
        - "DOMAIN-SUFFIX,hdslb.net,🔰 选择节点"
        - "DOMAIN-SUFFIX,biliimg.com,🔰 选择节点"
        - "DOMAIN-SUFFIX,acgvideo.com,🔰 选择节点"
        - "DOMAIN-SUFFIX,acg.tv,🔰 选择节点"
        - "DOMAIN-SUFFIX,b23.tv,🔰 选择节点"
        - "MATCH,DIRECT"

如果实际策略组名称是 线路选择,需要把配置中所有:

复制代码
🔰 选择节点

替换为:

复制代码
线路选择

DIRECT 是本地直连动作,不需要替换。

六、保存并应用配置

完成编辑后执行以下操作:

  1. 点击编辑器右下角的保存按钮。

  2. 返回"配置"页面。

  3. 刷新一次当前远程配置。

  4. 确认配置处于选中状态。

  5. 将运行模式切换为"规则"。

  6. 在对应策略组中选择经过测试的稳定线路。

  7. 关闭并重新打开浏览器。

配置文件预处理通常会在远程配置刷新时执行,因此只保存编辑器内容、不刷新配置,规则可能不会立即生效。

七、验证分流结果

打开哔哩哔哩并播放视频,然后进入客户端的"连接"页面。

正确的结果应该是:

  • bilibili.combilivideo.comhdslb.com 等连接命中指定策略组

  • 其他普通网站显示为 DIRECT

  • 视频播放稳定

  • 访问其他网站时不受指定线路影响

如果页面在修改规则前已经打开,浏览器可能继续复用旧连接。可以关闭浏览器后重新打开,或清理客户端中的已有连接再测试。

八、MATCH,DIRECT 的作用

配置的最后一行是:

复制代码
- "MATCH,DIRECT"

它表示未匹配前面域名规则的流量全部使用本地出口。

加入这行后,本配置的行为非常明确:

复制代码
哔哩哔哩相关域名 → 指定策略组
其他域名 → 本地直连

如果你的原始配置中还有其他必要的业务分流规则,希望未匹配的流量继续执行原配置,可以删除 MATCH,DIRECT

删除后,哔哩哔哩规则仍然会被优先匹配,其余流量则继续向下匹配原有规则。

九、常见问题

1. 保存后规则没有生效

依次检查:

  • 是否刷新了当前配置

  • 是否启用了规则模式

  • 策略组名称是否完全一致

  • YAML 缩进是否正确

  • 浏览器是否重新启动

  • 当前启用的是否为刚刚更新的配置

2. 客户端提示找不到策略组

通常是策略组名称填写错误。

例如真实名称为:

复制代码
🔰 选择节点

规则中却写成:

复制代码
选择节点

缺少 Emoji 或空格后,客户端会将其识别为另一个名称。

3. 更新远程配置后规则是否会消失

本文通过配置文件预处理的 prepend-rules 添加规则。

每次刷新远程配置时,客户端会重新将这些规则插入规则列表前部,因此比直接修改下载后的配置文件更适合长期使用。

4. 有多个远程配置怎么办

示例中的:

复制代码
reg: "^https?://.*$"

会匹配所有通过 HTTP 或 HTTPS 获取的配置。

如果不同配置使用不同的策略组名称,应分别建立处理规则,避免把不存在的策略组写入其他配置。

发布文章或截图时,不要公开包含个人标识或访问凭据的远程配置地址。

十、安全与合规说明

本文适用于以下场景:

  • 企业内部多出口网络

  • 合法购置并获得授权的专线

  • 校园网或实验室网络调度

  • 家庭多网卡及本机路由优化

  • 国内公开网站的链路质量调整

请遵守所在地区法律法规、单位网络管理制度以及相关网站的服务条款。

十一、总结

本次配置通过域名规则实现了精确的出口调度:

复制代码
指定站点使用指定策略组
其他网站保持本地直连

相比手动切换整个系统的网络出口,这种方式对其他网站影响更小,也更适合需要长期运行的多出口网络环境。

相关推荐
武帝为此1 小时前
【TLS SSL 介绍】
网络·网络协议·ssl
liulilittle1 小时前
加密扩展记录 37B(含头口径):Go TLS 栈形态特征的适用域与配对勘误
网络·网络协议·计算机网络·网络安全·通信·tls·reality
奈斯先生Vector2 小时前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc
xierui1231232 小时前
Anthropic安全复盘:会操作电脑的 Agent 如何分阶段上岗
人工智能·网络安全·架构·系统架构
BlueAsia_Lab2 小时前
BQB 认证执行标准是什么?核心条款通俗解读
linux·运维·网络
黄金龙PLUS2 小时前
ASCON置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
小小、码农2 小时前
【网络】套接字(Socket)编程——TCP版
linux·服务器·网络·c++·网络协议·tcp/ip
OpsEye2 小时前
公有+私有化混合大模型架构,流量治理底层原理科普
网络·架构
云飞云共享云桌面2 小时前
10 人三维研发团队,如何利用单台图形服务器承载 SolidWorks 建模与仿真?
运维·服务器·网络·自动化·制造
小白学大数据2 小时前
API 调用错误处理实战:分层定位、有纪律地重试与可观测性设计
开发语言·网络·人工智能