doona
服务管理
演示
简体中文

服务管理

本页把 honk 作为 systemd 或 OpenWrt procd 服务运行:先创建一次服务,再列出启动、停止、重启、重载 honk 以及查看日志的命令。本页不含 OpenRC 步骤。请先完成最小配置。

doona 的软件包都不安装 honk 服务,honk 的发行归档文件中也没有服务文件,因此第 1 步需要自行创建。

系统 服务管理器 使用的标签页
Debian、Ubuntu、Fedora、RHEL、Arch Linux、使用 systemd 的 Gentoo systemd “sudo”或“root”
OpenWrt procd “OpenWrt”
使用 OpenRC 的 Gentoo 或 Alpine OpenRC 不在本页范围内:见下文 OpenRC 一节

OpenRC

doona 与 honk 都不提供 OpenRC 脚本。如需完成首次登录,用最小配置第 6 步的命令在前台启动 honk:

sudo

sudo /usr/local/bin/honk-core --config /etc/honk/config.dae

root

/usr/local/bin/honk-core --config /etc/honk/config.dae

honk 持续运行,直到按下 Ctrl+C 或关闭终端,日志直接输出到该终端。honk 不会随开机启动。本页其余内容只适用于 systemd 与 procd。

1. 创建服务

此步只需执行一次。systemd 单元与 honk 快速入门给出的相同;procd 脚本以 OpenWrt 的路径启动同一条命令。

sudo

sudo tee /etc/systemd/system/honk-core.service > /dev/null <<'EOF'
[Unit]
Description=honk transparent proxy engine
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
User=root
WorkingDirectory=/var/lib/honk
ExecStart=/usr/local/bin/honk-core --config /etc/honk/config.dae --disable-timestamp
ExecReload=/usr/local/bin/honk-core reload
Restart=on-failure
RestartSec=2s
TimeoutStopSec=30s
LimitNOFILE=1048576
LimitMEMLOCK=infinity
UMask=0077

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload

root

cat > /etc/systemd/system/honk-core.service <<'EOF'
[Unit]
Description=honk transparent proxy engine
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
User=root
WorkingDirectory=/var/lib/honk
ExecStart=/usr/local/bin/honk-core --config /etc/honk/config.dae --disable-timestamp
ExecReload=/usr/local/bin/honk-core reload
Restart=on-failure
RestartSec=2s
TimeoutStopSec=30s
LimitNOFILE=1048576
LimitMEMLOCK=infinity
UMask=0077

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload

OpenWrt

cat > /etc/init.d/honk-core <<'EOF'
#!/bin/sh /etc/rc.common

START=99
STOP=10
USE_PROCD=1

start_service() {
	procd_open_instance
	procd_set_param command /usr/bin/honk-core --config /etc/honk/config.dae --data-dir /etc/honk/data --disable-timestamp
	procd_set_param limits nofile="1048576 1048576"
	procd_set_param env MIMALLOC_PURGE_DELAY=0
	procd_set_param respawn
	procd_set_param stdout 1
	procd_set_param stderr 1
	procd_close_instance
}

reload_service() {
	/usr/bin/honk-core reload
}
EOF
chmod 0755 /etc/init.d/honk-core

不要在单元中加入 NoNewPrivileges=yes、能力限制或只读的 /proc/sys:honk 启动时需要 BPF、网络管理、命名空间、挂载与 sysctl 权限。

在 OpenWrt 上使用 mimalloc 构建时,请保留上述 procd 脚本中的 MIMALLOC_PURGE_DELAY=0,让已释放的内存及时归还系统。使用系统分配器的构建不使用此设置。

2. 启动 honk 并设为开机启动

sudo

sudo systemctl enable --now honk-core

root

systemctl enable --now honk-core

OpenWrt

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

systemd 输出 Created symlink '/etc/systemd/system/multi-user.target.wants/honk-core.service' → '/etc/systemd/system/honk-core.service'.。honk 报告就绪后,命令才返回。

3. 检查 honk 是否在运行

sudo

sudo systemctl status honk-core

root

systemctl status honk-core

OpenWrt

/etc/init.d/honk-core status

正在运行的 honk 如下所示。Debian 13 上的 systemd:

● honk-core.service - honk transparent proxy engine
     Loaded: loaded (/etc/systemd/system/honk-core.service; enabled; preset: enabled)
     Active: active (running) since …

procd 输出 running;停止后输出 inactive。

日志中也会出现 honk-core is running. Press Ctrl+C to stop.;把地址换成你的地址后执行 curl http://192.168.1.1:9527/api,返回内容与最小配置第 5 步相同。

API 可访问不代表透明分流正常。请在「系统状态」检查数据路径降级情况,并从局域网客户端测试流量。

查看日志

sudo

sudo journalctl -u honk-core -e

root

journalctl -u honk-core -e

OpenWrt

logread -e honk-core

如需持续显示新写入的日志:

sudo

sudo journalctl -u honk-core -f

root

journalctl -u honk-core -f

OpenWrt

logread -f -e honk-core

按 Ctrl+C 结束。systemd 日志中也保留了之前几次启动的内容,请从最后一行 starting 开始阅读。

重载配置

修改 .dae 文件后重载 honk。重载会重新读取配置,不停止 honk。

sudo

sudo systemctl reload honk-core

root

systemctl reload honk-core

OpenWrt

/etc/init.d/honk-core reload

日志先显示 SIGHUP reload request 1 started,随后显示 applied,或显示 rejected 与 reload rejected: changed fields require process restart fields=[…]。其中列出的字段需要重启才能生效,包括 native_api 下的全部字段、log_level 与各接口。doona 的“配置”页保存后会自动重载。

重启

重启会停止 honk 并再次启动。

sudo

sudo systemctl restart honk-core

root

systemctl restart honk-core

OpenWrt

/etc/init.d/honk-core restart

停止

sudo

sudo systemctl stop honk-core

root

systemctl stop honk-core

OpenWrt

/etc/init.d/honk-core stop

honk 保持停止,直到下次启动或开机。

取消开机启动

sudo

sudo systemctl disable honk-core

root

systemctl disable honk-core

OpenWrt

/etc/init.d/honk-core disable

下一步:首次登录。

遇到问题时

看到的内容 原因与处理
Active: failed 或 activating (auto-restart) honk 在启动阶段退出。日志中以 fatal error, shutting down: 开头的一行给出原因;常见原因见最小配置。
systemd 找不到 honk-core.service 跳过了第 1 步,或第 1 步之后没有执行 systemctl daemon-reload。
重载时出现 Error: no running honk-core instance; /run/honk-core.lock does not exist honk 没有运行,或以 --mock-ebpf 运行(这种方式不持有锁)。请启动服务,而不是重载。
重载后修改没有生效 日志中显示 reload rejected。请改为重启。

更多报错信息见故障排查。

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。