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 获取的配置。

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

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

十、安全与合规说明

本文适用于以下场景:

  • 企业内部多出口网络

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

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

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

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

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

十一、总结

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

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

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

相关推荐
Q741_1472 小时前
TcpDump 使用笔记
网络·c++·笔记·测试工具·tcpdump
雾时之林2 小时前
Linux---计算机网络常见面试题
linux·运维·计算机网络
探物 AI3 小时前
yolo检测中的激活函数19:ReLU激活函数 (Rectified Linear Unit)
网络·人工智能·深度学习·yolo
buhuizhiyuci3 小时前
【Linux 网络篇】数据的 “循环系统“:协议认识与网络传输的流程
linux·运维·服务器·网络·vscode
是未才13 小时前
从输入 URL 到页面返回:DNS、路由、TLS 与 HTTP 完整链路
java·后端·计算机网络
2401_8653825014 小时前
密评与等保的关系:不是替代,而是互补
网络·信息化造价
白狐_79816 小时前
408计算机网络第3章:PPP协议——帧格式、LCP/NCP、状态机与真题精讲
网络·计算机网络·智能路由器
MIXLLRED16 小时前
解决——Ubuntu远程桌面指令更换网络
linux·网络·ubuntu
zt1985q18 小时前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·网络协议·开源