doona
在 OpenWrt 上安裝
示範
繁體中文

在 OpenWrt 上安裝

本頁在 OpenWrt 25.12 上用發行版本中的封存檔安裝 doona 與 honk-core。完成最後一步後,請繼續閱讀最小組態。

發行版本中的 .ipk 套件不適用於目前任何一個 OpenWrt 系列。OpenWrt 25.12 用 apk 安裝套件,apk 拒絕 .ipk 並報錯 v2 package format error。OpenWrt 24.10 仍使用 opkg,但核心是 Linux 6.6,低於 honk 要求的 6.12。

開始之前

  • OpenWrt 25.12 或更高版本(核心為 Linux 6.12),以及系統需求列出的核心選項。用 uname -r 檢視核心版本。
  • 路由器上的 root shell,例如 ssh root@192.168.1.1。OpenWrt 沒有 sudo,所有命令都以 root 身份執行。
  • / 上約 30 MB 可用空間,用於 honk-core 二進位檔(27 MB)與 doona(2.2 MB);/tmp 上約 15 MB 可用空間,用於存放下載的檔案。用 df -h / /tmp 檢視。
  • 從 debug.2026.9.28.native-api.4 起,包括 doona beta.10 及之後附帶的 honk 建置,geodata 更新會串流寫入磁碟,並使用 inactivity timeout。請保留 procd 服務中的 MIMALLOC_PURGE_DELAY=0,讓 mimalloc 在更新後將已釋放的記憶體歸還給系統。
  • 能夠連線到 github.com。
  • 所有步驟都在同一個 shell 中執行:後面的步驟會用到前面設定的 VERSION、BASE 與 TARGET 變數。

安裝 honk 前先安裝核心模組。缺少 kmod-veth 時 honk 無法啟動。缺少 kmod-nft-queue 時,honk 會停用 NFQUEUE staging,只在啟動日誌中留下一條警告。kmod-sched-core 提供入口排程器。

apk add kmod-veth kmod-nft-queue kmod-sched-core

仍使用 opkg 的韌體(如 iStoreOS)請用以下指令安裝相同模組:

opkg update && opkg install kmod-veth kmod-nft-queue kmod-sched-core

官方 OpenWrt 24.10 及更早版本的核心低於 6.12,請先用 uname -r 對照系統需求確認核心版本。

1. 安裝 curl 與 CA 憑證

honk 透過 HTTPS 下載訂閱與地理資料,缺少 CA 憑證時會在啟動階段結束。OpenWrt 25.12 已包含 ca-bundle;下面的命令保留它並安裝 curl。

apk update
apk add curl ca-bundle

2. 下載 doona

在 /tmp 中操作。/tmp 位於記憶體中,重新啟動後清空。設定發行版本號,然後下載封存檔與總和檢查碼檔案。

cd /tmp
VERSION=0.1.0-beta.12
BASE=https://github.com/Zakkaus/doona/releases/download/v$VERSION
curl -fL -O "$BASE/doona-${VERSION}.tar.gz" -O "$BASE/SHA256SUMS"

3. 驗證下載的檔案

grep " doona-${VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c -

應顯示:

doona-0.1.0-beta.12.tar.gz: OK

4. 安裝 doona

使用 doona 0.1.0-beta.12 附帶的 honk-core 建置並設定 ui: embedded 時,doona 套件可省略,詳見最小組態。

把封存檔解壓縮到 /usr/share/doona,honk 從這個目錄提供 doona。

mkdir -p /usr/share/doona
tar -xzf doona-${VERSION}.tar.gz -C /usr/share/doona
ls -l /usr/share/doona/index.html

ls 輸出一行以 /usr/share/doona/index.html 結尾的內容。可選的字型封存檔 doona-fonts-${VERSION}.tar.gz 包含 8.7 MB 中文字型,儲存空間不足時可以不裝。

5. 選擇 honk-core 建置

uname -m

OpenWrt 使用 musl,因此選擇 musl 建置:

uname -m 輸出 TARGET
x86_64 x86_64-unknown-linux-musl 或 x86_64-unknown-linux-musl-stock
aarch64 aarch64-unknown-linux-musl 或 aarch64-unknown-linux-musl-stock

-stock 建置使用系統記憶體分配器而不是 mimalloc,適合記憶體比速度更重要的裝置。其他路由器 CPU(例如 MIPS 或 32 位 ARM)沒有對應的建置。

6. 下載並驗證 honk-core

把 TARGET 設為所選的建置,然後從同一個發行版本下載,並用同一個 SHA256SUMS 驗證。

TARGET=x86_64-unknown-linux-musl
curl -fL -O "$BASE/honk-core-debug-$TARGET.tar.gz"
grep " honk-core-debug-$TARGET.tar.gz\$" SHA256SUMS | sha256sum -c -

應顯示:

honk-core-debug-x86_64-unknown-linux-musl.tar.gz: OK

7. 安裝 honk-core

