跳转到正文

管理节点、策略组和规则 ​

在标准版的路由分区中添加节点来源、设置组的节点选择方式,并决定哪些流量使用这些节点。完整操作示例见首次连接教程。

任务页面开始前检查
添加或编辑订阅、节点节点节点管理
更新订阅节点订阅更新
选择成员或固定自动组的成员策略成员选择
修改成员范围或组设置策略编辑组
测试节点或组节点或策略延迟探测
应用模板或编辑规则规则规则与模板
为常用服务添加规则服务规则规则与模板
模拟路由结果追踪模拟路由追踪

更改何时生效,见 doona 能修改什么。控件不可用时,打开其旁的帮助查看具体原因。

添加和维护节点 ​

打开节点。选择来源卡片后,查看其节点;通过表格的搜索和筛选查找节点。延迟标签页用于比较已有的测量结果。

搜索节点 搜索所有来源,组 和 协议 可筛选表格。协议后会显示后端报告的流传输方式,协议筛选仍按协议匹配。

来源卡片显示类型、状态、节点数、更新时间、到期时间和用量;后端报告配额时还会显示用量条。到期时间显示到分钟,悬停提示显示秒。方向键可在卡片间移动。尚未获取 表示尚未成功获取且没有报告错误;过期数据 表示保留的数据需要更新。空文件来源仍会显示其状态。

延迟 显示最低、最高延迟和不可用节点数。可比较 当前延迟,以及后端报告的 移动平均 和 近 10 次平均。分组方式 按组或协议汇总,并列出不可用或未测量节点。选择图表中的节点会在 节点 中打开。

添加订阅 ​

  1. 点击添加订阅。
  2. 填写名称和订阅网址。如果提供自动更新、User-Agent和缓存订阅内容,检查这些选项。
  3. 点击添加。支持订阅更新时,doona 会获取新来源并报告节点数量。如果获取失败,使用通知中的重试。
  4. 选择来源卡片,检查节点后再创建组。

订阅 URL 必须使用 HTTP 或 HTTPS。未填写协议的 URL 会在字段失去焦点或保存时补上 https://。无效 URL 和节点链接的原因会显示在字段下方。

添加节点链接 ​

  1. 点击粘贴节点链接。
  2. 只有一个链接时,填写名称和节点链接。有多个链接时,每行粘贴一个,再检查解析出的名称和错误。
  3. 确认添加并检查结果。部分链接失败时,对话框会保留这些链接供你修正。

honk 支持 Trojan、VMess 和 VLESS 链接使用 XHTTP over H2。xhttp 和 splithttp 均选择此传输方式,支持 auto、packet-up、stream-up 和 stream-one 模式。可用选项与限制见 honk XHTTP 参考。

更新或编辑订阅 ​

  1. 使用来源卡片的更新操作立即获取订阅。页面上的订阅更新按钮会更新全部订阅。
  2. 要修改网址或选项,使用卡片的编辑操作。修改提供的字段后,点击应用。如果卡片提供的是打开配置文件,则在那里编辑声明。
  3. 用自动更新选择间隔。选择自定义时,填写间隔和单位。
  4. 如果提供下载路由,选择获取订阅时使用的路由。此选项不决定经由订阅节点的流量所用路由。

更新失败会保留上次成功加载的节点。若下载路由没有可用节点,更新会失败,不会回退到直连。例如,订阅通过自身提供的节点下载,但这些节点尚未加载时,就会出现此情况。

清空 User-Agent 会移除 ua,改用引擎默认值。条目设置了 cache 或后端报告缓存默认值时,才会显示 缓存订阅内容。选择 按路由规则 会移除显式 route,其他选项保留原文。

重命名可同步更新同一文件中的简单 subtag(...) 过滤条件。保持更新开关开启,可保留这些组的成员关系。其他文件或表达式中的引用会阻止重命名。

自定义 自动更新间隔的 间隔 必须为非负整数,并需选择 单位。

如果组筛选条件阻止重命名,按对话框中的链接前往策略,先修改这些筛选条件。下载失败时,检查订阅更新条件。

编辑或移除节点来源 ​

通过来源卡片的更多操作菜单移除来源,再检查确认提示。如果仍有组引用该订阅,对话框会列出这些组;须先修改其筛选条件。

对于配置中声明的节点,使用节点行提供的编辑或移除操作。如果声明位于引入文件且无法移除,在配置中打开该文件。

勾选节点行的复选框,可一次处理多个节点。每一行都能勾选,包括订阅与 include 文件中的节点。有选中项时,测试全部会变成测试所选(N),只测试选中的节点。**移除所选(N)**只计入主配置中可移除的手动节点,订阅与 include 文件中的节点不会被移除。确认一次后逐个移除并显示进度;关闭对话框会停止其余移除,移除失败的节点保持选中。Ctrl A 或 ⌘A 全选列出的节点,Shift 加 ↑ 或 ↓ 扩展选择,Esc 清除选择。切换来源、搜索或筛选条件时,选择会清除。

