管理节点、策略组和规则
在标准版的路由分区中添加节点来源、设置组的节点选择方式,并决定哪些流量使用这些节点。完整操作示例见首次连接教程。
| 任务 | 页面 | 开始前检查 |
|---|---|---|
| 添加或编辑订阅、节点 | 节点 | 节点管理 |
| 更新订阅 | 节点 | 订阅更新 |
| 选择成员或固定自动组的成员 | 策略 | 成员选择 |
| 修改成员范围或组设置 | 策略 | 编辑组 |
| 测试节点或组 | 节点或策略 | 延迟探测 |
| 应用模板或编辑规则 | 规则 | 规则与模板 |
| 为常用服务添加规则 | 服务规则 | 规则与模板 |
| 模拟路由结果 | 追踪模拟 | 路由追踪 |
更改何时生效,见 doona 能修改什么。控件不可用时,打开其旁的帮助查看具体原因。
添加和维护节点
打开节点。选择来源卡片后,查看其节点;通过表格的搜索和筛选查找节点。延迟标签页用于比较已有的测量结果。
搜索节点 搜索所有来源,组 和 协议 可筛选表格。协议后会显示后端报告的流传输方式,协议筛选仍按协议匹配。
来源卡片显示类型、状态、节点数、更新时间、到期时间和用量;后端报告配额时还会显示用量条。到期时间显示到分钟,悬停提示显示秒。方向键可在卡片间移动。尚未获取 表示尚未成功获取且没有报告错误;过期数据 表示保留的数据需要更新。空文件来源仍会显示其状态。
延迟 显示最低、最高延迟和不可用节点数。可比较 当前延迟,以及后端报告的 移动平均 和 近 10 次平均。分组方式 按组或协议汇总,并列出不可用或未测量节点。选择图表中的节点会在 节点 中打开。
添加订阅
- 点击添加订阅。
- 填写名称和订阅网址。如果提供自动更新、User-Agent和缓存订阅内容,检查这些选项。
- 点击添加。支持订阅更新时,doona 会获取新来源并报告节点数量。如果获取失败,使用通知中的重试。
- 选择来源卡片,检查节点后再创建组。
订阅 URL 必须使用 HTTP 或 HTTPS。未填写协议的 URL 会在字段失去焦点或保存时补上 https://。无效 URL 和节点链接的原因会显示在字段下方。
添加节点链接
- 点击粘贴节点链接。
- 只有一个链接时,填写名称和节点链接。有多个链接时,每行粘贴一个,再检查解析出的名称和错误。
- 确认添加并检查结果。部分链接失败时,对话框会保留这些链接供你修正。
honk 支持 Trojan、VMess 和 VLESS 链接使用 XHTTP over H2。xhttp 和 splithttp 均选择此传输方式,支持 auto、packet-up、stream-up 和 stream-one 模式。可用选项与限制见 honk XHTTP 参考。
更新或编辑订阅
- 使用来源卡片的更新操作立即获取订阅。页面上的订阅更新按钮会更新全部订阅。
- 要修改网址或选项,使用卡片的编辑操作。修改提供的字段后,点击应用。如果卡片提供的是打开配置文件,则在那里编辑声明。
- 用自动更新选择间隔。选择自定义时,填写间隔和单位。
- 如果提供下载路由,选择获取订阅时使用的路由。此选项不决定经由订阅节点的流量所用路由。
更新失败会保留上次成功加载的节点。若下载路由没有可用节点,更新会失败,不会回退到直连。例如,订阅通过自身提供的节点下载,但这些节点尚未加载时,就会出现此情况。
清空 User-Agent 会移除 ua,改用引擎默认值。条目设置了 cache 或后端报告缓存默认值时,才会显示 缓存订阅内容。选择 按路由规则 会移除显式 route,其他选项保留原文。
重命名可同步更新同一文件中的简单 subtag(...) 过滤条件。保持更新开关开启,可保留这些组的成员关系。其他文件或表达式中的引用会阻止重命名。
自定义 自动更新间隔的 间隔 必须为非负整数,并需选择 单位。
如果组筛选条件阻止重命名,按对话框中的链接前往策略,先修改这些筛选条件。下载失败时,检查订阅更新条件。
编辑或移除节点来源
通过来源卡片的更多操作菜单移除来源,再检查确认提示。如果仍有组引用该订阅,对话框会列出这些组;须先修改其筛选条件。
对于配置中声明的节点,使用节点行提供的编辑或移除操作。如果声明位于引入文件且无法移除,在配置中打开该文件。
勾选节点行的复选框,可一次处理多个节点。每一行都能勾选,包括订阅与 include 文件中的节点。有选中项时,测试全部会变成测试所选(N),只测试选中的节点。**移除所选(N)**只计入主配置中可移除的手动节点,订阅与 include 文件中的节点不会被移除。确认一次后逐个移除并显示进度;关闭对话框会停止其余移除,移除失败的节点保持选中。Ctrl A 或 ⌘A 全选列出的节点,Shift 加 ↑ 或 ↓ 扩展选择,Esc 清除选择。切换来源、搜索或筛选条件时,选择会清除。
重命名配置内的节点时,会同步更新同一来源中精确匹配节点名的过滤条件、默认成员、最终出站及 DNS 上游的绕行目标。其他来源中的引用会阻止重命名。
加入组会打开组编辑器,并将节点加入草稿;点击应用才会保存。选择器列出可写主文件及 include 文件中的组,并支持搜索。即使运行时组 API 不可用,只要配置可读,仍可编辑组。
选择和编辑策略组
打开策略。每张卡片代表一个组;展开折叠的卡片即可查看成员。卡片显示所选成员和后端报告的成员健康状态。
全部、手动选择 和 自动选择 按选择类型筛选组并显示数量。筛选条件保存在 URL 中;打开被隐藏的组会切回 全部。卡片显示策略及可用、不可用、未测试的数量。超过 12 个成员的组提供 筛选节点、地区、排序 和 只显示可用节点。自动组初始折叠;固定选择的组或通过链接打开的组会自动展开。
嵌套组显示父组对它测得的延迟;若没有此样本,则显示其当前选择最终指向节点的延迟。
选择成员
- 如果卡片提供两者、TCP和UDP,先选择要修改的网络协议。
- 选择成员。手动组会选择该成员;允许覆盖的自动组会将其固定,并显示已手动固定。
- 要取消固定,在更多操作中选择恢复自动选择。卡片展开时,此操作遵循所选网络协议;自动组卡片折叠时,会清除两种协议的固定状态。
重启后是否保留选择,见持久保存条件。
创建或编辑组
- 点击新建组,或点击卡片的铅笔按钮编辑该组。
- 新建组须填写组名称,然后选择选择方式。
- 选择要包含的地区、订阅、节点或嵌套组。保存前检查匹配的节点。空筛选条件会包含所有节点。
- 成员选项不能表达的条件,通过添加筛选补充。同一筛选中的条件须全部匹配;添加 OR 匹配用于增加另一种匹配方式。
- 检查提供的默认成员、最终出站和切换时中断连接的开关。默认成员用于手动选择的初始状态;没有可用成员时使用最终出站。
- 新建组点击创建,编辑组点击应用,随后检查结果。取消会在必要的放弃确认后丢弃草稿。
移除显式选择的成员后,如果该节点仍匹配其他筛选条件,就不会被排除;须同时修改对应条件。字段无法修改时,参阅组编辑条件。
默认成员 只在手动选择策略下显示,列出直接成员。改用自动策略不会清除已保存的 default。最终出站 可选 direct、block、组和节点,但不包含会形成循环引用的组。选择 无 会移除对应的 default 或 final 设置。
切换时中断现有连接 控制切换成员时是否关闭现有连接。在 编辑组 中修改后需点 应用;在 查看配置 中切换则立即写入。
配置冲突后重试会保留未编辑字段的新值。双方修改同一字段或组被重命名时,需重新打开编辑器。若组已在别处删除,编辑器会保持打开并提示更改未保存。
展开 地区 可选择地区,已选标签会保持显示。添加筛选 支持名称和 subtag 匹配,自定义表达式仍可作为文本编辑。子组 和 节点 选择器滚动选项时,搜索框保持固定。
测试成员或修改后台检查
使用组的 更多操作 → 测试全部 或节点测试按钮,按手动探测偏好测试。选择 按选项探测… 可调整本次测试。操作不可用时,查看探测要求。
在节点页,工具栏的测试全部会测试列出的节点。
探测超时、取消、无可用地址或本地拒绝可能使结果为 unknown;这不能证明节点不可用。Trojan、AnyTLS 和 VLESS 仍提供 DNS UDP 探测选项,是否支持取决于节点配置。后端拒绝探测时会显示原因,不会自动改用 HTTP。
要修改组的后台检查,选择更多操作 → 检测设置,修改提供的字段后点击应用。后台检查与手动测试分开设置。
检查字段留空会清除组的覆盖值,改用全局值或默认值。发生冲突后,未编辑的字段会采用后端新值;双方都改过的字段保留草稿,并在旁边显示后端值。再次应用会用草稿覆盖该值。
应用路由模板
打开规则 → 路由规则。显示视图切换时,简易用于模板,高级用于规则列表。应用前先检查规则与模板条件。
即使规则 API 不可用,仍可从可读配置查看模板。简易 是默认视图;链接指定规则、预填新规则或查看暂存规则时除外。自定义路由或分布在多个文件中的路由不会选中任何模板。
- 分流方式提供绕过中国大陆、只代理 GFW 名单和全局代理。
- 更多模板提供单一代理组、按服务分组、按服务与地区分组和回国。
- 回国将中国大陆域名及 IP 发往
cn组。该组按节点名称匹配成员时排除香港、澳门和台湾,其余流量直连。
- 选择分流方式,或打开更多模板。检查模板说明和选项。
- 点击应用,打开确认对话框。
- 检查目标文件、将创建或复用的组,以及文件差异。模板会替换目标文件的顶层路由规则。替换时移除的路由引入语句不再引入原有规则,但被引入的文件仍保留在磁盘上。
- 如果提供同时加入 DNS 路由,决定是否加入建议的 DNS 配置。
- 点击应用确认,随后检查结果。校验失败时,先修正报告的问题再应用。
已有组会保留原设置。确认前须检查复用组或组名与节点名冲突的警告。
| 模板选项 | 默认值与效果 |
|---|---|
| 屏蔽广告 | 默认关闭;开启后拦截 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,并保留现有规则。
- 点击新建服务规则,再选择所有选中服务共用的出站。
- 在游戏、影音、社群与通讯、AI 和开发与平台中选中服务。
- 点击应用写入规则并重载,或点击暂存加入暂存规则。
路由规则或暂存规则已使用某服务的分类时,该服务无法选中,并显示已有规则;已加载的地理数据不含该分类时,则显示当前的地理数据未包含此分类。
规则写入包含 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 无法写入时,对话框会提示无法自动添加规则。此时请在配置文件中手动添加,或检查规则条件。
添加或修改单条路由规则
- 打开规则 → 路由规则;显示视图切换时,选择高级。
- 点击新建规则。选择依据并填写值,多个值以逗号分隔。添加 AND 条件用于添加必须同时匹配的条件;自定义条件可使用表达式。
- 选择出站和插入位置。决定位置时须检查前面的规则,因为第一条匹配的规则决定结果。
- 点击新建规则,在列表中检查结果。
从 表达式 切换到 选择 时,可转换的表达式会变为条件行;其余表达式保留在 表达式 并显示提示。域名关键字 匹配子串,例如 tracker, ads 匹配任一关键词。
出站 提供 direct、block 和组,不提供单个节点。开启 锁定此出站 会添加 must。插入位置 可选 最后(fallback 之前) 或某条规则之前,初始选择为第一个可用位置。两个选择器都支持搜索。
通过规则行的编辑规则修改条件或目标,再点击保存;通过移除规则并确认删除。打开配置文件会定位到声明所在的来源。前面的规则都不匹配时,使用 fallback 行指定的目标。
若规则无法在列表中编辑或删除,请用打开配置文件编辑声明文件。只读来源也可通过此操作打开到规则所在行。编辑 fallback 规则只会改变目标。
命中 只统计仍保留且 rule_generation_id 与规则列表 generation_id 相同的流量记录,不是累计值。没有规则列表时,视图按规则汇总当前快照中的流量,显示 命中 和 占比。规则来源 区分 kernel、userspace、recomputed 和 unknown。
从已观察到的流量创建规则
- 使用连接、分流或 DNS 行上的添加规则操作,或使用追踪结果中提供的添加操作。
- 检查所选规则列表、条件、目标和插入位置。DNS 域名可以打开 DNS 请求规则;不支持 DNS 规则时会打开路由规则。
- 检查预览,以及规则重复或前序规则可能先匹配的警告。
- 点击应用写入这条规则,或点击暂存加入暂存规则。无法写入时,使用复制规则。
对话框不预选出站,会显示当前出站,并在所选目标不会改变出站时提示。命中规则属于可写文件时,插入位置 默认选择 命中规则之前;其他选项为 最后(fallback 之前) 和 最前。DNS 条件还可限制为该查询的记录类型。
无需先选中行即可使用行内图标。连接 的详情面板也有 新建规则,工具栏没有此操作。分流 使用行内图标,详情面板没有此操作。DNS 在查询结果、回答地址旁,以及 解析记录 和 缓存 行内提供 新建规则。
应用成功后,路由规则的提示提供 查看规则;从 DNS 查询添加的 DNS 规则则提供 重新查询。
添加或修改 DNS 规则
打开规则 → DNS 规则。请求规则决定如何解析查询;响应规则决定如何处理应答。
- 在 request 规则或 response 规则下点击新建规则。
- 选择条件并输入值,或使用表达式。
- 选择动作,并在需要时选择上游。须先定义上游时,参阅 DNS 设置示例。
- 选择插入位置,检查条件和动作,再点击新建规则。
- 在 DNS 页面查询域名,检查结果。
已有 DNS 规则使用与路由规则相同的编辑、保存和移除控件。列表或操作不可用时,参阅 DNS 规则条件。
两个 DNS 列表都按顺序匹配。响应规则可接受回答、拒绝回答或查询其他上游。DNS 规则对话框使用 动作,不使用 出站,也不提供 锁定此出站。解析记录 打开 DNS 页面;打开 DNS 配置 打开 dns 区段。
应用暂存规则
暂存规则只保留在当前页面会话中。刷新浏览器页面会丢失这些草稿。
- 打开规则,检查各列表的待应用卡片。
- 用舍弃暂存的规则移除不需要的条目。
- 点击应用暂存的规则,或顶栏显示规则数量的应用按钮。此操作会应用所有列表中的暂存规则。
- 检查结果。文件逐个处理;某个文件失败时,尚未写入的规则会继续暂存。已写入的规则即使未能生效,也会从暂存列表移除;继续操作前须按失败通知处理。
有暂存规则时,离开页面前浏览器会要求确认。待处理卡片列出规则及插入位置,提示其他列表的暂存规则;涉及多个文件时还会显示文件数。写入失败的规则会显示在卡片上。
重载 honk只会重新加载已保存的配置,不会应用暂存规则。
用追踪检查路由
追踪会按当前配置评估输入,不会测试到目标的连接。
打开规则 → 追踪模拟。
选择网络协议,填写域名、目标 IP或两者,并填写目标端口。
选择可用的解析模式。支持的模式见追踪条件。
实时解析(live) 和 先查 DNS 再模拟(query) 必须填写 域名,并将 目标 IP 留空。
规则需要来源、进程、DSCP 或标记信息时,展开高级条件并填写对应字段。
DSCP 接受 0 到 63 的整数。
点击开始追踪,查看判定、出站和各条规则的结果。输入不足时,补充后再次追踪。
要检查真实连接,打开连接。追踪结果提供新建规则时,可以用该次输入创建规则。
只填写 IP 时,追踪只评估该 IP 和端口。domain 系列 dial_mode 可从真实 TLS 或 HTTP 流量中发现域名并重新评估路由;模拟此情况时需填写域名。
无法确定结果时,补充缺少输入中列出的信息。可能出站是根据同一世代中的命中规则推断的,不代表已确定结果。结果标明观测时间和配置世代,并将每条规则标为匹配、不匹配、跳过或无法判定。
先解析再模拟时,会显示 DNS 查询卡片,提供查询 DNS和查看缓存链接。组结果在节点下显示组到节点的链及连通性,并提供测试节点、打开组或节点页面的操作。
来源:doona 上游文档,采用 CC BY 4.0 许可证。
