組態參考
本頁列出 doona 涉及的 honk DAE 設定、預設值及生效方式。組態語法請查閱 honk 的節點、訂閱、群組、路由和 DNS 參考。初次使用請從快速啟動開始,或跟隨為第一條連線設定路由操作。
表中預設值對應 honk 1b95e2e,範例會覆寫其中部分值。生效方式欄連結至 doona 可以修改什麼中對應的寫入權限或重新啟動項目。
原生 API 與認證
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
experimental.native_api.enabled |
false |
啟用 doona 使用的原生 API。 |
重新啟動 |
experimental |
experimental.native_api.listen |
127.0.0.1:9527 |
API 監聽位址。須使用數字 IP 和非零連接埠。 |
重新啟動 |
experimental |
experimental.native_api.password_auth |
false |
啟用管理員登入;不能與 secret 或匿名回環存取並用。 |
重新啟動 |
experimental |
experimental.native_api.secret |
'' |
Token 登入。只接受不含空白或逗號的可見 ASCII。 |
重新啟動 |
experimental |
experimental.native_api.allow_anonymous_loopback |
false |
允許無憑證的回環存取;不授予受保護的寫入權限。 |
重新啟動 |
experimental |
experimental.native_api.config_write |
false |
配合憑證允許寫入組態來源及更新地理資料。 |
重新啟動 |
experimental |
experimental.native_api.ui |
'' |
在 /ui/ 提供 doona:填寫含 index.html 的目錄,或在啟用 native-ui 的建置中使用 embedded。 |
重新啟動 |
experimental |
experimental.native_api.allow_origins |
[] |
額外允許的瀏覽器來源,如 https://panel.example。 |
重新啟動 |
experimental |
experimental.native_api.allowed_hosts |
[] |
額外允許的 HTTP 主機名稱及連接埠,如 panel.example。 |
重新啟動 |
experimental |
資料目錄與狀態資料庫
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
global.data_dir |
/var/lib/honk |
執行資料根目錄;狀態資料庫位於其下的 state/honk.db。 |
重新啟動 |
global |
global.store_subscribe |
true |
儲存訂閱內容供離線啟動使用;訂閱項目的 cache 也須允許快取。 |
重新啟動 |
subscription |
experimental.cache_file.enabled |
未設定 |
未設定時保留 Selector 選擇和延遲樣本;false 關閉此快取;true 還儲存 Clash 模式並允許持久儲存 DNS。 |
重新啟動 |
experimental |
experimental.cache_file.store_dns |
false |
在 enabled: true 時儲存 DNS 回答。 |
重新啟動 |
experimental |
狀態資料庫還儲存管理員憑證和地理資料設定。--store db 選擇資料庫組態修訂儲存;這是啟動選項,不是 DAE 鍵。見修訂功能條件。
資源與訂閱預設值
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
assets.route |
空;遵循路由規則 |
預設下載路由:routing、direct 或群組名稱。地理資料、介面和訂閱繼承此值。 |
重新啟動 |
assets |
assets.geodata.geosite |
'';有狀態資料庫時使用內建 URL |
已載入網域分類的 HTTP(S) 來源。 |
重新啟動 |
assets |
assets.geodata.geoip |
'';有狀態資料庫時使用內建 URL |
已載入 IP 分類的 HTTP(S) 來源。 |
重新啟動 |
assets |
assets.geodata.route |
繼承 assets.route |
資料與校驗和的下載路由。未設定時保留已儲存的覆寫值。 |
重新啟動 |
assets |
assets.ui.url |
zashboard dist.zip |
Clash 儀表板下載位址,與 doona 目錄無關。HONK_UI_DOWNLOAD_URL 優先。 |
重新啟動 |
assets |
assets.ui.route |
繼承 assets.route |
Clash 儀表板下載路由;也接受節點標籤。 |
重新啟動 |
assets |
assets.subscription.ua |
honk/<version> |
預設訂閱 User-Agent;訂閱項目可覆寫。 |
重載 |
assets |
assets.subscription.interval |
86400s |
預設更新間隔;0 關閉定時更新。 |
重載 |
assets |
assets.subscription.cache |
true |
預設快取訂閱內容,受 global.store_subscribe 限制。 |
重載 |
assets |
訂閱項目選項優先於預設值,子區塊路由優先於 assets.route。變更若影響繼承後的地理資料或介面設定,需要重新啟動;僅影響訂閱時可重載。啟動組態中明確指定的地理資料 URL 和路由會替換已儲存的覆寫值。宣告 URL 不會載入資源。見地理資料更新條件。
記錄權限
這些檔案鍵授予記錄權限。流、日誌和 DNS 日誌以按需模式啟動;執行期開關不能覆寫組態中的停用設定。連線頁單獨列出活動的使用者空間連線,不依賴流記錄器。見連線條件、流記錄條件和執行時覆寫條件。
健康檢查
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
global.tcp_check_url |
https://www.gstatic.com/generate_204 |
全域 HTTP 探測目標清單;健康檢查使用第一個 URL。 |
重新啟動 |
global |
global.tcp_check_http_method |
HEAD |
全域 HTTP 健康檢查方法。 |
重新啟動 |
global |
global.udp_check_dns |
dns.google:53, 8.8.8.8, 2001:4860:4860::8888 |
UDP 探測目標;第一個 IP 位址優先於網域名稱。 |
重新啟動 |
global |
global.check_interval |
30s |
全域健康檢查間隔。 |
重新啟動 |
global |
global.check_tolerance |
50ms |
URLTest 切換成員所需的預設延遲改善量。 |
重載 |
global |
日誌
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
global.log_level |
info |
啟動日誌篩選等級。有效的 RUST_LOG 優先,其次為 --debug。 |
重新啟動 |
global |
global.log_file |
'' |
可選日誌檔案。相對路徑以 data_dir 為基準;--log-file 優先。 |
重新啟動 |
global |
介面與核心
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
global.lan_interface |
[] |
轉送流量的 LAN 介面;為空時不掛接 LAN。 |
重新啟動 |
global |
global.wan_interface |
[] |
本機流量的介面;auto 跟隨度量值最低的 IPv4 預設路由。 |
重新啟動 |
global |
global.tproxy_port |
12345 |
透明 TCP/UDP 監聽連接埠。 |
重新啟動 |
global |
global.so_mark_from_dae |
0 |
為零時實際標記為 0x100;否則使用設定的通訊端繞過標記。 |
重新啟動 |
global |
global.nfqueue_enable |
true |
請求對路由尚未確定的 LAN 轉送 UDP 使用 NFQUEUE 暫存。需要真實 eBPF 後端。 |
重新啟動 |
global |
連線與預熱
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
global.dial_mode |
domain |
網域識別與路由重新評估模式:ip、domain、domain+、domain++。 |
重載 |
global |
global.bootstrap_resolver |
'' |
節點網域及控制平面連線的解析器。依網域直連下載地理資料需要此項。 |
重載 |
global |
global.tls_implementation |
tls |
選擇一般 TLS 或 utls ClientHello 模擬。 |
重新啟動 |
global |
global.max_concurrent_dials |
64 |
代理實體連線與交握的請求上限;資源預算可能降低此值。 |
重載 |
global |
global.udp_warm_node_count |
0 |
UDP 預熱候選節點數;零表示關閉。 |
重載 |
global |
global.preconnect_node_count |
auto |
僅在啟動時預熱 TCP;auto 最多選擇八個合格節點。重載不會再次預熱。 |
重新啟動後預熱 |
global |
接受但沒有執行效果的欄位
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
global.tproxy_port_protect |
true |
僅儲存;不控制連接埠保護。 |
重新啟動 |
global |
global.pprof_port |
0 |
僅儲存;不會啟動 pprof 服務。 |
重新啟動 |
global |
global.auto_config_kernel_parameter |
false |
僅儲存;不控制資料路徑固定的 sysctl 設定。 |
重新啟動 |
global |
global.disable_waiting_network |
false |
僅儲存;不改變啟動等待行為。 |
重載 |
global |
global.allow_insecure |
false |
僅儲存;不會全域關閉憑證驗證。 |
重載 |
global |
global.sniffing_timeout |
30ms |
僅儲存;不設定實際嗅探逾時。 |
重載 |
global |
global.mptcp |
false |
僅儲存;不啟用 MPTCP。 |
重載 |
global |
global.fallback_resolver |
8.8.8.8:53 |
僅儲存;不選擇備援解析器。 |
重載 |
global |
global.tls_fragment |
false |
僅儲存;不啟用 TLS 分片。 |
重載 |
global |
global.tls_fragment_length |
'' |
僅儲存;不設定分片長度。 |
重載 |
global |
global.tls_fragment_interval |
'' |
僅儲存;不設定分片間隔。 |
重載 |
global |
global.bandwidth_max_tx |
'' |
僅儲存;不限制傳送頻寬。 |
重載 |
global |
global.bandwidth_max_rx |
'' |
僅儲存;不限制接收頻寬。 |
重載 |
global |
global.utls_imitate |
chrome_auto |
接受指紋名稱,但不會改變唯一支援的 Chrome 設定。 |
重載 |
global |
DNS 監聽與 Clash 相容設定
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
dns.bind |
'' |
獨立 DNS 監聽位址;為空時關閉。須在 doona 之外編輯。 |
重新啟動 |
dns |
experimental.clash_api.external_controller |
'' |
Clash API 監聽位址;為空時關閉。 |
重新啟動 |
experimental |
experimental.clash_api.external_ui |
'' |
Clash 儀表板目錄。 |
重新啟動 |
experimental |
experimental.clash_api.secret |
'' |
Clash Token;含此宣告的來源在 doona 中唯讀。 |
重新啟動 |
experimental |
experimental.clash_api.default_mode |
Rule |
初始 Clash 模式:Rule、Global 或 Direct。 |
重新啟動 |
experimental |
執行期 API 欄位,不是 DAE 鍵
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
record_flows, record_logs, record_dns_log |
auto |
按需記錄模式:auto、on、off;仍受組態停用條件限制。 |
即時 |
api |
log.level |
來自 global.log_level |
即時日誌篩選等級;覆寫後也影響主控台和檔案輸出。 |
即時 |
api |
log.buffered_records |
512 |
日誌緩衝容量;64–512。 |
即時 |
api |
dns_log.max_records |
512 |
DNS 日誌容量;64–512。 |
即時 |
api |
flows.max_flows |
1024 |
流記錄容量;64–1024。 |
即時 |
api |
flows.retention_seconds |
300 |
已結束流的保留時間;1–300 秒。 |
即時 |
api |
你可以在設定頁修改這些欄位。請勿寫入 DAE 檔案。成功啟用組態或重新啟動會重置它們。見執行時覆寫條件。
持久儲存的地理資料設定,不是 DAE 鍵
| 鍵 |
預設值 |
doona 如何使用 |
生效方式 |
honk 參考 |
geodata.geosite.urls, geodata.geoip.urls |
GitHub + jsDelivr;GeoIP 使用 geoip.dat |
已儲存的 URL 清單;啟動組態中的 URL 優先。 |
即時,持久儲存 |
api |
geodata.download |
路由規則 |
下載路由及可選的 group_id;啟動組態中的路由優先。 |
即時,持久儲存 |
api |
geodata.verify_checksum |
true |
下載校驗和驗證。 |
即時,持久儲存 |
api |
geodata.auto_update.enabled |
true |
啟用定時更新檢查。 |
即時,持久儲存 |
api |
geodata.auto_update.interval_hours |
24 |
定時檢查間隔,單位為小時。 |
即時,持久儲存 |
api |
你可以在設定頁修改這些欄位,需要憑證和可用的狀態資料庫。儲存設定本身不會啟用新的資源檔案。見地理資料設定條件。
別名與遷移鍵
| 舊名稱 |
目前名稱 |
experimental.native_api.geosite_download_url |
assets.geodata.geosite |
experimental.native_api.geoip_download_url |
assets.geodata.geoip |
experimental.native_api.geodata_download_detour |
assets.geodata.route |
experimental.clash_api.external_ui_download_url |
assets.ui.url |
experimental.clash_api.external_ui_download_detour |
assets.ui.route |
experimental.udp_nfqueue.enabled |
global.nfqueue_enable |
新檔案請使用目前名稱。資源別名會產生 legacy-assets-key 警告;非空舊值與對應新鍵並用會報 conflicting-assets-setting。舊 NFQUEUE 區塊會產生遷移警告,僅在未設定 global.nfqueue_enable 時提供該值。experimental.cache_file.path 和 cache_id 僅用於舊資料匯入,不指定目前資料庫位置。store_fakeip 沒有效果。
完整註解範例
這兩個檔案須一起使用。它們在最小組態上補充教學範例的訂閱、群組、網域規則、DNS 規則和下載預設值。啟動 honk 前,替換訂閱 URL 和監聽 IP。介面路徑與快速啟動中的 Debian 和 Ubuntu 一致;其他系統請使用實際安裝路徑,通常為 /usr/share/doona。如果只需直連起點,請使用快速啟動的檔案。
將 API 憑證與節點頁修改的主檔案分開。見組態來源寫入條件。
主檔案
include {
config.d/*.dae
}
global {
wan_interface: auto
data_dir: '/var/lib/honk'
store_subscribe: true
log_level: info
tproxy_port: 12345
so_mark_from_dae: 0
nfqueue_enable: true
tcp_check_url: 'https://www.gstatic.com/generate_204'
tcp_check_http_method: HEAD
udp_check_dns: 'dns.google:53', '8.8.8.8', '2001:4860:4860::8888'
check_interval: 30s
check_tolerance: 50ms
dial_mode: domain
bootstrap_resolver: '1.1.1.1:53'
tls_implementation: tls
max_concurrent_dials: 64
preconnect_node_count: auto
udp_warm_node_count: 0
}
subscription {
harbor: 'https://subscription.example/sub'
}
node {
}
group {
proxy {
filter: subtag('harbor')
policy: min_moving_avg
}
}
routing {
domain(full: example.com) -> proxy
fallback: direct
}
dns {
upstream {
remote_dns: 'https://1.1.1.1/dns-query' -> proxy
}
routing {
request {
qname(full: example.com) -> remote_dns
fallback: asis
}
response {
fallback: accept
}
}
}
assets {
route: routing
geodata {
geosite: 'https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/release/geosite.dat'
geoip: 'https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/release/geoip.dat'
route: direct
}
ui {
url: 'https://github.com/Zephyruso/zashboard/releases/latest/download/dist.zip'
route: direct
}
subscription {
interval: 86400s
cache: true
}
}
API 檔案
experimental {
native_api {
enabled: true
listen: '192.168.1.1:9527'
password_auth: true
config_write: true
ui: '/usr/share/doona-web'
record_traffic: true
record_memory: true
record_flows: true
record_logs: true
record_dns_log: true
}
cache_file {
store_dns: false
}
}
將檔案放到標明的路徑後,依最小組態檢查,再依服務管理重新啟動。如需從直連起點透過介面建立此組態,請跟隨為第一條連線設定路由操作。