路由、節點與規則
策略管理群組選擇與成員。節點管理來源、訂閱與探測。規則編輯路由與 DNS 規則,並用追蹤模擬檢查路由。
本頁介紹標準版;doona lite 請參閱 doona lite。
策略群組
開啟「路由」分區中的「策略」。每個群組顯示一張卡片。在清單上方選擇「全部」「手動選擇」或「自動選擇」可依選擇方式篩選,各選項顯示群組數。篩選條件保存在 URL 中;連結指向被篩選隱藏的群組時,頁面會恢復顯示全部群組。
檢視群組卡片
- 卡片標題列顯示群組名稱、策略,以及可用、無法使用與未測試的成員數。
- 鉛筆按鈕開啟「編輯群組」;群組為唯讀時,使用「更多操作 > 檢視組態」。「檢測設定」依後端能力顯示「檢測網址」「檢測間隔」「容忍差值」與「閒置逾時」。
- 下方的成員網格顯示每個成員的狀態或延遲。成員超過 12 個時,網格上方會出現「篩選節點」「地區」「排序」(「依延遲」或「依名稱」)與「只顯示可用節點」。
各群組的成員卡片使用相同欄寬;成員較少時保留列末空位。長名稱會換行。成員本身為群組時,顯示父群組對它的延遲取樣;沒有取樣時,顯示其目前選擇最終指向的節點延遲。
自動群組預設收合,顯示名稱、目前成員與健康狀態。點選摘要可展開卡片。已固定或透過連結開啟的群組會自動展開。在收合卡片上選擇「恢復自動選擇」會解除 TCP 與 UDP 的固定。停用的操作透過說明控制項顯示原因,觸控螢幕也可查看。
選擇成員
- 策略為「手動選擇」的群組,在網格中點選成員後立即切換至該成員。
- 自動策略的群組若後端允許手動固定,點選成員即固定該成員。狀態由「自動」變為「已手動固定」,提示訊息說明自動策略已暫停。
- 如需解除固定,開啟卡片的「更多操作」,選擇「恢復自動選擇」。此項目只在群組已固定時出現。提示訊息會列出自動策略目前選出的成員。
- 卡片顯示「兩者」「TCP」「UDP」選擇器時,先選擇網路。選擇「兩者」時,選擇成員、固定成員或「恢復自動選擇」同時作用於 TCP 與 UDP;選擇「TCP」或「UDP」時只作用於該網路。
- 「編輯群組」或「檢視組態」中的「切換時中斷現有連線」決定切換成員時是否中斷現有連線。在「手動選擇」策略的群組中選擇成員後,提示訊息會說明現有連線已保留或已中斷。
測試、編輯與檢測設定
「測試全部」「以選項探測…」與「檢測設定」位於卡片的「更多操作」中;鉛筆按鈕開啟「編輯群組」。
-
「測試全部」使用「設定 > 延遲探測」測量群組。提示列出可用、無法使用與未知數量,以及選擇是否變更。「以選項探測…」提供支援的 HTTP、TCP 連線、DNS (TCP)、DNS (UDP) 或 DNS (TCP + UDP),以及 IP 位址族、「冷探測」與「包含巢狀群組中的節點」。初始值取自瀏覽器的探測偏好。不支援的方法改用可用方法,提示會說明變更。
Trojan、AnyTLS 與 VLESS 的 UDP 支援取決於節點組態時,仍保留 DNS UDP 選項。後端拒絕執行時會顯示原因,不會靜默改用 HTTP。測量逾時、取消、缺少可用位址或本機拒絕時,探測結果可能為「結果不明」,不代表節點無法使用。
-
「編輯群組」修改「選擇方式」、成員與篩選條件。後端允許時,還顯示「預設成員」與「最終出站」。「套用」驗證、寫入定義群組的主檔案或 include 檔案並重載。其他組態變更導致儲存被拒絕時,重試只寫入對話框中修改過的欄位。欄位衝突或群組被重新命名時須重新開啟編輯器。群組在其他位置被移除時,編輯器保持開啟,並說明變更未儲存。
-
選擇「檢測設定」可修改「檢測網址」「檢測間隔」「容忍差值」與「閒置逾時」。對話框只顯示後端列為可寫入的欄位。欄位留空表示使用全域值或預設值,然後點選「套用」。對話框開啟後若後端已變更某個值,該欄位會顯示說明;再次套用會以對話框中的值取代。
「預設成員」是群組的初始成員,僅在「選擇方式」為手動時顯示;改選自動策略會保留檔案中的 default。「最終出站」在沒有合格成員時使用。兩個選擇器都支援搜尋。「預設成員」列出群組的直接成員;「最終出站」提供 direct、block、群組與節點,並排除會形成循環的群組。選擇「無」會移除對應的 default 或 final 設定。點選卡片的鉛筆按鈕開啟「編輯群組」,可查看這些欄位。
在「編輯群組」中,「切換時中斷現有連線」暫存至點選「套用」才寫入。在「檢視組態」中,變更此開關會立即寫入。
編排群組成員
-
點選卡片的「編輯群組」或卡片上方的「新增群組」,開啟共用群組編輯器。
-
選擇地區、訂閱、單一節點或巢狀群組。地區選項預設收合,點選「地區」即可展開,已選地區標籤仍會顯示。對話框預覽「符合的節點」。
-
成員的移除按鈕可撤銷該項包含關係。仍符合其他篩選條件的節點會保留,須修改對應條件才能移除。
-
「新增篩選」支援名稱與
subtag比對。「新增 OR 比對」連接替代條件;同一篩選中的多個條件須同時符合。自訂運算式仍可作為文字編輯。 -
在「新增群組」填寫「群組名稱」,選擇「選擇方式」與成員。空篩選包含所有節點,須明確選擇所需成員。
「群組」與「節點」選擇器固定搜尋框,僅捲動選項清單。可搜尋的選單與其他選擇器也採用此版面;地區核取方塊隨對話框內文捲動。
-
「套用」驗證、寫入並重載;「取消」放棄對話框草稿。
節點與訂閱
開啟「路由」分區中的「節點」。「節點」分頁列出節點來源,包括訂閱、檔案與組態內的節點。後端提供節點清單時才會顯示「延遲」分頁。
沒有訂閱或代理節點時,「節點」提供「新增訂閱」與「貼上節點連結」。「活動」的「開始使用」卡片中的「新增訂閱」會直接開啟訂閱對話框。
來源與節點
- 「節點來源」為每個來源顯示一張卡片,列出種類、狀態、節點數量、更新時間、到期時間與用量。後端回報流量額度時,用量下方顯示配額計量器。更新、編輯與移除控制項依後端能力顯示在頁面說明旁及卡片上。
- 點選卡片,或用方向鍵在卡片間移動並選擇來源。下方的節點表格列出該來源的節點。「搜尋節點」涵蓋所有來源;「群組」與「協定」可篩選表格。
後端回報節點設定的傳輸方式時,「協定」會在協定名稱後的括號中顯示該傳輸方式。欄位缺省或為 null 時,顯示保持不變。「協定」篩選器仍按協定比對。
到期時間顯示到分鐘,工具提示包含秒。日期與時間遵循日期格式與時間格式,預設使用 24 小時制。

