設定 · Clash文件

Rules 規則

依比對順序說明 DIRECT、REJECT、節點與策略群組,並整理 DOMAIN、GEOIP、IP-CIDR、RULE-SET、SCRIPT、MATCH 等規則語法及 no-resolve 行為。

  • DOMAIN
  • DOMAIN-SUFFIX
  • IP-CIDR
  • RULE-SET
  • MATCH
設定

快速入手中,我們已介紹 Clash 規則比對的基礎知識。本章將說明最新版 Clash 提供的所有規則類型。

txt
# 类型,参数,策略(,no-resolve)
TYPE,ARGUMENT,POLICY(,no-resolve)

no-resolve 是選用選項,可略過規則的 DNS 解析。若要使用 GEOIPIP-CIDRIP-CIDR6SCRIPT 規則,又不希望立即將網域解析成 IP 位址,此選項便很實用。

策略

目前有四種策略類型,其中:

  • DIRECT:透過 interface-name 直接連線至目標(不查詢系統路由表)
  • REJECT:丟棄資料包
  • Proxy:將資料包路由到指定的代理伺服器
  • Proxy Group:將資料包路由到指定的策略群組

規則類型

以下部分介紹了每種規則類型及其使用方法:

DOMAIN 網域

DOMAIN,www.google.com,policy 會將 www.google.com 路由至 policy

DOMAIN-SUFFIX 網域後綴

DOMAIN-SUFFIX,youtube.com,policy 會將所有以 youtube.com 結尾的網域路由至 policy

在此情況下,www.youtube.comfoo.bar.youtube.com 都會路由至 policy

DOMAIN-KEYWORD 網域關鍵字

DOMAIN-KEYWORD,google,policy 會將所有包含關鍵字 google 的網域路由至 policy

在此情況下,www.google.comgoogleapis.com 都會路由至 policy

GEOIP IP 地理位置(國家程式碼)

GEOIP 規則會依據封包目標 IP 位址的國家程式碼進行路由。Clash 使用 MaxMind GeoLite2 資料庫實作此功能。

警告

使用此規則時,Clash 會先將網域解析成 IP 位址,再查詢該位址的國家代碼。若要略過 DNS 解析,請使用 no-resolve 選項。

GEOIP,CN,policy 會將目標 IP 位址位於中國的所有封包路由至 policy

IP-CIDR IPv4 位址段

IP-CIDR 規則會依據封包的目標 IPv4 位址進行路由。

警告

使用此規則時,Clash 會將網域解析成 IPv4 位址。若要略過 DNS 解析,請使用 no-resolve 選項。

IP-CIDR,127.0.0.0/8,DIRECT 會將目標 IP 位址為 127.0.0.0/8 的所有封包路由至 DIRECT

IP-CIDR6 IPv6 位址段

IP-CIDR6 規則會依據封包的目標 IPv6 位址進行路由。

警告

使用此規則時,Clash 會將網域解析成 IPv6 位址。若要略過 DNS 解析,請使用 no-resolve 選項。

IP-CIDR6,2620:0:2d0:200::7/32,policy 會將目標 IP 位址為 2620:0:2d0:200::7/32 的所有封包路由至 policy

SRC-IP-CIDR 源 IP 段位址

SRC-IP-CIDR 規則會依據封包的源 IPv4 位址進行路由。

SRC-IP-CIDR,192.168.1.201/32,DIRECT 會將來源 IP 位址為 192.168.1.201/32 的所有封包路由至 DIRECT

SRC-PORT 源連接埠

SRC-PORT 規則會依據封包的源連接埠進行路由。

SRC-PORT,80,policy 會將來源連接埠為 80 的所有封包路由至 policy

DST-PORT 目標連接埠

DST-PORT 規則會依據封包的目標連接埠進行路由。

DST-PORT,80,policy 會將目標連接埠為 80 的所有封包路由至 policy

PROCESS-NAME 源處理程式名

PROCESS-NAME 規則用於根據傳送資料包的處理程式名稱路由資料包。

警告

目前,僅支援 macOS、Linux、FreeBSD 和 Windows。

PROCESS-NAME,nc,DIRECT 會將來自程序 nc 的所有封包路由至 DIRECT

PROCESS-PATH 源處理程式路徑

PROCESS-PATH 規則用於根據傳送資料包的處理程式路徑路由資料包。

警告

目前,僅支援 macOS、Linux、FreeBSD 和 Windows。

PROCESS-PATH,/usr/local/bin/nc,DIRECT 會將路徑為 /usr/local/bin/nc 的程序所產生的所有封包路由至 DIRECT

IPSET IP 集

IPSET 規則會依據 IP 集合比對並路由封包。依IPSET 的官方網站所述:

IP 集是 Linux 核心中的一個框架,可以透過 ipset 程式進行管理。根據類型,IP 集可以儲存 IP 位址、網路、(TCP/UDP)連接埠號、MAC 位址、介面名稱或它們以某種方式的組合,以確保在集合中匹配項目時具有閃電般的速度。

因此,此功能僅能在 Linux 上運作,且必須安裝 ipset

警告

使用此規則時,Clash 會解析網域以取得 IP 位址,再檢查該位址是否位於 IP 集合中。若要略過 DNS 解析,請使用 no-resolve 選項。

IPSET,chnroute,policy 會將目標 IP 位址位於 IP 集合 chnroute 的所有封包路由至 policy

RULE-SET 規則集

資訊

此功能僅能在Premium 版本中使用。

RULE-SET 規則會依據Rule Providers 規則集的結果路由封包。使用此規則時,Clash 會從指定的 Rule Providers 規則集載入規則,再逐一比對封包。若封包符合其中一項規則,就會路由至指定策略;否則會略過此規則。

警告

使用 RULE-SET 時,若規則集類型為 IPCIDR,Clash 會解析網域以取得 IP 位址。若要略過 DNS 解析,請使用 no-resolve 選項。

RULE-SET,my-rule-provider,DIRECT 會從 my-rule-provider 載入所有規則

SCRIPT 指令碼

資訊

此功能僅能在Premium 版本中使用。

SCRIPT 規則用於根據指令碼的結果路由資料包。當 Clash 使用此規則時,它會執行指定的指令碼,然後將資料包路由到指令碼的輸出。

警告

使用 SCRIPT 時,Clash 會解析網域以取得 IP 位址。若要略過 DNS 解析,請使用 no-resolve 選項。

SCRIPT,script-path,DIRECT 會將封包路由至指令碼 script-path 的輸出。

MATCH 全匹配

MATCH 規則用於路由其餘封包。此規則是必需的,通常會放在最後。

MATCH,policy 會將其餘封包路由至 policy