doona
在 OpenWrt 上安装
演示
简体中文

在 OpenWrt 上安装

在 OpenWrt 25.12 上,从发布软件包或归档安装 doona,并从同一个发布版本安装 honk-core。之后继续阅读最小配置。

说明

从发布页下载 beta.19 附件。

OpenWrt 25.12 使用 apk-tools 3;24.10 及更早版本使用 opkg 与 .ipk 文件。Alpine 的 apk 软件包不能用于 OpenWrt。官方 24.10 使用 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 身份执行。
  • / 上须有足够空间存放 honk-core、解压后的 doona 文件、地理数据与状态数据库。/tmp 须能同时存放下载文件与解压后的 honk-core 归档内容。用 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 对照系统要求确认内核版本。

安装 lite 时,请先完成上方的内核模块准备,并安装 curl 与 CA 证书,再直接前往4. 安装 doona,选择 doona lite 标签页。此前的标准版软件包、下载与校验步骤均可跳过。

软件包安装方式

doona lite 暂无发行版软件包,请使用 lite 压缩包安装步骤。以下软件包命令安装标准版。

在 root shell 中把软件包下载到 /tmp/doona,选择适合当前软件包管理器的命令。两种方式都将网页文件安装到 /usr/share/doona。

OpenWrt 25.12 只签名索引,不签名单个软件包。将 doona-openwrt.adb 与软件包放在同一目录,安装公钥后通过索引安装:

apk update
apk add curl ca-bundle
mkdir -p /tmp/doona
cd /tmp/doona
VERSION=0.1.0-beta.19
APKVER=0.1.0_beta19
BASE=https://github.com/Zakkaus/doona/releases/download/v$VERSION
curl -fL -O "$BASE/doona-${APKVER}-r1.apk" \
  -O "$BASE/doona-precompressed-${APKVER}-r1.apk" \
  -O "$BASE/doona-openwrt.adb" -O "$BASE/doona-openwrt.pem" -O "$BASE/SHA256SUMS"
grep -E " (doona(-precompressed)?-${APKVER}-r1.apk|doona-openwrt.adb|doona-openwrt.pem)\$" SHA256SUMS | sha256sum -c -
cp doona-openwrt.pem /etc/apk/keys/
apk add -X /tmp/doona/doona-openwrt.adb doona doona-precompressed
ls -l /usr/share/doona/index.html

OpenWrt 24.10 及更早版本使用 ipk 软件包。honk 仍要求内核至少为 6.12,此方式需要符合要求的固件:

opkg update
opkg install curl ca-bundle
mkdir -p /tmp/doona
cd /tmp/doona
VERSION=0.1.0-beta.19
BASE=https://github.com/Zakkaus/doona/releases/download/v$VERSION
curl -fL -O "$BASE/doona_${VERSION}-1_all.ipk" \
  -O "$BASE/doona-precompressed_${VERSION}-1_all.ipk" -O "$BASE/SHA256SUMS"
grep -E " doona(-precompressed)?_${VERSION}-1_all.ipk\$" SHA256SUMS | sha256sum -c -
opkg install doona_${VERSION}-1_all.ipk doona-precompressed_${VERSION}-1_all.ipk
ls -l /usr/share/doona/index.html

ls 须列出 /usr/share/doona/index.html。可选的 doona-precompressed 加入 .br 与 .gz 副本供服务器发送预压缩响应,约占 1.6 MB 存储空间,不需要时可省略。doona-fonts 也是可选软件包。每次发布都提供新签名公钥。没有 OpenWrt 公钥与索引时,直接安装 apk 须用 apk add --allow-untrusted ./doona-${APKVER}-r1.apk。

安装软件包后,从第 5 步继续安装 honk-core。下方第 1–4 步是归档安装方式。

1. 安装 curl 与 CA 证书

honk 使用系统 CA 证书校验通过 HTTPS 下载的订阅与地理数据。安装 curl 与 ca-bundle:

apk update
apk add curl ca-bundle

2. 下载 doona

在 /tmp 中操作。/tmp 位于内存中,重启后清空。设置发布版本号,然后下载归档文件与校验和文件。

cd /tmp
VERSION=0.1.0-beta.19
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.19.tar.gz: OK

4. 安装 doona

设置 ui: embedded 时,doona beta.19 的 honk debug.2026.10.9.native-api.2 附件(提交 eac5e0c5fba5078a7ff4517a3e3851e7fa0f4f8e)提供内置的 doona 0.1.0-beta.19,无需单独安装界面软件包。也可以设置 ui: /usr/share/doona,提供此处安装的 beta.19 文件,详见最小配置。

把归档文件解压到 /usr/share/doona,honk 从这个目录提供 doona。

doona lite 使用压缩包,暂不提供发行版软件包。请按安装 doona lite操作,设置 ui: /usr/share/doona-lite,然后继续本页的 honk 步骤。选择所需版本与 shell 对应的标签页。

标准版

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

doona lite

VERSION=0.1.0-beta.19
BASE=https://github.com/Zakkaus/doona/releases/download/v$VERSION
curl -fL -O "$BASE/doona-lite-${VERSION}.tar.gz" -O "$BASE/SHA256SUMS"
grep " doona-lite-${VERSION}.tar.gz\$" SHA256SUMS | sha256sum -c -
mkdir -p /usr/share/doona-lite
tar -xzf "doona-lite-${VERSION}.tar.gz" -C /usr/share/doona-lite
ls -l /usr/share/doona-lite/index.html

