訂閱每次更新都會原樣覆蓋整份設定檔,你手動加的 DNS、TUN 等設定會被沖掉。Mixin 就是為此設計的:把你的自定義片段儲存在用戶端本地,在每份設定生效之前自動合併進去,訂閱怎麼更新都不受影響。
開啟方式
- Settings → Profile Mixin,選擇 YAML 模式,點選 Edit 編輯內容。
- 編輯儲存後,在 General 頁面開啟 Mixin 開關(很多人漏掉這一步)。
- 重新啟用目前設定(Profiles 頁面點一下目前卡片)使合併生效。
YAML 模式示例
mixin:
# 統一 DNS,啟用 fake-ip
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://1.1.1.1/dns-query
# TUN 模式所需設定
tun:
enable: true
stack: gvisor
dns-hijack:
- 198.18.0.2:53
# 固定混合連接埠
mixed-port: 7890
Mixin 中出現的頂級欄位會整段替換設定檔中的同名欄位(物件按鍵合併、以 Mixin 為準),因此寫哪段就會覆蓋哪段,不寫的部分保持訂閱原樣。
JavaScript 模式(進階)
YAML 模式只能整段覆蓋;JavaScript 模式則可以程式設計式修改設定,例如「在現有 rules 最前面插入幾條規則」:
module.exports.parse = ({ content }) => {
content.rules = [
"DOMAIN-SUFFIX,example.com,DIRECT",
...content.rules,
];
return content;
};
如果只想對某一個訂閱做處理而不是全域性生效,應使用 Parsers,兩者語法相近但作用範圍不同。
排錯提示:Mixin 內容有語法錯誤時設定會載入失敗,Logs 頁面會有 YAML 解析錯誤。改動 Mixin 後建議立刻看一眼日誌確認無誤。