測試按鈕使用「設定 > 延遲探測」;「以選項探測…」提供後端支援的選項。「加入群組」列出可寫主檔案或 include 檔案中的群組,並開啟已暫存該節點的群組編輯器;點選「套用」確認。
尚未擷取成功且沒有錯誤記錄的訂閱顯示「尚未擷取」。「過期資料」表示保留的資料需要更新。「群組」篩選器與「加入群組」子選單在長清單中提供搜尋。組態可讀時,即使執行期 groups API 無法使用,也可編輯群組。
空檔案來源仍保留在「節點來源」中,顯示狀態,並在允許時提供移除操作。

延遲
- 開啟「延遲」分頁。摘要顯示最低延遲、最高延遲與無法使用的節點數。
- 圖表顯示每個節點的「目前延遲」。後端提供時,也會顯示「移動平均」與「近 10 次平均」。
- 在「分組方式」中選擇「依群組」或「依協定」。每組會列出無法使用或未測量的節點名稱。
- 點選圖表中的節點,可在「節點」分頁開啟該節點。
新增訂閱或節點
新增或移除訂閱與檔案來源需要後端允許管理來源;新增或移除單一節點需要後端允許管理節點。兩類操作都要求主組態可寫入;參閱唯讀來源。
- 點選「新增訂閱」,輸入「名稱」與「訂閱網址」(HTTP 或 HTTPS)。依後端能力,對話框還提供「自動更新」「User-Agent」與「快取訂閱內容」。網址未包含通訊協定時,欄位失去焦點或儲存時會補上
https://。無法使用的網址會在欄位下方說明原因。 - 點選「新增」。後端將訂閱寫入主組態的 subscription 區段。訂閱網址會儲存,但不會再回傳顯示。
- 新訂閱在擷取前沒有節點。後端支援重新整理訂閱時,doona 會立即重新整理,提示訊息顯示節點數。重新整理失敗時,提示訊息提供「重試」。
- 如需新增單一節點,點選節點表格上方的「貼上節點連結」。輸入「名稱」與「節點連結」(例如
vless://…),再點選「新增」。節點會寫入主組態的 node 區段。無法使用的節點連結會在欄位下方說明原因。
使用 honk 時,可貼上 Trojan、VMess 或 VLESS 分享連結,使用僅支援 H2 的 XHTTP。xhttp 及其別名 splithttp 選擇此傳輸方式;支援的模式為 auto、packet-up、stream-up 與 stream-one。honk 會拒絕不支援的選項,包括 xmux 與 downloadSettings。連結選項與限制見 honk 的 XHTTP 參考文件。
重新整理訂閱
- 點選訂閱卡片的「更新 {name}」立即擷取該訂閱。「更新 N 個訂閱」一次擷取全部訂閱。
- 重新整理會經由訂閱的下載路由擷取內容,並套用新的節點;訂閱的來源設定不會改變。
- 成功時,提示訊息顯示節點數。失敗時,保留最近一次成功載入的節點。
- 下載路由尚無可用節點時,重新整理會失敗,不會改用直連。例如,路由規則將訂閱導向一個由該訂閱尚未提供的節點組成的群組。
- 如需變更更新頻率,在「自動更新」選擇數值。「自訂」接受非負整數「間隔」與「單位」,例如「小時」。doona 將間隔寫入主組態並重載。
編輯訂閱
- 點選訂閱卡片的「編輯 {name}」;{name} 為訂閱名稱。doona 無法確定唯一且可寫入的項目時,改用「開啟設定檔」。
- 修改「名稱」「訂閱網址」或「User-Agent」。User-Agent 留空會移除
ua,使用引擎預設值。訂閱項目設定了cache,或後端提供快取預設值時,顯示「快取訂閱內容」。其他選項保持原樣。 - 顯示「下載路由」時,可選擇「依路由規則」「直連」或一個群組。此設定影響訂閱下載,不影響其節點的流量。選擇「依路由規則」會移除明確指定的
route。 - 點選「套用」。doona 驗證、寫入宣告此訂閱的檔案並重載。
重新命名時也可更新同一檔案中的簡單 subtag(...) 篩選條件;保持提供的更新開關開啟可保留這些成員關係。其他檔案或運算式中的引用會阻止重新命名,須先在「策略」修改這些篩選條件。
移除來源或節點
- 如需移除訂閱或檔案來源,開啟該卡片的「更多操作」,選擇移除項目,再於對話框確認。doona 會從主組態刪除此來源及其節點並重載。
- 組態內的節點在其列上有移除按鈕。移除後,該節點會從主組態的 node 區段刪除並重載。
群組的 subtag(...) 篩選條件引用的訂閱無法移除。對話框列出群組名稱並連結到「策略」;修改其篩選條件後才能移除。
include 檔案中宣告的訂閱與節點不能在此移除;停用操作會說明須在宣告檔案中刪除。「節點操作 > 編輯…」修改組態內節點在宣告來源中的連結與名稱。重新命名會更新同一來源的精確節點篩選、預設與最終成員,以及 DNS 上游繞行;其他來源中的引用會阻止重新命名。
路由規則
開啟「路由」分區中的「規則」。後端提供時顯示「DNS 規則」與「追蹤模擬」。組態可讀時,即使規則 API 無法使用,「路由規則」也可顯示範本。
規則範本
組態可讀時,「路由規則」提供範本。同時提供規則清單或流程記錄時,「簡易 / 進階」分別顯示範本與清單。連結未指定檢視時預設開啟「簡易」,自訂規則也如此。指定檢視或編輯規則、預填新規則條件或檢視暫存規則的連結,未明確指定其他檢視時開啟「進階」。

「簡易」用於選擇範本;下方的來源操作位於「進階」與「DNS 規則」。
只有一個檔案含頂層 routing,且內容與範本相符時,「簡易」會選取辨識出的範本名稱。否則視為自訂規則:不選取任何範本,並提示目前規則不屬於任何分流方式。routing 分散在多個檔案中時,也視為自訂規則。
使用 geosite: 或 geoip: 的分流方式範本需要 geosite.dat 與 geoip.dat;套用前請按離線相依錯誤中的說明安裝。
- 在「分流方式」中選擇「繞過中國大陸」「只代理 GFW 名單」或「全域代理」。「更多範本」提供「單一代理群組」「按服務分組」「按服務與地區分組」與「回國」。
- 變更範本或選項,再點選「套用」開啟確認對話框。對話框列出目標檔案:含頂層
routing的檔案;沒有這類檔案時,使用主組態。 - 檢查「將建立的群組」與「沿用的現有群組」。現有 group 保留原設定,包括其他已載入檔案中的 group;缺少的 group 會加入目標檔案。沿用的 group 若只依一個確切節點名篩選,或使用
fixed策略,會顯示固定節點警告。新 group 與節點同名時也會警告:指向該名稱的規則將使用 group,而不是節點。 - 「不再引用的規則檔案」列出將被取代的 routing 內的
include路徑。套用時會移除這些敘述,其中的規則不再經由這些 include 生效;檔案仍保留在磁碟上。展開「{file} 的變更」檢查 diff。 - 所有已載入檔案都沒有
dns區段時,對話框顯示「同時加入 DNS 路由」,預設勾選。此選項會在目標檔案加入dns區段:geosite:cn查詢由alidns(223.5.5.5)處理,其餘查詢經cloudflare(1.1.1.1)以 DNS over TLS 處理。取消勾選則不新增dns區段。 - 點選「套用」確認。此操作取代目標檔案的頂層
routing,不存在時則新增,並補上缺少的 group 與選用的 DNS 區段。現有 DNS routing、其他內容與其他檔案維持不變。寫入後重載組態。後端拒絕該模式時,對話框保持開啟,並逐項列出驗證錯誤與行號。
所有範本都提供三個選項:
- 「封鎖廣告」預設關閉,封鎖
geosite:category-ads-all中的網域。 - 「封鎖 QUIC」預設開啟,封鎖發往 port 443 的 UDP 流量。
- 「NetworkManager 直連」預設開啟,讓 NetworkManager 流量直接連線。
honk 在 routing 之前標記自身的 socket,因此「封鎖 QUIC」不影響 honk 與 QUIC 節點之間的連線。
「回國」適用於身在中國大陸以外、需經大陸節點存取中國大陸服務的使用者。此範本將 geosite:cn 網域與 geoip:cn IP 位址導向群組 cn。該群組選取名稱帶有中國大陸標記的節點,並排除香港、澳門與臺灣節點。其餘流量使用 fallback: direct。
新建群組的標籤使用介面語言;地區群組的標籤帶有國旗 emoji,例如 🇭🇰 香港 與 🇨🇳 回國節點。
後端回報的引擎名稱不是 honk、未開放組態寫入、沒有目標檔案,或頂層 routing 分散在多個檔案中時,無法套用範本。目標檔案含 native_api 或 clash_api 設定、唯讀、文字未提供或不完整(SHA-256 不符),或後端已拒絕該檔案的寫入權限時,也無法套用。頁面會說明原因;routing 內含 include 敘述本身不會阻止套用範本。
檢視規則清單
若顯示「簡易」與「進階」切換選項,先選擇「進階」。

第一條符合的規則決定出站;最後一列不編號,是 fallback;must 鎖定出站。「編輯規則」與「移除規則」要求檔案可寫、文字完整且能定位到規則。
「命中」只計算 rule_generation_id 與清單的 generation_id 相同的保留流程記錄,不是累計值;清單說明標明 generation 與規則數。後端只提供流程而不提供規則清單時,改為依規則分組顯示目前快照的流程及「命中」「佔比」。
以流程為依據的清單提供「規則來源」篩選:kernel 表示 eBPF 比對,userspace 表示 userspace router 比對,recomputed 表示重新評估規則,unknown 表示無法確認比對來源。
開啟規則來源
- 所有來源已知的列都可使用「開啟設定檔」,包括可寫與唯讀來源;「組態」頁開啟該檔案並定位到規則行,見編輯來源。
- 位於引入檔、且不在 routing 區段內的規則無法在清單中變更,須透過「開啟設定檔」在檔案中編輯。
編輯或移除規則
- 點選列內「編輯規則」,修改條件與目標。可表示為條件列的運算式使用條件列,其餘仍以「運算式」編輯。所有條件列須同時符合;fallback 只修改目標。點選「編輯規則」驗證、寫入並重載。
- 點選某列的「移除規則」。對話框列出將刪除的檔案與行號。點選「移除規則」確認。
- 兩項操作都在驗證通過後寫入並重載。提示訊息說明變更已生效;現有連線維持目前的路由,重新連線後才套用變更。
- 檔案唯讀或不完整、無法定位規則列,或規則位於 routing 區段外的 include 檔案時,停用操作透過說明控制項顯示原因。
- 連線的「更多操作 > 編輯命中規則的出站設定」開啟命中規則的「編輯規則」,不限於修改出站。
DNS 規則

兩份清單都依序比對。response 規則接受回答、拒絕回答,或改由其他上游重新查詢。「開啟設定檔」也適用於唯讀檔案;「編輯規則」與「移除規則」需要寫入權限。
任一清單的「新增規則」使用規則清單對話框,以 Action 取代 Outbound,沒有 Lock this outbound,並寫入該來源的 DNS routing 區段。「解析記錄」開啟 DNS,「開啟 DNS 組態」開啟組態的 dns 區段。
新增規則
新增規則有兩種對話框。從規則清單開啟的對話框會立即寫入規則;從觀測流量開啟的對話框另外提供暫存。
從規則清單新增
-
在「路由規則」分頁,若顯示檢視切換選項,先選擇「進階」,再點選清單上方的「新增規則」。
-
在「條件寫法」選擇「選擇」,再選擇「依據」(例如「網域後綴」「geosite 分類」或「目的 IP」)並輸入逗號分隔的「值」。「新增 AND 條件」增加條件列,所有列須同時符合。也可選擇「運算式」並輸入「條件」,例如
domain(geosite:netflix)。從「運算式」切回「選擇」會將編輯後的運算式轉換為條件列。無法用條件列表示的運算式會保留在「運算式」中,並顯示說明。清空運算式後切回「選擇」,會重設為一個空條件列。
-
選擇「出站」。預設為第一個群組;沒有群組時為
direct。開啟「鎖定此出站」會加上must。 -
選擇「插入位置」:「最後(fallback 之前)」或「第 N 條之前」。預設為清單中的第一個位置。
-
點選「新增規則」。doona 將規則加入來源檔案的 routing 區段,驗證通過後寫入並重載。
「網域關鍵字」比對網域中的子字串。例如,tracker, ads 產生 domain(keyword: tracker, keyword: ads),符合任一關鍵字即可。DNS 規則提供相同條件,產生 qname(keyword: tracker, keyword: ads)。「出站」支援搜尋,先列出 direct 與 block,再列出群組,不提供單一節點。「插入位置」可依規則文字搜尋。
從觀測流量新增
以下頁面也可開啟規則對話框。列內圖示無需先選取列即可使用。
- 「連線」:按列內的新增規則圖示。詳細資料面板在可用時也提供「新增規則」。工具列沒有新增規則按鈕。參閱連線。
- 「分流」:按記錄列的新增規則圖示。詳細資料面板沒有新增規則按鈕。參閱分流。
- 「DNS」:按「查詢」結果或回應位址旁的「新增規則」,或「解析記錄」與「快取」列內的新增規則圖示。網域列開啟「規則 > DNS 規則 > request 規則」。不提供 DNS 規則時,圖示開啟路由規則。參閱DNS。
- 「追蹤模擬」:提供此按鈕的規則評估卡片。參閱追蹤模擬。
在對話框中:
- 流量可寫入多份清單時,選擇「規則清單」:「路由規則」「DNS request 規則」或「DNS response 規則」。
- 流量提供多種條件時,選擇「依據」。DNS 規則也可限定為該查詢的記錄類型。
- 選擇「出站」;DNS 規則則選擇「動作」。出站沒有預設值。選項下方顯示目前的出站;所選出站不會改變流量走向時,對話框會提示。
- 確認「插入位置」。流量命中的規則位於可寫入檔案時,預設為「命中規則之前」。其他選項為「最後(fallback 之前)」與「最前」。
- 對話框底部預覽規則內容。前面的規則仍可能先命中此流量,或清單中、暫存清單中已有相同規則時,對話框會顯示說明。
- 點選「暫存」或「套用」:
- 「暫存」將規則加入暫存清單,不寫入。提示訊息提供「檢視暫存的規則」。
- 「套用」立即寫入這條規則並重載。提示訊息說明新規則已生效;路由規則提供「檢視規則」,從 DNS 查詢新增的 DNS 規則則提供「重新查詢」。
- 組態無法寫入時,對話框改為提供「複製規則」。
暫存清單
- 暫存規則只保留在目前的瀏覽器工作階段。重新載入頁面會捨棄暫存規則,因此有暫存規則時離開頁面,瀏覽器會先要求確認。
- 「規則」頁在每份含暫存規則的清單上方顯示「待套用:N」卡片。每列顯示規則內容與插入位置。
- 點選某列的「捨棄暫存的規則」可捨棄該規則。
- 點選卡片上的「套用暫存的規則」或頂端列帶有規則數量的套用按鈕,會寫入所有清單中的全部暫存規則。卡片會註明其他清單中的暫存規則數;需寫入多個檔案時,也會顯示檔案數。
- 規則逐一寫入各檔案,每個檔案各自驗證並重載。已寫入的規則會離開暫存清單。某個檔案失敗時,尚未寫入的規則保留在暫存清單中,失敗原因與相關行號顯示在卡片上。
- 頂端列的「重載 honk」只重載已寫入的組態,不會寫入暫存規則。參閱頂端列。
追蹤模擬
追蹤模擬依目前組態模擬規則比對,不會與目的地建立連線。
執行追蹤
- 開啟「規則」中的「追蹤模擬」。
- 選擇「網路協定」(TCP 或 UDP)。輸入「網域」「目的 IP」或兩者,以及「目的連接埠」。
- 選擇「解析模式」:「不解析(none)」「即時解析(live)」或「先查 DNS 再模擬(query)」。live 與 query 會先解析網域,因此須填寫網域,並將「目的 IP」留空。只能使用後端提供的模式。
- 展開「進階條件」可加入「來源 IP」「來源連接埠」「行程名稱」,或可選的 0 至 63 整數「DSCP」,用於
dscp(...)規則。 - 點選「開始追蹤」。
僅提供目的 IP 時,模擬依 IP 與連接埠判定。dial_mode 使用 domain 系列模式時,引擎會從實際 TLS 或 HTTP 流量嗅探網域,並重新評估規則;如需模擬此結果,請一併提供網域。
解讀結果
- 狀態列顯示觀測時間與追蹤所依據的
generation。 - 使用 query 解析時,DNS 查詢卡片顯示查詢結果。「查詢 DNS」與「檢視快取」會在「DNS」頁開啟該名稱。
- 每張「規則評估 N」卡片顯示「判定」(「已判定」或「無法判定」)與「出站」。前序規則缺少輸入時,卡片改為顯示「可能出站」與「缺少輸入」;補齊這些輸入後重新執行追蹤。
- 出站為群組時,卡片顯示「節點」鏈與「連通性」。測試按鈕可測量該節點;檢視群組與檢視節點的連結可開啟對應頁面。
- 表格列出每條規則的「結果」(「相符」「不符」「略過」或「無法判定」)以及該規則缺少的輸入。
從結果新增規則
點選規則評估卡片上的「新增規則」,會開啟從觀測流量新增的對話框,條件取自追蹤輸入。再點選「暫存」或「套用」。