重命名配置内的节点时,会同步更新同一来源中精确匹配节点名的过滤条件、默认成员、最终出站及 DNS 上游的绕行目标。其他来源中的引用会阻止重命名。

加入组会打开组编辑器,并将节点加入草稿;点击应用才会保存。选择器列出可写主文件及 include 文件中的组,并支持搜索。即使运行时组 API 不可用,只要配置可读,仍可编辑组。

选择和编辑策略组 ​

打开策略。每张卡片代表一个组;展开折叠的卡片即可查看成员。卡片显示所选成员和后端报告的成员健康状态。

全部、手动选择 和 自动选择 按选择类型筛选组并显示数量。筛选条件保存在 URL 中;打开被隐藏的组会切回 全部。卡片显示策略及可用、不可用、未测试的数量。超过 12 个成员的组提供 筛选节点、地区、排序 和 只显示可用节点。自动组初始折叠;固定选择的组或通过链接打开的组会自动展开。

嵌套组显示父组对它测得的延迟;若没有此样本,则显示其当前选择最终指向节点的延迟。

选择成员 ​

  1. 如果卡片提供两者、TCP和UDP,先选择要修改的网络协议。
  2. 选择成员。手动组会选择该成员;允许覆盖的自动组会将其固定,并显示已手动固定。
  3. 要取消固定,在更多操作中选择恢复自动选择。卡片展开时,此操作遵循所选网络协议;自动组卡片折叠时,会清除两种协议的固定状态。

重启后是否保留选择,见持久保存条件。

创建或编辑组 ​

  1. 点击新建组,或点击卡片的铅笔按钮编辑该组。
  2. 新建组须填写组名称,然后选择选择方式。
  3. 选择要包含的地区、订阅、节点或嵌套组。保存前检查匹配的节点。空筛选条件会包含所有节点。
  4. 成员选项不能表达的条件,通过添加筛选补充。同一筛选中的条件须全部匹配;添加 OR 匹配用于增加另一种匹配方式。
  5. 检查提供的默认成员、最终出站和切换时中断连接的开关。默认成员用于手动选择的初始状态;没有可用成员时使用最终出站。
  6. 新建组点击创建,编辑组点击应用,随后检查结果。取消会在必要的放弃确认后丢弃草稿。

移除显式选择的成员后,如果该节点仍匹配其他筛选条件,就不会被排除;须同时修改对应条件。字段无法修改时,参阅组编辑条件。

默认成员 只在手动选择策略下显示,列出直接成员。改用自动策略不会清除已保存的 default。最终出站 可选 direct、block、组和节点,但不包含会形成循环引用的组。选择 无 会移除对应的 default 或 final 设置。

切换时中断现有连接 控制切换成员时是否关闭现有连接。在 编辑组 中修改后需点 应用;在 查看配置 中切换则立即写入。

配置冲突后重试会保留未编辑字段的新值。双方修改同一字段或组被重命名时,需重新打开编辑器。若组已在别处删除,编辑器会保持打开并提示更改未保存。

展开 地区 可选择地区,已选标签会保持显示。添加筛选 支持名称和 subtag 匹配,自定义表达式仍可作为文本编辑。子组 和 节点 选择器滚动选项时,搜索框保持固定。

测试成员或修改后台检查 ​

使用组的 更多操作 → 测试全部 或节点测试按钮,按手动探测偏好测试。选择 按选项探测… 可调整本次测试。操作不可用时,查看探测要求。

在节点页,工具栏的测试全部会测试列出的节点。

探测超时、取消、无可用地址或本地拒绝可能使结果为 unknown;这不能证明节点不可用。Trojan、AnyTLS 和 VLESS 仍提供 DNS UDP 探测选项,是否支持取决于节点配置。后端拒绝探测时会显示原因,不会自动改用 HTTP。

要修改组的后台检查,选择更多操作 → 检测设置,修改提供的字段后点击应用。后台检查与手动测试分开设置。

检查字段留空会清除组的覆盖值,改用全局值或默认值。发生冲突后,未编辑的字段会采用后端新值;双方都改过的字段保留草稿,并在旁边显示后端值。再次应用会用草稿覆盖该值。

应用路由模板 ​

打开规则 → 路由规则。显示视图切换时,简易用于模板,高级用于规则列表。应用前先检查规则与模板条件。