安装 lite 后,ls 须列出 /usr/share/doona-lite/index.html。请继续5. 选择 honk-core 构建,跳过下方的标准版结果说明与可选软件包。在最小配置中,将 ui 设为 /usr/share/doona-lite。

以下为标准版的结果与可选组件:

ls 输出一行以 /usr/share/doona/index.html 结尾的内容。可选的字体归档文件 doona-fonts-${VERSION}.tar.gz 包含 Noto Sans TC 与 SC 字体,存储空间不足时可以不装。

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.10.9.native-api.2

同一个发布版本中的 HONK-SOURCE.txt 记录 honk 构建,并提供 honk 源码与对应 doona 源码的链接。

8. 安装地理数据

使用 geosite: 或 geoip: 的分流方式与规则分别需要 geosite.dat 或 geoip.dat。首次启动前,创建目录并下载两个文件:

mkdir -p /etc/honk/config.d /etc/honk/data
chmod 0700 /etc/honk /etc/honk/config.d /etc/honk/data
curl -fL --retry 3 -o /etc/honk/data/geosite.dat \
  https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/release/geosite.dat
curl -fL --retry 3 -o /etc/honk/data/geoip.dat \
  https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/release/geoip.dat

最小配置中的 OpenWrt 配置将 data_dir 设为 /etc/honk/data,重启后仍会保留。请保留此设置:/var 位于内存中,默认目录 /var/lib/honk 中的文件会在重启后丢失。

登录后,可在设置 → 地理数据 → 立即更新中更新 honk 已加载的文件,替换文件会写入 data_dir。此方式要求文件已安装并加载;若缺少任一文件,请先用 curl 下载,再重启 honk。

也可用 apk 或 opkg 安装 v2ray-geosite 与 v2ray-geoip,并确保 /usr/share/dae/geosite.dat 与 /usr/share/dae/geoip.dat 分别链接到 ../v2ray/geosite.dat 与 ../v2ray/geoip.dat。honk 会搜索 /usr/share/dae,不会直接搜索 /usr/share/v2ray。

下一步:最小配置。该页凡是提供“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 文档首次启动若只使用直连,请按快速入门操作。 快速入门使用仅直连的 honk 配置启动 doona 标准版,登录后验证网关本机的流量。 标准版与 doona lite标准版用于管理配置与观测流量。 系统要求 在 Debian 或 Ubuntu 上安装在 Debian、Ubuntu 或其他使用 APT 的系统上,从 doona-web .deb 软件包安装 doona,并从同一个发布版本安装 honk-core。 在 Fedora 或 RHEL 上安装在 Fedora、RHEL 或其他使用 DNF 的系统上,从 .rpm 软件包安装 doona,并从同一个发布版本安装 honk-core。 在 Arch Linux 上安装在 Arch Linux 或其他使用 pacman 的系统上,从 .pkg.tar.zst 软件包安装 doona,并从同一个发布版本安装 honk-core。 在 Gentoo 上安装在本地 ebuild 仓库中,用 Portage 从 doona 的 ebuild 安装 doona,并从同一个发布版本安装 honk-core。 在 OpenWrt 上安装在 OpenWrt 25.12 上,从发布软件包或归档安装 doona,并从同一个发布版本安装 honk-core。 在其他系统上安装在符合以下内核要求的 x86_64 或 aarch64 Linux 系统上,从发布归档安装 doona 与 honk-core。 安装详解先安装 honk 并编写配置,再安装 doona 并启动 honk。 最小配置本页编写能启动 honk 并提供 doona 的最小 honk 配置,然后手动启动 honk 检查配置。 服务管理本页把 honk 作为 systemd 或 OpenWrt procd 服务运行:先创建一次服务,再列出启动、停止、重启、重载 honk 以及查看日志的命令。 为第一条连接设置路由从快速启动继续,保持 honk 运行并以管理员身份登录。 首次登录本页在浏览器中打开 doona,创建管理员账户,并检查 doona 是否显示正在运行的 honk。 界面导览用导航打开页面,用顶部栏搜索或刷新,用标签页切换视图。 观测流量用「活动」与「系统状态」查看引擎健康,用「连接」「分流」与「DNS」检查流量。 路由、节点与规则策略管理组选择与成员。 配置与设置「配置」页读取、校验并应用 honk 的配置文件。 常见操作本页介绍标准版;doona lite 请参阅 doona lite。 功能各项功能的前提条件与操作被禁用的原因,见功能启用条件。 doona litedoona lite 为初学者提供较小的界面,用于编辑 honk 配置。 连接 doona lite将 doona lite 连接到 honk 原生 API,或在没有后端时打开演示。 doona lite 常见操作使用 doona lite 导入资源并编辑 honk 配置。 配置参考本页列出 doona 涉及的 honk DAE 设置、默认值及生效方式。 doona 可以修改什么doona 通过不同的控制项修改配置源、运行时状态、持久保存的地理数据设置和浏览器偏好。 功能启用条件在表中找到你要使用的标准版功能,再按对应章节检查前提并启用。 故障排查 开发提交 pull request 前先读 CONTRIBUTING.md。