一、应用场景
在企业专线、校园网、多网卡或家庭多出口网络中,不同出口访问同一网站时,链路质量可能存在差异。
我的网络环境中,默认出口访问哔哩哔哩时延迟非常高(可能是公司为了防止员工摸鱼,我所在公司办公室网络对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 是本地直连动作,不需要替换。
六、保存并应用配置
完成编辑后执行以下操作:
-
点击编辑器右下角的保存按钮。
-
返回"配置"页面。
-
刷新一次当前远程配置。
-
确认配置处于选中状态。
-
将运行模式切换为"规则"。
-
在对应策略组中选择经过测试的稳定线路。
-
关闭并重新打开浏览器。
配置文件预处理通常会在远程配置刷新时执行,因此只保存编辑器内容、不刷新配置,规则可能不会立即生效。
七、验证分流结果
打开哔哩哔哩并播放视频,然后进入客户端的"连接"页面。
正确的结果应该是:
-
bilibili.com、bilivideo.com、hdslb.com等连接命中指定策略组 -
其他普通网站显示为
DIRECT -
视频播放稳定
-
访问其他网站时不受指定线路影响
如果页面在修改规则前已经打开,浏览器可能继续复用旧连接。可以关闭浏览器后重新打开,或清理客户端中的已有连接再测试。
八、MATCH,DIRECT 的作用
配置的最后一行是:
- "MATCH,DIRECT"
它表示未匹配前面域名规则的流量全部使用本地出口。
加入这行后,本配置的行为非常明确:
哔哩哔哩相关域名 → 指定策略组
其他域名 → 本地直连
如果你的原始配置中还有其他必要的业务分流规则,希望未匹配的流量继续执行原配置,可以删除 MATCH,DIRECT。
删除后,哔哩哔哩规则仍然会被优先匹配,其余流量则继续向下匹配原有规则。
九、常见问题
1. 保存后规则没有生效
依次检查:
-
是否刷新了当前配置
-
是否启用了规则模式
-
策略组名称是否完全一致
-
YAML 缩进是否正确
-
浏览器是否重新启动
-
当前启用的是否为刚刚更新的配置
2. 客户端提示找不到策略组
通常是策略组名称填写错误。
例如真实名称为:
🔰 选择节点
规则中却写成:
选择节点
缺少 Emoji 或空格后,客户端会将其识别为另一个名称。
3. 更新远程配置后规则是否会消失
本文通过配置文件预处理的 prepend-rules 添加规则。
每次刷新远程配置时,客户端会重新将这些规则插入规则列表前部,因此比直接修改下载后的配置文件更适合长期使用。
4. 有多个远程配置怎么办
示例中的:
reg: "^https?://.*$"
会匹配所有通过 HTTP 或 HTTPS 获取的配置。
如果不同配置使用不同的策略组名称,应分别建立处理规则,避免把不存在的策略组写入其他配置。
发布文章或截图时,不要公开包含个人标识或访问凭据的远程配置地址。
十、安全与合规说明
本文适用于以下场景:
-
企业内部多出口网络
-
合法购置并获得授权的专线
-
校园网或实验室网络调度
-
家庭多网卡及本机路由优化
-
国内公开网站的链路质量调整
请遵守所在地区法律法规、单位网络管理制度以及相关网站的服务条款。
十一、总结
本次配置通过域名规则实现了精确的出口调度:
指定站点使用指定策略组
其他网站保持本地直连
相比手动切换整个系统的网络出口,这种方式对其他网站影响更小,也更适合需要长期运行的多出口网络环境。