把二進位檔安裝為 /usr/bin/honk-core,即服務管理中的 procd 服務啟動的路徑。OpenWrt 的 BusyBox 沒有 install 命令,因此複製檔案後再設定權限。最後刪除 /tmp 中下載的檔案,釋放其佔用的記憶體。

tar -xzf honk-core-debug-$TARGET.tar.gz
cp honk-core-debug-$TARGET/honk-core /usr/bin/honk-core
chmod 0755 /usr/bin/honk-core
honk-core --version
rm -rf honk-core-debug-$TARGET honk-core-debug-$TARGET.tar.gz doona-${VERSION}.tar.gz SHA256SUMS

honk-core --version 輸出 honk 的建置版本,例如:

honk-core debug.2026.9.30.native-api.5

同一個發行版本中的 HONK-SOURCE.txt 註明其附帶的建置。

下一步:最小組態。該頁凡是提供「OpenWrt」分頁的地方,都選擇它。

系統升級時保留 honk

依服務管理建立服務後,在升級前將組態目錄和啟動指令碼加入 OpenWrt 的備份清單:

printf '%s\n' '/etc/honk/' '/etc/init.d/honk-core' >> /etc/sysupgrade.conf

系統升級不會保留核心模組、/usr/share/doona 或 /usr/bin/honk-core。升級後執行 apk update 並重新安裝模組:

apk add kmod-veth kmod-nft-queue kmod-sched-core

使用 opkg 的系統請用以下指令重新安裝模組:

opkg update && opkg install kmod-veth kmod-nft-queue kmod-sched-core

重新執行上文第 1 至 7 步,重新安裝 doona 與 honk-core,然後恢復服務的開機自動啟動並啟動服務:

/etc/init.d/honk-core enable
/etc/init.d/honk-core start

遇到問題時

看到的內容 原因與處理
curl: (22) The requested URL returned error: 404 版本號或檔名有誤。請對照發布頁面檢查 VERSION。
sha256sum: WARNING: 1 of 1 computed checksums did NOT match 下載的檔案損壞或不完整。刪除該檔案後重新下載。
sha256sum: -: no checksum lines found grep 沒有找到該檔案對應的行:目前的 shell 未設定 VERSION 或 TARGET,或其中有拼字錯誤。

若 honk 回報 persistence_unavailable 且 reason 為 unsafe,請參閱疑難排解。

安裝後遇到的問題請參閱疑難排解。

doona

doona 文件

繁體中文
doona 文件doona 是 daeuniverse 引擎共用原生 API 的靜態 Web 介面:目前對接 honk,dae 實作同一份契約後也可對接。 系統需求 在 Debian 或 Ubuntu 上安裝本頁在 Debian、Ubuntu 及其他使用 APT 的系統上,用 .deb 套件安裝 doona,並從同一個 doona 發行版本安裝 honk-core。 在 Fedora 或 RHEL 上安裝本頁在 Fedora、RHEL 及其他使用 DNF 的系統上,用 .rpm 套件安裝 doona,並從同一個 doona 發行版本安裝 honk-core。 在 Arch Linux 上安裝本頁在 Arch Linux 及其他使用 pacman 的系統上,用 .pkg.tar.zst 套件安裝 doona,並從同一個 doona 發行版本安裝 honk-core。 在 Gentoo 上安裝本頁用 Portage 從 doona 儲存庫中的 ebuild 安裝 doona,並從同一個 doona 發行版本安裝 honk-core。 在 OpenWrt 上安裝本頁在 OpenWrt 25.12 上用發行版本中的封存檔安裝 doona 與 honk-core。 在其他系統上安裝本頁在沒有 doona 套件、符合核心要求的 x86_64 或 aarch64 Linux 系統(例如 Alpine Linux)上,用發行版本中的封存檔安裝 doona 與 honk-core。 安裝詳解先安裝 honk 並撰寫組態,再安裝 doona 並啟動 honk。 最小組態本頁撰寫能啟動 honk 並提供 doona 的最小 honk 組態,然後手動啟動 honk 檢查組態。 服務管理本頁以 systemd 或 OpenWrt procd 服務的形式運作 honk:先建立一次服務,再列出啟動、停止、重新啟動、重載 honk 以及檢視日誌的命令。 首次登入本頁在瀏覽器中開啟 doona,建立管理員帳戶,並檢查 doona 是否顯示正在運作的 honk。 介面導覽本頁說明登入 doona 後各項功能的位置:四個導覽分區、頂端列,以及頁面內的分頁、詳細資料面板與操作選單。 觀測流量本頁說明「活動」分區(「活動」與「系統狀態」)及「觀測」分區(「連線」、「分流」、「DNS」、「日誌」與「事件」)。 路由、節點與規則本頁說明「路由」分區中的「策略」「節點」與「規則」三個頁面。 組態與設定本頁說明「組態」頁:在此檢視、驗證並套用 honk 的組態檔。 常見操作本頁彙整調整路由、查看流量與維護 honk 的常用步驟。 組態組態分為兩個檔案。 功能請先確認閘道器能轉送流量。 疑難排解 開發送出 pull request 前先讀 CONTRIBUTING.md。