即使规则 API 不可用,仍可从可读配置查看模板。简易 是默认视图;链接指定规则、预填新规则或查看暂存规则时除外。自定义路由或分布在多个文件中的路由不会选中任何模板。

  • 分流方式提供绕过中国大陆、只代理 GFW 名单和全局代理。
  • 更多模板提供单一代理组、按服务分组、按服务与地区分组和回国。
  • 回国将中国大陆域名及 IP 发往 cn 组。该组按节点名称匹配成员时排除香港、澳门和台湾,其余流量直连。
  1. 选择分流方式,或打开更多模板。检查模板说明和选项。
  2. 点击应用,打开确认对话框。
  3. 检查目标文件、将创建或复用的组,以及文件差异。模板会替换目标文件的顶层路由规则。替换时移除的路由引入语句不再引入原有规则,但被引入的文件仍保留在磁盘上。
  4. 如果提供同时加入 DNS 路由,决定是否加入建议的 DNS 配置。
  5. 点击应用确认,随后检查结果。校验失败时,先修正报告的问题再应用。

已有组会保留原设置。确认前须检查复用组或组名与节点名冲突的警告。

模板选项默认值与效果
屏蔽广告默认关闭;开启后拦截 geosite:category-ads-all。
屏蔽 QUIC默认开启,拦截 UDP 443 端口。honk 在路由前标记自身套接字,因此不会拦截其与 QUIC 节点的连接。
NetworkManager 直连默认开启,将 NetworkManager 流量直连。

路由中没有任何规则时才使用上述默认值。其他情况下,各选项的初始状态取决于路由现有内容:匹配模板时沿用该模板的选择;自定义路由则按其是否已包含广告、QUIC 或 NetworkManager 规则决定。因此应用模板会保留这些规则,除非关闭对应选项。

所有已加载文件都没有 dns 块时,才会显示 同时加入 DNS 路由,且默认勾选。它将 geosite:cn 查询通过 UDP 发往 223.5.5.5:53 的 alidns,其余查询通过 DNS over TLS 发往 1.1.1.1:853 的 cloudflare。

警告会指出只选择单个精确节点或使用 fixed 策略的现有组。若新组与节点同名,使用该名称的规则会指向组,而不是节点。

目标为包含顶层 routing 的文件;若不存在,则使用主文件。缺少的组会在目标文件中创建。现有 DNS 路由、其他内容及其他文件保持不变。新组标签使用界面语言,地区标签带国旗。

新建服务规则 ​

规则 → 路由规则工具栏中的新建服务规则会为每个服务添加一条规则,例如 domain(geosite:netflix) -> proxy,并保留现有规则。

  1. 点击新建服务规则,再选择所有选中服务共用的出站。
  2. 在游戏、影音、社群与通讯、AI 和开发与平台中选中服务。
  3. 点击应用写入规则并重载,或点击暂存加入暂存规则。

路由规则或暂存规则已使用某服务的分类时,该服务无法选中,并显示已有规则;已加载的地理数据不含该分类时,则显示当前的地理数据未包含此分类。

规则写入包含 fallback 的文件,位于 fallback 之前。因为第一条匹配的规则决定结果,若该文件已有 geosite:category-games 规则,全部游戏以外的游戏服务会改为插入该规则之前,避免游戏流量先由该规则处理。

以下两个服务会添加多条规则:

  • Steam:出站不是 direct 或 block 时,开启 Steam 下载直接连接 会在 Steam 规则之前加入 domain(geosite:steam@cn) -> direct。
  • Telegram:同时以相同出站加入 dip(geoip:telegram);尚无对应 DNS 规则时,再加入请求规则 qname(geosite: telegram) && qtype(https, svcb) -> reject,避免连接绕过代理。DNS 请求规则位于其他文件时,对话框会提示,且不修改 DNS。

fallback 无法写入时,对话框会提示无法自动添加规则。此时请在配置文件中手动添加,或检查规则条件。

添加或修改单条路由规则 ​

  1. 打开规则 → 路由规则;显示视图切换时,选择高级。
  2. 点击新建规则。选择依据并填写值,多个值以逗号分隔。添加 AND 条件用于添加必须同时匹配的条件;自定义条件可使用表达式。
  3. 选择出站和插入位置。决定位置时须检查前面的规则,因为第一条匹配的规则决定结果。
  4. 点击新建规则,在列表中检查结果。

从 表达式 切换到 选择 时,可转换的表达式会变为条件行;其余表达式保留在 表达式 并显示提示。域名关键字 匹配子串,例如 tracker, ads 匹配任一关键词。

出站 提供 direct、block 和组,不提供单个节点。开启 锁定此出站 会添加 must。插入位置 可选 最后(fallback 之前) 或某条规则之前,初始选择为第一个可用位置。两个选择器都支持搜索。

通过规则行的编辑规则修改条件或目标,再点击保存;通过移除规则并确认删除。打开配置文件会定位到声明所在的来源。前面的规则都不匹配时,使用 fallback 行指定的目标。

