管理節點、策略群組和規則
在標準版的路由分區中新增節點來源、設定群組的節點選擇方式,並決定哪些流量使用這些節點。完整操作範例見首次連線教學。
| 任務 | 頁面 | 開始前檢查 |
|---|---|---|
| 新增或編輯訂閱、節點 | 節點 | 節點管理 |
| 更新訂閱 | 節點 | 訂閱更新 |
| 選擇成員或固定自動群組的成員 | 策略 | 成員選擇 |
| 修改成員範圍或群組設定 | 策略 | 編輯群組 |
| 測試節點或群組 | 節點或策略 | 延遲探測 |
| 套用範本或編輯規則 | 規則 | 規則與範本 |
| 為常用服務新增規則 | 服務規則 | 規則與範本 |
| 模擬路由結果 | 追蹤模擬 | 路由追蹤 |
變更何時生效,見 doona 能修改什麼。控制項無法使用時,開啟其旁的說明查看具體原因。
新增和維護節點
開啟節點。選取來源卡片後,查看其節點;透過表格的搜尋和篩選尋找節點。延遲分頁用於比較已有的測量結果。
搜尋節點 搜尋所有來源,群組 和 協定 可篩選表格。協定後會顯示後端回報的串流傳輸方式,協定篩選仍按協定比對。
來源卡片顯示類型、狀態、節點數、更新時間、到期時間和用量;後端回報配額時還會顯示用量條。到期時間顯示到分鐘,懸停提示顯示秒。方向鍵可在卡片間移動。尚未擷取 表示尚未成功取得且沒有回報錯誤;過期資料 表示保留的資料需要更新。空檔案來源仍會顯示其狀態。
延遲 顯示最低、最高延遲和無法使用的節點數。可比較 目前延遲,以及後端回報的 移動平均 和 近 10 次平均。分組方式 按群組或協定彙整,並列出無法使用或未測量的節點。選擇圖表中的節點會在 節點 中開啟。
新增訂閱
- 點選新增訂閱。
- 填寫名稱和訂閱網址。如果提供自動更新、User-Agent和快取訂閱內容,檢查這些選項。
- 點選新增。支援訂閱更新時,doona 會擷取新來源並報告節點數量。如果擷取失敗,使用通知中的重試。
- 選取來源卡片,檢查節點後再建立群組。
訂閱 URL 必須使用 HTTP 或 HTTPS。未填寫協定的 URL 會在欄位失去焦點或儲存時補上 https://。無效 URL 和節點連結的原因會顯示在欄位下方。
新增節點連結
- 點選貼上節點連結。
- 只有一個連結時,填寫名稱和節點連結。有多個連結時,每行貼上一個,再檢查解析出的名稱和錯誤。
- 確認新增並檢查結果。部分連結失敗時,對話框會保留這些連結供你修正。
honk 支援 Trojan、VMess 和 VLESS 連結使用 XHTTP over H2。xhttp 和 splithttp 均選擇此傳輸方式,支援 auto、packet-up、stream-up 和 stream-one 模式。可用選項與限制見 honk XHTTP 參考。
更新或編輯訂閱
- 使用來源卡片的更新操作立即擷取訂閱。頁面上的訂閱更新按鈕會更新全部訂閱。
- 要修改網址或選項,使用卡片的編輯操作。修改提供的欄位後,點選套用。如果卡片提供的是開啟設定檔,則在該處編輯宣告。
- 用自動更新選擇間隔。選擇自訂時,填寫間隔和單位。
- 如果提供下載路由,選擇擷取訂閱時使用的路由。此選項不決定經由訂閱節點的流量所用路由。
更新失敗會保留上次成功載入的節點。若下載路由沒有可用節點,更新會失敗,不會退回直連。例如,訂閱透過自身提供的節點下載,但這些節點尚未載入時,就會出現此情況。
清空 User-Agent 會移除 ua,改用引擎預設值。項目設定了 cache 或後端回報快取預設值時,才會顯示 快取訂閱內容。選擇 依路由規則 會移除明確指定的 route,其他選項保留原文。
重新命名可同步更新同一檔案中的簡單 subtag(...) 篩選條件。保持更新開關開啟,可保留這些群組的成員關係。其他檔案或運算式中的引用會阻止重新命名。
自訂 自動更新間隔的 間隔 必須為非負整數,並需選擇 單位。
如果群組篩選條件阻止重新命名,按對話框中的連結前往策略,先修改這些篩選條件。下載失敗時,檢查訂閱更新條件。
編輯或移除節點來源
透過來源卡片的更多操作選單移除來源,再檢查確認提示。如果仍有群組引用該訂閱,對話框會列出這些群組;須先修改其篩選條件。
對於組態中宣告的節點,使用節點列提供的編輯或移除操作。如果宣告位於引入檔案且無法移除,在組態中開啟該檔案。
勾選節點列的核取方塊,可一次處理多個節點。每一列都能勾選,包括訂閱與 include 檔案中的節點。有選取時,測試全部會變成測試所選(N),只測試選取的節點。**移除所選(N)**只計入主組態中可移除的手動節點,訂閱與 include 檔案中的節點不會被移除。確認一次後逐一移除並顯示進度;關閉對話框會停止其餘移除,移除失敗的節點保持選取。Ctrl A 或 ⌘A 全選列出的節點,Shift 加 ↑ 或 ↓ 延伸選取,Esc 清除選取。切換來源、搜尋或篩選條件時,選取會清除。
重新命名設定內的節點時,會同步更新同一來源中精確比對節點名稱的篩選條件、預設成員、最終出站及 DNS 上游的繞行目標。其他來源中的引用會阻止重新命名。
加入群組會開啟群組編輯器,並將節點加入草稿;點選套用才會儲存。選擇器列出可寫入主檔案及 include 檔案中的群組,並支援搜尋。即使執行期群組 API 無法使用,只要設定可讀取,仍可編輯群組。
選擇和編輯策略群組
開啟策略。每張卡片代表一個群組;展開折疊的卡片即可查看成員。卡片顯示所選成員和後端報告的成員健康狀態。
全部、手動選擇 和 自動選擇 按選擇類型篩選群組並顯示數量。篩選條件儲存在 URL 中;開啟被隱藏的群組會切回 全部。卡片顯示策略及可用、無法使用、未測試的數量。超過 12 個成員的群組提供 篩選節點、地區、排序 和 只顯示可用節點。自動群組初始摺疊;固定選擇的群組或透過連結開啟的群組會自動展開。
巢狀群組顯示父群組對它測得的延遲;若沒有此樣本,則顯示其目前選擇最終指向節點的延遲。
選擇成員
- 如果卡片提供兩者、TCP和UDP,先選擇要修改的網路協定。
- 選擇成員。手動群組會選擇該成員;允許覆寫的自動群組會將其固定,並顯示已手動固定。
- 要取消固定,在更多操作中選擇恢復自動選擇。卡片展開時,此操作遵循所選網路協定;自動群組卡片折疊時,會清除兩種協定的固定狀態。
重新啟動後是否保留選擇,見持久儲存條件。
建立或編輯群組
- 點選新增群組,或點選卡片的鉛筆按鈕編輯該群組。
- 新增群組須填寫群組名稱,然後選擇選擇方式。
- 選擇要包含的地區、訂閱、節點或巢狀群組。儲存前檢查符合的節點。空篩選條件會包含所有節點。
- 成員選項無法表達的條件,透過新增篩選補充。同一篩選中的條件須全部符合;新增 OR 比對用於增加另一種比對方式。
- 檢查提供的預設成員、最終出站和切換時中斷連線的開關。預設成員用於手動選擇的初始狀態;沒有可用成員時使用最終出站。
- 新增群組點選建立,編輯群組點選套用,隨後檢查結果。取消會在必要的放棄確認後捨棄草稿。
移除明確選取的成員後,如果該節點仍符合其他篩選條件,就不會被排除;須同時修改對應條件。欄位無法修改時,參閱群組編輯條件。
預設成員 只在手動選擇策略下顯示,列出直接成員。改用自動策略不會清除已儲存的 default。最終出站 可選 direct、block、群組和節點,但不包含會形成循環引用的群組。選擇 無 會移除對應的 default 或 final 設定。
切換時中斷現有連線 控制切換成員時是否關閉現有連線。在 編輯群組 中修改後需點 套用;在 檢視組態 中切換則立即寫入。
設定衝突後重試會保留未編輯欄位的新值。雙方修改同一欄位或群組被重新命名時,需重新開啟編輯器。若群組已在別處刪除,編輯器會保持開啟並提示變更未儲存。
展開 地區 可選擇地區,已選標籤會保持顯示。新增篩選 支援名稱和 subtag 比對,自訂運算式仍可作為文字編輯。子群組 和 節點 選擇器捲動選項時,搜尋框保持固定。
測試成員或修改背景檢查
使用群組的 更多操作 → 測試全部 或節點測試按鈕,按手動探測偏好測試。選擇 以選項探測… 可調整本次測試。操作無法使用時,查看探測需求。
在節點頁,工具列的測試全部會測試列出的節點。
探測逾時、取消、無可用位址或本機拒絕可能使結果為 unknown;這不能證明節點不可用。Trojan、AnyTLS 和 VLESS 仍提供 DNS UDP 探測選項,是否支援取決於節點設定。後端拒絕探測時會顯示原因,不會自動改用 HTTP。
要修改群組的背景檢查,選擇更多操作 → 檢測設定,修改提供的欄位後點選套用。背景檢查與手動測試分開設定。
檢查欄位留空會清除群組的覆寫值,改用全域值或預設值。發生衝突後,未編輯的欄位會採用後端新值;雙方都改過的欄位保留草稿,並在旁邊顯示後端值。再次套用會用草稿覆寫該值。
套用路由範本
開啟規則 → 路由規則。顯示檢視切換時,簡易用於範本,進階用於規則清單。套用前先檢查規則與範本條件。
即使規則 API 無法使用,仍可從可讀取的設定檢視範本。簡易 是預設檢視;連結指定規則、預填新規則或檢視暫存規則時除外。自訂路由或分布在多個檔案中的路由不會選中任何範本。
- 分流方式提供繞過中國大陸、只代理 GFW 名單和全域代理。
- 更多範本提供單一代理群組、按服務分組、按服務與地區分組和回國。
- 回國將中國大陸網域及 IP 送往
cn群組。該群組按節點名稱比對成員時排除香港、澳門和台灣,其餘流量直連。
- 選擇分流方式,或開啟更多範本。檢查範本說明和選項。
- 點選套用,開啟確認對話框。
- 檢查目標檔案、將建立或沿用的群組,以及檔案差異。範本會取代目標檔案的頂層路由規則。取代時移除的路由引入陳述式不再引入原有規則,但被引入的檔案仍保留在磁碟上。
- 如果提供同時加入 DNS 路由,決定是否加入建議的 DNS 組態。
- 點選套用確認,隨後檢查結果。驗證失敗時,先修正報告的問題再套用。
已有群組會保留原設定。確認前須檢查沿用群組或群組名稱與節點名稱衝突的警告。
| 範本選項 | 預設值與效果 |
|---|---|
| 封鎖廣告 | 預設關閉;開啟後封鎖 geosite:category-ads-all。 |
| 封鎖 QUIC | 預設開啟,封鎖 UDP 443 連接埠。honk 在路由前標記自身 socket,因此不會封鎖其與 QUIC 節點的連線。 |
| NetworkManager 直連 | 預設開啟,將 NetworkManager 流量直連。 |
路由中沒有任何規則時才使用上述預設值。其他情況下,各選項的初始狀態取決於路由現有內容:符合範本時沿用該範本的選擇;自訂路由則依其是否已包含廣告、QUIC 或 NetworkManager 規則決定。因此套用範本會保留這些規則,除非關閉對應選項。
所有已載入檔案都沒有 dns 區塊時,才會顯示 同時加入 DNS 路由,且預設勾選。它將 geosite:cn 查詢透過 UDP 送往 223.5.5.5:53 的 alidns,其餘查詢透過 DNS over TLS 送往 1.1.1.1:853 的 cloudflare。
警告會指出只選擇單個精確節點或使用 fixed 策略的現有群組。若新群組與節點同名,使用該名稱的規則會指向群組,而不是節點。
目標為包含頂層 routing 的檔案;若不存在,則使用主檔案。缺少的群組會在目標檔案中建立。現有 DNS 路由、其他內容及其他檔案保持不變。新群組標籤使用介面語言,地區標籤帶國旗。
新增服務規則
規則 → 路由規則工具列中的新增服務規則會為每個服務新增一條規則,例如 domain(geosite:netflix) -> proxy,並保留現有規則。
- 點選新增服務規則,再選擇所有選取服務共用的出站。
- 在遊戲、影音、社群與通訊、AI 和開發與平台中選取服務。
- 點選套用寫入規則並重載,或點選暫存加入暫存規則。
路由規則或暫存規則已使用某服務的分類時,該服務無法選取,並顯示已有規則;已載入的地理資料不含該分類時,則顯示目前的地理資料未包含此分類。
規則寫入包含 fallback 的檔案,位於 fallback 之前。因為第一條符合的規則決定結果,若該檔案已有 geosite:category-games 規則,全部遊戲以外的遊戲服務會改為插入該規則之前,避免遊戲流量先由該規則處理。
以下兩個服務會新增多條規則:
- Steam:出站不是
direct或block時,開啟 Steam 下載直接連線 會在 Steam 規則之前加入domain(geosite:steam@cn) -> direct。 - Telegram:同時以相同出站加入
dip(geoip:telegram);尚無對應 DNS 規則時,再加入請求規則qname(geosite: telegram) && qtype(https, svcb) -> reject,避免連線繞過代理。DNS 請求規則位於其他檔案時,對話框會提示,且不修改 DNS。
fallback 無法寫入時,對話框會提示無法自動新增規則。此時請在設定檔中手動新增,或檢查規則條件。
新增或修改單條路由規則
- 開啟規則 → 路由規則;顯示檢視切換時,選擇進階。
- 點選新增規則。選擇依據並填寫值,多個值以逗號分隔。新增 AND 條件用於新增必須同時符合的條件;自訂條件可使用運算式。
- 選擇出站和插入位置。決定位置時須檢查前面的規則,因為第一條符合的規則決定結果。
- 點選新增規則,在清單中檢查結果。
從 運算式 切換到 選擇 時,可轉換的運算式會變為條件列;其餘運算式保留在 運算式 並顯示提示。網域關鍵字 比對子字串,例如 tracker, ads 符合任一關鍵字即可。
出站 提供 direct、block 和群組,不提供單個節點。開啟 鎖定此出站 會加入 must。插入位置 可選 最後(fallback 之前) 或某條規則之前,初始選擇為第一個可用位置。兩個選擇器都支援搜尋。
透過規則列的編輯規則修改條件或目標,再點選儲存;透過移除規則並確認刪除。開啟設定檔會定位到宣告所在的來源。前面的規則都不符合時,使用 fallback 列指定的目標。
若規則無法在清單中編輯或刪除,請用開啟設定檔編輯宣告檔案。唯讀來源也可透過此操作開啟到規則所在行。編輯 fallback 規則只會改變目標。
命中 只統計仍保留且 rule_generation_id 與規則清單 generation_id 相同的流量記錄,不是累計值。沒有規則清單時,檢視會按規則彙整目前快照中的流量,顯示 命中 和 佔比。規則來源 區分 kernel、userspace、recomputed 和 unknown。
從已觀察到的流量建立規則
- 使用連線、分流或 DNS 列上的新增規則操作,或使用追蹤結果中提供的新增操作。
- 檢查所選規則清單、條件、目標和插入位置。DNS 網域可以開啟 DNS 請求規則;不支援 DNS 規則時會開啟路由規則。
- 檢查預覽,以及規則重複或前序規則可能先符合的警告。
- 點選套用寫入這條規則,或點選暫存加入暫存規則。無法寫入時,使用複製規則。
對話框不預選出站,會顯示目前出站,並在所選目標不會改變出站時提示。命中規則屬於可寫入檔案時,插入位置 預設選擇 命中規則之前;其他選項為 最後(fallback 之前) 和 最前。DNS 條件還可限制為該查詢的記錄類型。
無需先選中列即可使用列內圖示。連線 的詳細資料面板也有 新增規則,工具列沒有此操作。分流 使用列內圖示,詳細資料面板沒有此操作。DNS 在查詢結果、回答位址旁,以及 解析記錄 和 快取 列內提供 新增規則。
套用成功後,路由規則的提示提供 檢視規則;從 DNS 查詢新增的 DNS 規則則提供 重新查詢。
新增或修改 DNS 規則
開啟規則 → DNS 規則。請求規則決定如何解析查詢;回應規則決定如何處理回答。
- 在 request 規則或 response 規則下點選新增規則。
- 選擇條件並輸入值,或使用運算式。
- 選擇動作,並在需要時選擇上游。須先定義上游時,參閱 DNS 設定範例。
- 選擇插入位置,檢查條件和動作,再點選新增規則。
- 在 DNS 頁面查詢網域,檢查結果。
已有 DNS 規則使用與路由規則相同的編輯、儲存和移除控制項。清單或操作無法使用時,參閱 DNS 規則條件。
兩個 DNS 清單都依序比對。回應規則可接受回答、拒絕回答或查詢其他上游。DNS 規則對話框使用 動作,不使用 出站,也不提供 鎖定此出站。解析記錄 開啟 DNS 頁面;開啟 DNS 組態 開啟 dns 區段。
套用暫存規則
暫存規則只保留在目前頁面工作階段中。重新整理瀏覽器頁面會遺失這些草稿。
- 開啟規則,檢查各清單的待套用卡片。
- 用捨棄暫存的規則移除不需要的項目。
- 點選套用暫存的規則,或頂欄顯示規則數量的套用按鈕。此操作會套用所有清單中的暫存規則。
- 檢查結果。檔案逐個處理;某個檔案失敗時,尚未寫入的規則會繼續暫存。已寫入的規則即使未能生效,也會從暫存清單移除;繼續操作前須按失敗通知處理。
有暫存規則時,離開頁面前瀏覽器會要求確認。待處理卡片列出規則及插入位置,提示其他清單的暫存規則;涉及多個檔案時還會顯示檔案數。寫入失敗的規則會顯示在卡片上。
重載 honk只會重新載入已儲存的組態,不會套用暫存規則。
用追蹤檢查路由
追蹤會按目前組態評估輸入,不會測試到目標的連線。
開啟規則 → 追蹤模擬。
選擇網路協定,填寫網域、目的 IP或兩者,並填寫目的連接埠。
選擇可用的解析模式。支援的模式見追蹤條件。
即時解析(live) 和 先查 DNS 再模擬(query) 必須填寫 網域,並將 目的 IP 留空。
規則需要來源、程序、DSCP 或標記資訊時,展開進階條件並填寫對應欄位。
DSCP 接受 0 到 63 的整數。
點選開始追蹤,查看判定、出站和各條規則的結果。輸入不足時,補充後再次追蹤。
要檢查真實連線,開啟連線。追蹤結果提供新增規則時,可以用該次輸入建立規則。
只填寫 IP 時,追蹤只評估該 IP 和連接埠。domain 系列 dial_mode 可從真實 TLS 或 HTTP 流量中發現網域並重新評估路由;模擬此情況時需填寫網域。
無法確定結果時,補充缺少輸入中列出的資訊。可能出站是根據同一世代中的命中規則推斷的,不代表已確定結果。結果標明觀測時間和設定世代,並將每條規則標為相符、不符、略過或無法判定。
先解析再模擬時,會顯示 DNS 查詢卡片,提供查詢 DNS和檢視快取連結。群組結果在節點下顯示群組到節點的鏈及連通性,並提供測試節點、開啟群組或節點頁面的操作。
來源:doona 上游文件,採用 CC BY 4.0 授權條款。
