在快速入手中,我們已介紹 Clash 規則比對的基礎知識。本章將說明最新版 Clash 提供的所有規則類型。
# 类型,参数,策略(,no-resolve)
TYPE,ARGUMENT,POLICY(,no-resolve)no-resolve 是選用選項,可略過規則的 DNS 解析。若要使用 GEOIP、IP-CIDR、IP-CIDR6 或 SCRIPT 規則,又不希望立即將網域解析成 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.com 與 foo.bar.youtube.com 都會路由至 policy。
DOMAIN-KEYWORD 網域關鍵字
DOMAIN-KEYWORD,google,policy 會將所有包含關鍵字 google 的網域路由至 policy。
在此情況下,www.google.com 或 googleapis.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。
