跳转到正文

在 OpenWrt 上安装 dae 或 honk ​

在 OpenWrt 25.12 及以上版本安装 eBPF 透明代理引擎 dae 或 honk。honk 内置 doona 网页界面。用 LuCI 应用在 OpenWrt 中管理服务。本软件源提供 apk 软件包。

支持的版本 ​

版本内核状态
25.126.12支持 OpenWrt 和 ImmortalWrt。
24.106.6不支持:opkg 没有软件源标签,本软件源会替换同名软件包。ImmortalWrt 已自带 dae。honk 需要内核 6.12 以上。
23.05 及更早≤ 5.15不支持:内核版本低于 dae 和 honk 的要求(dae 需要 5.17 以上)。

在路由器上以 root 身份查询版本、软件包架构和 target:

sh
. /etc/openwrt_release
echo $DISTRIB_RELEASE $DISTRIB_ARCH $DISTRIB_TARGET

可用的软件包架构如下。ImmortalWrt 只需架构相符。本软件源不提供 32 位 ARM 或 MIPS 的软件包,也不支持这些架构:

OpenWrt target 与 BTF ​

官方 OpenWrt 内核不含 BTF,即 dae 和 honk 所需的内核类型信息。对于官方 OpenWrt,本软件源仅支持下表列出的 target 和版本,并需要安装 vmlinux-btf。内核自带 BTF 时(ImmortalWrt),改用空软件包 vmlinux-btf-builtin。

版本:25.12.6

Target
armsr/armv8
bcm27xx/bcm2710
bcm27xx/bcm2711
bcm27xx/bcm2712
bcm4908/generic
imx/cortexa53
layerscape/armv8_64b
mediatek/filogic
mediatek/mt7622
microchipsw/lan969x
mvebu/cortexa53
mvebu/cortexa72
qualcommax/ipq50xx
qualcommax/ipq60xx
qualcommax/ipq807x
rockchip/armv8
sunxi/cortexa53
x86/64

安装 ​

导入签名公钥 ​

sh
wget -O /etc/apk/keys/daeuniverse.pem \
    https://openwrt.daeuniverse.org/public-key.pem

添加软件源 ​

sh
. /etc/openwrt_release
FEED=https://openwrt.daeuniverse.org/$(echo "$DISTRIB_RELEASE" | cut -d. -f1-2)
cat > /etc/apk/repositories.d/daeuniverse.list <<EOF
@daeuniverse $FEED/packages/$DISTRIB_ARCH/packages.adb
@daeuniverse $FEED/kmods/$DISTRIB_RELEASE/$DISTRIB_TARGET/packages.adb
EOF
apk update
sh
. /etc/openwrt_release
FEED=https://openwrt.daeuniverse.org/$(echo "$DISTRIB_RELEASE" | cut -d. -f1-2)
cat > /etc/apk/repositories.d/daeuniverse.list <<EOF
@daeuniverse $FEED/packages/$DISTRIB_ARCH/packages.adb
EOF
apk update

@daeuniverse 标签指定从本软件源安装软件包。不带标签时,apk 优先使用系统软件包。

安装软件包 ​

sh
apk add dae@daeuniverse luci-app-dae@daeuniverse \
    luci-i18n-daeuniverse-zh-cn@daeuniverse
sh
apk add honk@daeuniverse luci-app-honk@daeuniverse \
    luci-i18n-daeuniverse-zh-cn@daeuniverse

不使用 LuCI 时,省略 luci- 开头的软件包。

启用服务 ​

dae 和 honk 不能同时运行。通过命令行切换服务前,先停止并禁用当前服务。启用服务前,按网络环境修改 /etc/dae/config.dae。然后在 LuCI 的服务 → dae 中启用服务,或在路由器上执行以下命令:

dae 和 honk 不能同时运行。通过命令行切换服务前,先停止并禁用当前服务。默认的 /etc/honk/config.dae 使用 LAN 接口 br-lan;如果 LAN 设备不同,请先修改。初始配置让所有流量直连。登录 doona 后,添加代理节点或订阅,并配置路由规则。然后在 LuCI 的服务 → honk 中启用服务,或在路由器上执行以下命令:

