建議在繼續閱讀本節前,先閱讀介紹。初步瞭解 Clash 的運作方式後,即可開始編寫自己的設定。
設定檔
主要設定檔名為 config.yaml。預設情況下,Clash 會從 $HOME/.config/clash 目錄讀取設定檔;若該目錄不存在,Clash 會在此位置產生一份最小設定檔。
若要將設定檔放在其他位置,例如 /etc/clash,可使用命令列選項 -d 指定設定目錄:
shell
clash -d . # current directory
clash -d /etc/clash或者,可使用選項 -f 指定設定檔:
shell
clash -f ./config.yaml
clash -f /etc/clash/config.yaml特殊語法
Clash 設定檔中有一些特殊的語法,您可能需要瞭解:
IPv6 位址
IPv6 位址應以方括號([])括住,例如:
txt
[aaaa::a8aa:ff:fe09:57d8]DNS 通配符網域匹配
某些情況下需要比對萬用字元網域。例如設定 Clash DNS 時,可能需要比對 localdomain 的所有子網域。
Clash 在 DNS 設定中提供了匹配不同級別通配符網域的支援,其語法如下:
提示
包含這些字元的網域都應以單引號(')括住,例如 '*.google.com'。固定網域的優先順序高於萬用字元網域(foo.example.com > *.example.com > .example.com)。
使用星號(*)比對單層萬用字元子網域。
| 表達式 | 匹配 | 不匹配 |
|---|---|---|
*.google.com | www.google.com | google.com |
*.bar.google.com | foo.bar.google.com | bar.google.com |
*.*.google.com | thoughtful.sandbox.google.com | one.two.three.google.com |
使用句點(.)比對多層萬用字元子網域。
| 表達式 | 匹配 | 不匹配 |
|---|---|---|
.google.com | www.google.com | google.com |
.google.com | thoughtful.sandbox.google.com | google.com |
.google.com | one.two.three.google.com | google.com |
使用加號(+)比對多層萬用字元子網域。
+ 萬用字元的作用方式類似 DOMAIN-SUFFIX,可一次快速比對多個層級。
| 表達式 | 匹配 |
|---|---|
+.google.com | google.com |
+.google.com | www.google.com |
+.google.com | thoughtful.sandbox.google.com |
+.google.com | one.two.three.google.com |