若规则无法在列表中编辑或删除,请用打开配置文件编辑声明文件。只读来源也可通过此操作打开到规则所在行。编辑 fallback 规则只会改变目标。

命中 只统计仍保留且 rule_generation_id 与规则列表 generation_id 相同的流量记录,不是累计值。没有规则列表时,视图按规则汇总当前快照中的流量,显示 命中 和 占比。规则来源 区分 kernel、userspace、recomputed 和 unknown。

从已观察到的流量创建规则 ​

  1. 使用连接、分流或 DNS 行上的添加规则操作,或使用追踪结果中提供的添加操作。
  2. 检查所选规则列表、条件、目标和插入位置。DNS 域名可以打开 DNS 请求规则;不支持 DNS 规则时会打开路由规则。
  3. 检查预览,以及规则重复或前序规则可能先匹配的警告。
  4. 点击应用写入这条规则,或点击暂存加入暂存规则。无法写入时,使用复制规则。

对话框不预选出站,会显示当前出站,并在所选目标不会改变出站时提示。命中规则属于可写文件时,插入位置 默认选择 命中规则之前;其他选项为 最后(fallback 之前) 和 最前。DNS 条件还可限制为该查询的记录类型。

无需先选中行即可使用行内图标。连接 的详情面板也有 新建规则,工具栏没有此操作。分流 使用行内图标,详情面板没有此操作。DNS 在查询结果、回答地址旁,以及 解析记录 和 缓存 行内提供 新建规则。

应用成功后,路由规则的提示提供 查看规则;从 DNS 查询添加的 DNS 规则则提供 重新查询。

添加或修改 DNS 规则 ​

打开规则 → DNS 规则。请求规则决定如何解析查询;响应规则决定如何处理应答。

  1. 在 request 规则或 response 规则下点击新建规则。
  2. 选择条件并输入值,或使用表达式。
  3. 选择动作,并在需要时选择上游。须先定义上游时,参阅 DNS 设置示例。
  4. 选择插入位置,检查条件和动作,再点击新建规则。
  5. 在 DNS 页面查询域名,检查结果。

已有 DNS 规则使用与路由规则相同的编辑、保存和移除控件。列表或操作不可用时,参阅 DNS 规则条件。

两个 DNS 列表都按顺序匹配。响应规则可接受回答、拒绝回答或查询其他上游。DNS 规则对话框使用 动作,不使用 出站,也不提供 锁定此出站。解析记录 打开 DNS 页面;打开 DNS 配置 打开 dns 区段。

应用暂存规则 ​

暂存规则只保留在当前页面会话中。刷新浏览器页面会丢失这些草稿。

  1. 打开规则,检查各列表的待应用卡片。
  2. 用舍弃暂存的规则移除不需要的条目。
  3. 点击应用暂存的规则,或顶栏显示规则数量的应用按钮。此操作会应用所有列表中的暂存规则。
  4. 检查结果。文件逐个处理;某个文件失败时,尚未写入的规则会继续暂存。已写入的规则即使未能生效,也会从暂存列表移除;继续操作前须按失败通知处理。

有暂存规则时,离开页面前浏览器会要求确认。待处理卡片列出规则及插入位置,提示其他列表的暂存规则;涉及多个文件时还会显示文件数。写入失败的规则会显示在卡片上。

重载 honk只会重新加载已保存的配置,不会应用暂存规则。

用追踪检查路由 ​

追踪会按当前配置评估输入,不会测试到目标的连接。

  1. 打开规则 → 追踪模拟。

  2. 选择网络协议,填写域名、目标 IP或两者,并填写目标端口。

  3. 选择可用的解析模式。支持的模式见追踪条件。

    实时解析(live) 和 先查 DNS 再模拟(query) 必须填写 域名,并将 目标 IP 留空。

  4. 规则需要来源、进程、DSCP 或标记信息时,展开高级条件并填写对应字段。

    DSCP 接受 0 到 63 的整数。

  5. 点击开始追踪,查看判定、出站和各条规则的结果。输入不足时,补充后再次追踪。

  6. 要检查真实连接,打开连接。追踪结果提供新建规则时,可以用该次输入创建规则。

只填写 IP 时,追踪只评估该 IP 和端口。domain 系列 dial_mode 可从真实 TLS 或 HTTP 流量中发现域名并重新评估路由;模拟此情况时需填写域名。

无法确定结果时,补充缺少输入中列出的信息。可能出站是根据同一世代中的命中规则推断的,不代表已确定结果。结果标明观测时间和配置世代,并将每条规则标为匹配、不匹配、跳过或无法判定。

先解析再模拟时,会显示 DNS 查询卡片,提供查询 DNS和查看缓存链接。组结果在节点下显示组到节点的链及连通性,并提供测试节点、打开组或节点页面的操作。


来源:doona 上游文档,采用 CC BY 4.0 许可证。