sh
uci set dae.config.enabled=1
uci commit dae
/etc/init.d/dae enable
/etc/init.d/dae start
sh
uci set honk.config.enabled=1
uci commit honk
/etc/init.d/honk enable
/etc/init.d/honk start

配置语法见 dae 文档。

配置语法见 honk 文档。要打开 doona,在局域网内的电脑上访问 http://<路由器 LAN IP>:9527/,例如 http://192.168.1.1:9527/。请使用 IP 地址,honk 会拒绝 openwrt.lan 等主机名。首次访问时创建管理员账户,再登录编辑配置。与 LuCI 相同,该页面在局域网内使用明文 HTTP;OpenWrt 默认防火墙不会在 WAN 侧开放该端口。界面操作见 doona 文档。界面问题请向 doona 反馈,引擎问题请向 honk 反馈。

升级 ​

在路由器上执行以下命令,命令中只写已安装的软件包。也可在 LuCI 的服务 → dae 中点击检查更新后再点击升级,或使用系统 → 软件包中的更新页。服务页面可选择软件包,实时显示后台升级输出,并在 rpcd 重新加载后恢复连接。重新打开页面可查看正在运行的任务;升级成功后点击关闭会重新加载页面。软件源刷新失败时显示警告,仍会列出可用更新。

在路由器上执行以下命令,命令中只写已安装的软件包。也可在 LuCI 的服务 → honk 中点击检查更新后再点击升级,或使用系统 → 软件包中的更新页。服务页面可选择软件包,实时显示后台升级输出,并在 rpcd 重新加载后恢复连接。重新打开页面可查看正在运行的任务;升级成功后点击关闭会重新加载页面。软件源刷新失败时显示警告,仍会列出可用更新。

sh
apk update
apk upgrade dae luci-app-dae v2ray-geoip v2ray-geosite
sh
apk update
apk upgrade honk luci-app-honk v2ray-geoip v2ray-geosite

升级会保留配置文件;软件包默认配置有变化时,新版本会以 .apk-new 文件保存在已修改的配置文件旁。用下载的软件包安装后,如果 apk 报告 breaks: world[…],或对话框提示所选软件包未升级并显示 apk add …@daeuniverse 命令,请参阅本地软件包锁定说明。

常见错误 ​

UNTRUSTED signature ​

路由器需要本软件源的公钥才能验证软件包。完成导入签名公钥这一步,再执行 apk update。

This kernel has no BTF of its own ​

OpenWrt 路由器缺少 kmods 软件源,所以 apk 安装了 vmlinux-btf-builtin,而不是 vmlinux-btf。按添加软件源步骤添加 OpenWrt 的两行软件源,再执行 apk update && apk upgrade vmlinux-btf-builtin。如果上表没有路由器的 target,本软件源就没有对应的 vmlinux-btf,dae 和 honk 无法在这台路由器上运行。

breaks: vmlinux-btf ​

所选 vmlinux-btf 软件包与已安装的内核不匹配。使用官方 OpenWrt 正式版时,检查 kmods 地址是否与 DISTRIB_RELEASE 和 DISTRIB_TARGET 一致。如果 /sys/kernel/btf/vmlinux 存在,删除 /etc/apk/repositories.d/daeuniverse.list 中含 kmods 的那一行,执行 apk update 后重新安装。未内置 BTF 的自编译或快照版内核需要为该内核生成的 BTF;删除软件源不能补齐 BTF。

breaks: world[honk><Q1…] ​

honk(或 dae)是用下载的 .apk 文件安装的,会锁定为该文件;本软件源出现其他版本后,任何 apk add 都会失败,即使安装的是无关工具。执行 apk add honk@daeuniverse(或 dae@daeuniverse)改为跟随本软件源,其他软件包可写在同一条命令中。


来源:openwrt-packages 软件源页面。