-
Notifications
You must be signed in to change notification settings - Fork 0
Rule Whitelist
最后更新:2026-06-25 · 适用版本:v2.6.0+ · 内核:Mihomo
在代理配置的世界里,大多数人习惯于“黑名单模式”——即默认直连,遇到打不开的网站再手动加规则走代理。这种方式简单粗暴,但极易造成隐私泄露(DNS 漏网)和规则冗余。本文将带你彻底反转思维,构建一套基于“最小化授权”的白名单体系。核心逻辑是:默认不信任所有流量,仅允许明确指定的国内网站直连,其余流量全部走代理或严格审计。
黑名单模式基于“已知危险”的假设,而白名单基于“未知即危险”。在复杂的网络环境中,你无法穷举所有代理域名。
- 根治 DNS 泄漏:在黑名单模式下,如果一个国内域名未被规则命中,它可能会误走代理 DNS 解析,导致解析出的 IP 为海外结果。白名单迫使你明确“谁可以直连”,从而在 DNS 层实现强硬分流。
- 规则极简化:你不再需要维护几万行的“广告屏蔽规则”或“恶意网站列表”来决定是否代理。你只需要维护一份“中国互联网基础设施清单”。
- 对抗 IP 漂移:黑名单常依赖 IP 地理位置库(GeoIP)。但 IP 库更新滞后,容易导致误判。白名单依赖域名匹配,精准度更高。
核心准则:凡是没有被列入 DIRECT 白名单的流量,都必须经过代理出口。
为了实现精准白名单,我们不使用扁平的规则列表,而是采用三层阶梯分流。这种结构在 Mihomo 内核中执行效率极高,且逻辑清晰:
| 层级 | 策略组名称 | 承担职责 | 匹配逻辑 |
|---|---|---|---|
| Layer 1 | 🏠 国内白名单 |
纯直连 | 命中域名规则的流量直接放行,不经代理。 |
| Layer 2 | 🔒 漏网之鱼 |
代理出口 | 核心策略组。Layer 1 未命中的流量进入此处,必须走代理。 |
| Layer 3 | 🚀 最终代理 |
节点选择 | 承载所有代理流量,可以是手动选择或自动测速。 |
这种设计杜绝了因规则遗漏导致流量直接走 DIRECT 的风险。所有非白名单流量都会进入 🔒 漏网之鱼,从而被你精准控制。
图:三层白名单流量流向示意
我们不手写成千上万条域名,而是借用社区维护的高质量规则集。白名单的关键在于覆盖中国核心网络基础设施。
在 rule-providers 中,引入两个关键规则集:直连列表与局域网列表。
rule-providers:
# 局域网与私有地址
private:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
path: ./ruleset/private.yaml
interval: 86400
中国网络白名单(核心)
direct-list:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
社区规则集可能缺少特定内网域名,可通过本地规则集补充:
# 自定义本地白名单
custom-direct:
type: file
behavior: classical
path: ./ruleset/my-direct.yaml
interval: 86400本地 my-direct.yaml 文件内容示例:
payload:
- 'internal.company.com'
- '+.corp-vpn.net'白名单体系如果不配合 DNS 分流,就是空中楼阁。如果白名单外的域名去请求了国内 DNS,不仅会泄漏访问记录,还可能被 DNS 污染。请务必启用 Fake-IP 模式,并让 DNS 分流逻辑与规则分流逻辑保持同构。
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
白名单域名强制使用国内 DNS
nameserver-policy:
"rule-set:private,tld-cn,rule-set:direct-list":
- tls://223.5.5.5
- tls://119.29.29.29
其他所有域名走加密代理 DNS
nameserver:
- tls://dns.quad9.net
- https://dns.cloudflare.com/dns-query
策略联动解读:当浏览器请求 www.google.com 时,它不在 direct-list 中,因此被 nameserver-policy 排除,Mihomo 将使用代理节点去 dns.cloudflare.com 解析,确保返回真实 IP 且不被污染。更深层攻防细节见 DNS 防泄漏终极方案。
以下模板结合了三层架构与 DNS 白名单分流,实现“无规则不直连”的严格标准。
# ============================================
# 白名单体系配置模板
# ============================================
proxy-groups:
-
name: 🏠 国内白名单
type: select
proxies: [DIRECT]
-
name: 🔒 漏网之鱼
type: select
proxies: [🚀 代理出口, DIRECT]
-
name: 🚀 代理出口
type: select
use: [provider-main]
proxies: [♻️ 自动测速]
rule-providers:
private:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
path: ./ruleset/private.yaml
interval: 86400
direct-list:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400
rules:
- RULE-SET,private,🏠 国内白名单
- RULE-SET,direct-list,🏠 国内白名单
- DOMAIN-SUFFIX,your-intranet.com,🏠 国内白名单
- MATCH,🔒 漏网之鱼
如果你使用了 TUN 模式进行全局代理,白名单的价值会更加凸显。我们可以让非白名单的 IP 流量直接被系统丢弃,而不是走代理,从而实现真正的“物理断网级”隐私保护。结合 TUN 深度优化指南 效果更佳。
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true进阶玩法:结合 AI 网站智能分流,可以将 ChatGPT 等 AI 流量加入到“漏网之鱼”层之上的特定策略组,实现“白名单优先,AI 优先”的双重高阶分流。
掌握白名单体系后,可尝试以下深度调优:
- 性能压榨:当规则集达到数万条时,利用 Mihomo 内核调优 中的 Sniffer 功能,避免不必要的域名匹配开销。
- 保持更新:定期查看 Releases 页面,让 Mihomo 内核与社区规则集始终保持最新。
- 回溯基础:如果对代理基础仍有疑问,可回顾 安装教程 中的核心概念。
⬅️ 返回配置教程 · 返回 Wiki 首页
本教程为 clash-verge2026/clash-verge-rev-omni-guide 官方 Wiki 的一部分,欢迎提交 Pull Request 分享你的白名单方案。