在 OpenWrt 上安装
在 OpenWrt 路由器上安装 doona v0.1.0-rc.4 和 honk。所有命令均在路由器的 root shell 中执行,安装期间保持同一 shell。
从 daeuniverse 软件源快速安装
支持的 64 位 OpenWrt 或 ImmortalWrt 25.12 路由器可从 daeuniverse 软件源安装 honk,再按快速入门配置内嵌的 doona。下文是从压缩包手动安装的备选方式,适用于软件源不支持的路由器。软件源包与手动安装使用不同的服务名称和数据目录,请择一使用。
1. 检查路由器并准备工具
下载前先检查后端前提条件,包括内核、BTF、cgroup 和 CPU 要求。有对应的 doona 软件包,不代表路由器可以运行 honk。检查安装文件与下载目录所需的空间:
uname -r
uname -m
df -h / /tmpOpenWrt 25.12 使用 apk-tools 3;OpenWrt 24.10 及更早版本使用 opkg 和 ipk 软件包。官方 OpenWrt 24.10 使用 Linux 6.6,低于上文链接中 honk 的最低内核要求。安装格式匹配的 UI 软件包不能解决这一兼容性问题。
按路由器的包管理器选择命令。OpenWrt 提供 veth 模块与 NFQUEUE 模块软件包:
apk update
apk add curl ca-bundle kmod-veth kmod-nft-queueopkg update
opkg install curl ca-bundle kmod-veth kmod-nft-queue启用 NFQUEUE 但缺少必要条件时,honk 可能继续运行,同时停用 NFQUEUE staging 并输出启动警告。检查服务日志;服务启动成功不代表 NFQUEUE staging 已启用。
2. 下载并校验 doona
以下软件包安装标准版。lite 请使用手动安装中的压缩包方式,省略 sudo,然后返回第 4 步。
下载到 /tmp/doona,按固件使用的格式选择软件包。OpenWrt apk 软件包与 Alpine 软件包不同。
/tmp 使用内存,重启后会清空。下载 honk 时,必须预留同时存放压缩包与解压目录的空间。
mkdir -p /tmp/doona
cd /tmp/doona
BASE=https://github.com/Zakkaus/doona/releases/download/v0.1.0-rc.4FILE=doona-0.1.0_rc4-r1.apk
curl -fL -O "$BASE/$FILE" -O "$BASE/doona-openwrt.adb" \
-O "$BASE/doona-openwrt.pem" -O "$BASE/SHA256SUMS"
awk -v file="$FILE" '$2 == file' SHA256SUMS | sha256sum -c -
awk '$2 == "doona-openwrt.adb"' SHA256SUMS | sha256sum -c -
awk '$2 == "doona-openwrt.pem"' SHA256SUMS | sha256sum -c -FILE=doona_0.1.0-rc.4-1_all.ipk
curl -fL -O "$BASE/$FILE" -O "$BASE/SHA256SUMS"
awk -v file="$FILE" '$2 == file' SHA256SUMS | sha256sum -c -所有选定文件都显示 OK 后才能继续。如果校验失败或找不到校验和条目,先核对文件名并重新下载,再安装。
下载或执行文件出错时,见安装故障。
3. 安装软件包
使用 apk 时,安装已校验的公钥,并通过已签名的索引安装。索引与软件包文件应放在同一目录。
mkdir -p /etc/apk/keys
cp /tmp/doona/doona-openwrt.pem /etc/apk/keys/doona-openwrt.pem
apk add -X /tmp/doona/doona-openwrt.adb doonaopkg install "/tmp/doona/$FILE"没有发布公钥和索引时,可以直接安装已校验的本地 apk:
apk add --allow-untrusted "/tmp/doona/$FILE"此方式跳过签名信任检查,因此使用前必须校验软件包对应的 SHA-256 条目。
ls -l /usr/share/doona/index.html确认最后一条命令列出 index.html。在独立界面配置中使用此目录。
可选软件包
按需选择可选资源。将选定文件下载到 /tmp/doona,并像第 2 步那样使用 SHA256SUMS 中对应的条目校验。
| 软件包 | apk 文件名 | opkg 文件名 |
|---|---|---|
doona-fonts | doona-fonts-0.1.0_rc4-r1.apk | doona-fonts_0.1.0-rc.4-1_all.ipk |
doona-precompressed | doona-precompressed-0.1.0_rc4-r1.apk | doona-precompressed_0.1.0-rc.4-1_all.ipk |
使用 apk 时,将安装命令中的 doona 改为所选软件包名后执行。使用 opkg 时,将 FILE 设为所选文件名,再执行安装命令。
4. 安装 honk
在另一个下载目录中按安装 honk操作,避免后端的 SHA256SUMS 覆盖 doona 的文件。选择 musl 构建和 OpenWrt 安装标签页,将可执行文件安装到 /usr/bin/honk-core,再返回本页。
确认已安装的可执行文件正常后,使用绝对路径删除其下载压缩包和解压目录。选定的可选 UI 软件包全部安装完成后,再使用绝对路径删除 /tmp/doona 中下载的软件包、索引、公钥副本与校验和文件。保留仍需用于安装的下载文件。
5. 准备数据目录
手动安装时,须在 honk 配置中将 global.data_dir 设为 /etc/honk/data,再创建持久化目录:
mkdir -p /etc/honk/config.d /etc/honk/data
chmod 0700 /etc/honk /etc/honk/config.d /etc/honk/data仅在规则需要时下载 geodata,具体条件见 geodata 要求。采用上述目录时执行:
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也可以安装发行版提供的 v2ray geodata 软件包,替代上面的直接下载方式:
apk add v2ray-geosite v2ray-geoipopkg install v2ray-geosite v2ray-geoiphonk 会搜索 /usr/share/dae,不会直接搜索 /usr/share/v2ray。先检查 /usr/share/dae 中已有的文件或链接,仅创建缺少的链接:
mkdir -p /usr/share/dae
ln -s ../v2ray/geosite.dat /usr/share/dae/geosite.dat
ln -s ../v2ray/geoip.dat /usr/share/dae/geoip.dat已配置的数据目录中若存在同名文件,honk 会优先使用这些文件。
请使用服务管理中的 OpenWrt 服务,而非软件源服务。
在 sysupgrade 后保留配置
执行保留配置的普通 sysupgrade 前,将尚未列出的以下路径加入 /etc/sysupgrade.conf,再检查备份清单:
printf '%s\n' '/etc/honk/' '/etc/init.d/honk-core' >> /etc/sysupgrade.conf
sysupgrade -l确认清单包含 honk 配置、数据文件与 init 脚本。这份配置备份不会恢复已安装的内核模块、/usr/bin/honk-core 或 /usr/share/doona。
升级后重复第 1–4 步,重新安装工具、内核模块、UI 软件包和 honk 可执行文件。若选用发行版的 geodata 软件包,再按第 5 步重装并重新创建链接。保留已恢复的配置与数据,再启用并启动服务。
来源:doona 上游文档,采用 CC BY 4.0 许可证。
