編輯 Parsers 欄位:
填入以下配置(YAML 語法):
parsers:
- url: https://example.com/example.yaml
code: |
module.exports.parse = (raw, { yaml }) => {
const { rules = [], ...rest } = yaml.parse(raw) || {}
const removeList = [
'DOMAIN-SUFFIX,notion.so,KELECLOUD',
'MATCH,KELECLOUD'
]
const addList = [
'MATCH,DIRECT'
]
const newRules = rules.filter(x => !removeList.includes(x))
newRules.push(...addList)
return yaml.stringify({ ...rest, rules: newRules })
}
然後對上述配置做出以下修改:
- 將
url
配置的值更改為自己的訂閱地址。 - 在
removeList
的陣列中填入要移除的規則,在addList
陣列中填入要添加的規則,規則語法參閱:規則編輯 | Clash for Windows (lbyczf.com),常見的匹配規則有:
假設要代理的域名為 "baidubce.com":- DOMAIN-SUFFIX:域名後綴匹配,例如:將會代理 "baidubce.com" 和 *.baidubce.com 域名下所有請求,即域名後綴以 a.com 結尾的所有域名。
- DOMAIN:域名匹配,例如:僅代理限定的 "baidubce.com" 域名下的所有請求。
例如: - "DOMAIN,baidubce.com,DIRECT" 表示代理限定域名 "a.com" 的請求,符合規則的請求將走 DIRECT 策略,也就是直連,不經過代理,"DIRECT"(直連)、"REJECT"(拒絕) 是 Clash for Windows 內建的策略 (policy),其餘均為自定義 policy,不同的訂閱,機場主配置的 "proxy-groups" 名稱也不同,根據自己訂閱中的 "proxy-groups" 配置為準,"proxy-groups" 會將 "proxies" 欄位的值分組。
- "DOMAIN-SUFFIX,baidubce.com,KELECLOUD" 表示代理域名 "baidubce.com" 和 "*.baidubce.com" 下的請求,符合規則的請求走 "KELECLOUD" 策略(機場主自定義策略),該策略值取自訂閱內容中的 "proxy-groups" 欄位。
- 更新訂閱,因為只有在每次更新訂閱後,才會執行 parsers 中配置的 js 代碼規則。
配置後,可以通過在百度中搜索 ip 關鍵字來測試,規則是否符合期望,百度的 IP 查詢模塊,調用的介面域名後綴就是上面例子中的 "baidubce.com":