域名規則是使用頻率最高的規則族。三種寫法看似相近,匹配範圍差別很大,選錯會導致規則不生效或大面積誤傷。
三者對比
以目標 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.com、fake-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 之前即可實現「唯獨這個子域直連」。