域名规则是使用频率最高的规则族。三种写法看似相近,匹配范围差别很大,选错会导致规则不生效或大面积误伤。

三者对比

以目标 www.google.com 为例:

规则是否命中说明
DOMAIN,www.google.com命中仅精确匹配这一个域名,mail.google.com 不命中。
DOMAIN,google.com不命中DOMAIN 不含子域。
DOMAIN-SUFFIX,google.com命中匹配 google.com 本身及全部子域,最常用。
DOMAIN-KEYWORD,google命中域名任意位置包含“google”即命中——包括 googleusercontent.comfake-google.evil.com

如何选择

  • 目标是一整个站点:用 DOMAIN-SUFFIX,这是 90% 场景的正确答案。
  • 只想控制某一个子域(如只让 API 子域走代理):用 DOMAIN
  • DOMAIN-KEYWORD 用于域名多变但含固定关键词的服务(如 CDN 域名家族),务必警惕误伤DOMAIN-KEYWORD,ad 这类短关键词会命中 shadow、download 等无辜域名。

域名规则为什么优先写在 IP 规则前面

域名规则在 DNS 解析之前就能完成匹配,不需要解析 IP;IP 类规则(IP-CIDR、GEOIP)则必须先解析出 IP。把域名规则放前面可以减少解析开销,在 fake-ip 模式下还能避免“为了匹配规则而被迫真解析”的泄漏问题(配合 no-resolve,见 IP 规则详解)。

提示:子域名走不同出口是合法需求,例如公司自建服务:DOMAIN,vpn.company.com,DIRECT 放在 DOMAIN-SUFFIX,company.com,PROXY 之前即可实现“唯独这个子域直连”。