本文目錄
一份自動更新的遠端規則,可能在你沒有改設定時改變某個網站的去向。要注意的不只是下載是否成功,還包括由誰維護、更新加入哪些網域,以及異常時能否還原上一份檔案。重要帳號的請求走錯出口時,連線紀錄和規則差異比檔案看起來整齊更有參考價值。
規則檔案不會讀取密碼,但能改變敏感請求的出口
核對 Rule Provider(rule-providers)的內容與設定中的規則順序,尤其是前面的 DOMAIN-SUFFIX 規則。規則集合無法直接讀取帳號密碼,但會參與決定直連、代理或拒絕;涵蓋範圍太廣時,銀行、公司管理頁面或內部網路登入可能經過陌生節點。來源不明、自動更新且無法還原時,應核對這些變化。
連線記錄出現意外策略時,若有上一份可信規則備份,先還原該檔案;沒有備份就暫時移除這個 Provider 的規則引用。重新載入設定並斷開舊連線,再把異常時間、Provider 名稱、命中項目和最終出口與儲存庫變更比較,區分誤收網域、本機順序錯誤或遠端內容被替換。
raw 位址對應哪個儲存庫、維護者與提交?
新增前必須能回答
- 這個 raw 檔案屬於哪個公開儲存庫和維護者
- 儲存庫提交記錄是否與規則主題一致
- 下載內容是預期的 YAML 文字或 MRS 二進位規則檔案,而不是登入頁、指令碼或短鏈跳轉
- 目前設定能否保留上一次下載的本機檔案
- 出現錯誤時是否知道怎樣停用這一個 Provider
分支位址會隨每次提交變化,適合已經信任且需要更新的規則;提交哈希位址內容固定,適合銀行、公司直連等變化少、影響大的規則。兩者可以並存,不必把所有來源都設成每小時更新。
rule-providers 的 URL、格式與快取路徑怎樣設定?
rule-providers:
research:
type: http
behavior: domain
format: yaml
url: https://raw.githubusercontent.com/OWNER/REPO/COMMIT/rules.yaml
path: ./ruleset/research.yaml
interval: 86400
rules:
# REPLACE_WITH_POLICY 必须换成当前配置中已经存在的策略组
- RULE-SET,research,REPLACE_WITH_POLICY
- MATCH,DIRECTOWNER、REPO、COMMIT 和 REPLACE_WITH_POLICY 都是佔位內容,複製後不能直接啟用。把它們換成已經核對過的儲存庫、固定提交和現有策略群組。
behavior、format 必須與遠端內容一致;path 應設為核心允許且可寫入的位置。把規則引用放在 MATCH 之前,也要避開公司網段、區域網路和必須直連的高優先規則。
更新成功後看規則數量與修改時間,再挑幾條熟悉網域檢查命中。只看到頁面提示「更新完成」,還不能證明目前執行設定真的引用了新檔案。
重要規則更新前,用 diff 看它改了什麼
在獨立的審核目錄準備 rules.last.yaml,內容必須是上一份已核對可信的規則備份;rules.new.yaml 是這次待審核的下載檔案。檔名或位置不同就改成實際路徑,不把候選檔案直接寫入正在使用的 Provider 快取。
下方命令分步執行:把 RULE_URL 換成可信儲存庫的實際固定提交網址,下載失敗就停止,不對可能殘留的舊檔案繼續計算雜湊或比較。沒有上一份可信備份時,只能審讀候選內容,不能把缺少 diff 結果當作沒有變更。
RULE_URL='https://raw.githubusercontent.com/OWNER/REPO/COMMIT/rules.yaml'
curl -L --fail --show-error -o rules.new.yaml "$RULE_URL"
sha256sum rules.new.yaml
diff -u rules.last.yaml rules.new.yaml | lessmacOS 可以用 shasum -a 256 代替 sha256sum。哈希只能證明兩次檔案是否相同,不能證明內容本身可信;真正需要看的仍是新增與刪除項目、儲存庫提交說明和規則主題是否一致。
檔案從幾千行突然變成幾十行、開頭出現 <!doctype html>、或影片規則一次加入大量帳號與銀行網域,都應暫停自動更新。
更新後走錯策略,還原可信規則並斷開舊連線
異常處置
停止該 Provider 更新
有上一份可信規則備份時還原該檔案;沒有備份就暫時移除 RULE-SET 引用。
重載設定並斷開連線
新請求應恢復原策略,舊會話不會自動改出口。
對照儲存庫變更
確認是誤收項目、位址遷移、格式變化還是來源無法驗證。
檢查敏感帳號
如果登入請求曾經過意外出口,查看登入記錄並按風險更換認證資訊。
改用固定提交或替代來源
無法解釋的遠端檔案不再恢復自動更新。
