本文目錄
遠端規則集是否安全,先看它能改變什麼
rule-providers 本身只是規則檔案,不能直接讀取帳號密碼;但它可以改變一個網域走直連、代理還是拒絕。來源不明、自動更新又沒有還原的規則,風險就在於敏感請求可能被悄悄送到錯誤出口。
Rule Provider 參與決定網域走代理、直連還是拒絕。一條範圍過寬的 DOMAIN-SUFFIX 規則放在前面,就可能讓銀行、公司背景或內部網路登入突然經過陌生節點。風險來自路由變化,不需要規則檔案擁有讀取密碼的權限。
連線記錄裡出現意外策略時,先切回上一份快取並斷開舊連線,再比較規則檔案。把異常時間、Provider 名稱、命中項目和最終出口放在一起,才能區分維護者誤收網域、本機順序錯誤或遠端內容被替換。
先追到儲存庫與提交,再複製 raw 位址
新增前必須能回答
- 這個 raw 檔案屬於哪個公開儲存庫和維護者
- 儲存庫提交記錄是否與規則主題一致
- 下載內容是 YAML/MRS 文字,而不是登入頁、指令碼或短鏈跳轉
- 目前設定能否保留上一次下載的本機檔案
- 出現錯誤時是否知道怎樣停用這一個 Provider
分支位址會隨每次提交變化,適合已經信任且需要更新的規則;提交哈希位址內容固定,適合銀行、公司直連等變化少、影響大的規則。兩者可以並存,不必把所有來源都設成每小時更新。
讓 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 看它改了什麼
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 更新之後,先恢復上一份規則並斷開舊連線。路由恢復以後,再判斷敏感請求是否真的經過了錯誤出口。
異常處置
停止該 Provider 更新
切回上一份快取或暫時移除 RULE-SET 引用。
重載設定並斷開連線
新請求應恢復原策略,舊會話不會自動改出口。
對照儲存庫變更
確認是誤收項目、位址遷移、格式變化還是來源無法驗證。
檢查敏感帳號
如果登入請求曾經過意外出口,查看登入記錄並按風險更換認證資訊。
改用固定提交或替代來源
無法解釋的遠端檔案不再恢復自動更新。
