路由規則引擎

MintFlow 依 DNS 名稱與目的 IP 選擇流量出口。iOS 的 App 分流比對 App 使用的網域/IP 範圍,不會用 bundle ID 辨識來源 App。簡易模式選擇單一一般出口,已儲存的自訂規則維持停用。

規則模式包含兩個相連的決定:如何回答 DNS 查詢,以及封包如何到達解析後的位址。一套由上往下的排序無法同時描述兩者。

DNS 優先順序:由高至低

只有已生效且啟用的設定參與。編譯時因沒有 Pro 權限而排除的項目不具有優先權。

順序來源比對及結果
1使用者靜態 DNS 記錄精確比對 [dns-hosts] 主機名稱;本機回答,不建立 DNS 所屬的流量路由。
2Tailscale 衍生 DNS先精確衍生名稱,再最具體的已啟用衍生子樹,最後處理使用中 tailnet 區域的權威否定回應;名稱留在本機。
3使用者 DOMAIN-SET 路由最具體的後綴優先,與列的位置無關;包含網域本身及子網域。
4使用者 DOMAIN-KEYWORD 路由依儲存的關鍵字順序,採用第一個符合的字面子字串。
5內建廣告過濾前述皆未符合時才查詢選定清單;阻擋時回傳 NODATA,不向上游查詢。
6DNS-FALLBACK依所選動作/出口解析其餘名稱,不視為廣告過濾例外。

網域集合或關鍵字符合轉送動作(DIRECT、L3VPN、L4PROXY)會略過廣告過濾;DROP 或 REJECT 保留原有 DNS 拒絕行為。優先權更高的靜態答案也優先於網域 Reject。DNS 規則無法取代 IP 防火牆。

使用中 Tailscale 區域內的未知名稱會得到本機否定回應,不會送往公共 DNS。靜態記錄與 Tailscale 名稱只在權限及 DNS 模式允許時啟用。

網域集合、關鍵字與衝突

集合中的 example.com 比對自身與 a.example.com,但不比對 badexample.com。更具體的 help.example.com 優先於 example.com,即使範圍較廣的規則使用 Reject 並排在前面。

關鍵字比對標準化 DNS 查詢名稱中的字面子字串,不是 URL、路徑、SNI 或 HTTP Host。ads 可符合 ads.example.com 與 downloads.example.com,不受標籤邊界限制。比對會統一大小寫並移除結尾句點;國際化名稱採用 ASCII 形式。關鍵字支援 ASCII 字母、數字、句點、連字號及底線,不支援萬用字元或正規表示式。上限為 256 條關鍵字路由,付費出口限制仍然適用。

網域集合一律優先於關鍵字。關鍵字內部依儲存順序決定,不會自動選最長字詞或讓 Reject 優先。同一標準化後綴或關鍵字若有衝突的動作/目標,會產生編譯錯誤,無法靠調整順序處理。

範例

[domain-sets]
blocked=example.com
allowed=help.example.com

[routing]
DOMAIN-KEYWORD,help,REJECT
DOMAIN-SET,blocked,REJECT
DOMAIN-SET,allowed,DIRECT
DOMAIN-KEYWORD,ads,REJECT
CIDR,192.168.40.0/24,DIRECT
DNS-FALLBACK,DIRECT
DEFAULT,DIRECT
  • help.example.com 使用直接連線 DNS:較具體的集合優先於父網域 Reject 與前面的關鍵字,也會略過廣告過濾。
  • shop.example.com 符合較廣的集合,因此遭拒絕。
  • ads.other.test 符合關鍵字,因此遭拒絕。
  • 其他名稱仍先經廣告過濾,才使用直接連線 DNS 預設處理。
  • 若為其中任一名稱加入精確靜態記錄,該記錄優先於上述全部網域規則。

範圍寬廣的轉送集合或關鍵字可能讓許多網域略過過濾。處理誤擋時,優先加入範圍較小的網域集合。可用 DNS 日誌的規則類型篩選與廣告過濾檢查器查看符合來源。

IP 路由與封包轉送

CIDR 及 CIDR-SET 會成為 IP 路由。符合時最長前綴優先:192.168.40.10/32 比 192.168.40.0/24 具體,後者又比 DEFAULT 具體。把 CIDR 列移到網域列前,不會改變 DNS 優先順序。

DNS 決定可為解析後的 IPv4 目的地附加 VPN/代理伺服器或阻擋原則。直接連線 DNS 結果仍經過一般 IP 路由,所以明確的 CIDR 規則依然可為該位址選擇 VPN/代理伺服器。使用者靜態記錄同樣讓 IP 規則決定封包路徑。DNS-FALLBACK 選擇未符合名稱的處理方式,DEFAULT 則是最終 IP 路由;請分別設定。

網域分流仰賴查詢進入 MintFlow DNS。共用 IP、快取位址、App 自帶加密 DNS 及直接使用 IP 的連線,都會限制網域規則能區分的範圍。調查非預期出口時,請搭配流量擷取及 DNS 日誌檢查。

保留規則與簡易模式

VPN-DNS-SERVER-DOMAINS,L3VPN|L4PROXY,target 選擇使用主機名稱的加密 VPN DNS 啟動路徑。這是 DNS 基礎設施的保留規則,不是使用者網域允許清單。

簡易模式不啟用已儲存的靜態記錄、Tailscale 衍生 DNS、網域集合、關鍵字及自訂 CIDR 規則。DNS 廣告阻擋仍先於所選出口執行。僅支援 TCP 的代理伺服器無法傳送任意 UDP;簡易模式會捨棄不支援的 UDP,不會自行改走直接連線。

儲存設定檔變更、檢查編譯診斷,並依提示重新啟動 VPN。單純的過濾變更與明確的執行階段控制可能即時套用。路由語法 · 內部 DNS

閱讀本頁 Markdown