doona
doona 可以修改什么
演示
简体中文

doona 可以修改什么

doona 通过不同的控制项修改配置源、运行时状态、持久保存的地理数据设置和浏览器偏好。关闭 experimental.native_api.config_write 会禁用配置写入,但不会禁用所有操作。

更改保存在哪里

下表中的配置源权限指 experimental.native_api.config_write: true、Token 或密码认证、可用的配置协调器,以及完整且可写的配置源。数据库配置存储被阻止写入时,也无法进行普通的配置源编辑。引入文件与主文件遵循相同的配置源规则。

即时生效表示无需重载配置。重载表示写入必须通过校验并完成激活操作。重启表示你必须在 doona 之外编辑配置,再重启 honk。

更改 条件 保存与生效方式
配置源文本:node、subscription、group、routing、dns 中除 bind 之外的字段、可重载的 global 字段,以及 assets.subscription 配置源权限、当前修订、所需的本地依赖可用 文件模式替换文件;--store db 模式保存修订。写入后重载。
添加或删除受管节点和订阅源 可写的主配置源及对应的 can_manage 能力 写入后重载。受管删除不适用于内置节点、订阅源生成的节点或引入文件中的声明。
编辑订阅声明 包含该声明的配置源完整且可写 写入配置源后重载。
组字段:policy、default、final、tolerance、idle_timeout、interrupt_connections、check_url 所属配置源可写,支持 groups.config_patch,且组的 mutable_config 包含该字段 写入后重载。支持可写的引入文件。API 将 default 和 final 分别命名为 default_member_id 和 final_outbound。
运行时 record_flows、record_logs、record_dns_log、log.level、log.buffered_records、dns_log.max_records、flows.max_flows、flows.retention_seconds API 请求获准、后端声明支持该字段、配置允许记录且值未超出限制 即时生效。不需要 config_write。重启或已接受的配置激活会重置这些覆盖值。
地理数据 URL 列表、下载路由、校验和验证、自动更新计划及重置 凭据、可用的状态数据库,以及后端声明支持的对应设置 即时生效,保存在状态数据库中。设置请求不下载或激活文件,也不需要 config_write。更新可用时,doona 在保存来源 URL 后另行启动更新。
更新地理数据文件 配置写入权限、凭据、已加载且具备路径和 URL 的资源 下载、替换文件,然后激活。见地理数据更新条件。
选择组成员、固定自动策略的成员或取消固定 后端运行中、组选择能力,以及组的 can_select 或 can_override 即时生效的运行时操作。不写入配置源,也不需要 config_write。Selector 的持久保存依赖状态缓存,且 experimental.cache_file.enabled 不能为 false。
外观、语言、布局、旗帜覆盖和探测偏好 浏览器支持及存储可用 在当前浏览器中即时生效,不修改 honk 配置。背景图片通过 IndexedDB 持久保存。

honk 启动时,启动配置中明确指定的地理数据 URL 和下载路由会替换对应的已存储覆盖值。配置源编辑若改变了解析后的原生 API 设置,就需要重启。见地理数据设置。

必须重启的设置

API 会在写入前拒绝以下实际生效值的更改。请使用外部编辑器修改,再按服务管理操作。编辑器可能显示需要重启的诊断或 listener_settings_changed;见写入被拒绝。

区块 只能通过重启生效的键
dns bind
global check_interval、tcp_check_url、tcp_check_http_method、udp_check_dns、tls_implementation、tproxy_port、tproxy_port_protect、pprof_port、so_mark_from_dae、log_level、log_file、lan_interface、wan_interface、auto_config_kernel_parameter、data_dir、store_subscribe、nfqueue_enable
experimental.native_api 所有字段,包括认证、监听器、界面、记录和写入设置
experimental.clash_api external_controller、external_ui、external_ui_download_url、external_ui_download_detour、secret、default_mode
experimental.cache_file enabled、store_dns
assets geodata.geosite、geodata.geoip、geodata.route、ui.url、ui.route,以及继承的 route,条件是更改影响了解析后的原生 API 或 Clash API 设置

健康检查比较的是实际生效的第一个 HTTP URL、请求方法,以及选定的 UDP DNS 目标。切换到 UTLS 模式或从该模式切出时,tls_implementation 需要重启。日志文件比较的是实际生效路径,包括命令行覆盖值。

重载策略也会比较内部字段 global.tproxy_mark。DAE 配置不接受此键,请勿将它加入文件。数据库模式下,修改 global.data_dir 会被拒绝并返回 listener_settings_changed;文件模式下则返回需要重启的诊断。

配置源为何只读

查看配置页的配置源标记。以下情况会使配置源只读:

  • config_write 已禁用,或 secret 与 password_auth 均未提供凭据。
  • 配置源声明了原生 API 或 Clash API 监听器的密钥。
  • 文本中含有需要掩码处理的监听器密钥值。honk 会掩码处理与密钥匹配且长度至少为八字节的值。
  • 数据库模式下,记录活动修订失败,导致存储被阻止写入。

配置源集合或写入协调器不可用时,配置操作也不可用。doona 拒绝不完整的配置源内容。写入不能引入监听器密钥、改变包含凭据的配置源集合,或修改监听器设置。

将监听器密钥放在单独的引入文件中,并在 doona 之外编辑该文件。重启 honk 后,重新打开配置页,检查其他配置源的标记。如果其他配置源含有相同的已掩码密钥值,仅拆分密钥声明仍无法解除只读。见只读配置源与写入被拒绝。

文件系统要求

可写标记并不代表文件系统允许替换文件。在文件模式下,honk 必须读取原文件,在同一目录创建并同步临时文件,将临时文件重命名以替换原文件,再同步目录。服务用户需要能够访问所在目录,并有权在其中创建和替换目录项。

配置写入会拒绝源路径中的符号链接和非普通文件。仅检查源文件是否具有写入权限位,无法判断能否写入,因为替换操作修改的是目录项。并发文件修改也可能使写入被拒绝。应用后,确认操作成功,并重新读取配置源,检查其中是否包含你的更改。

地理数据更新有单独的目标位置规则:软件包中的资源通常由数据目录中的文件替代。见地理数据位置。

已接受但没有预期即时效果的字段

字段 实际行为
global.preconnect_node_count 供启动预热使用。接受配置源编辑不会再次执行预热。重启 honk 后,启动预热才会使用新值。
global.tls_fragment、global.tls_fragment_length、global.tls_fragment_interval 为兼容性而接受并保存;此 honk 修订没有使用这些字段执行运行时分片的实现。
global.bandwidth_max_tx、global.bandwidth_max_rx 为兼容性而接受并保存;此 honk 修订没有使用这些字段执行运行时带宽限制的实现。

编辑被接受只表示操作已开始。操作状态变为 succeeded 后更改才生效,请重新读取来源确认。即使如此,兼容性字段也不会改变流量行为。

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。