<a name="common-tasks"></a>

# 常见操作

本页汇总调整路由、查看流量与维护 honk 的常用步骤。每项操作列出预期结果，并链接到对应页面的详细说明。

<a name="one-site"></a>

## 从现有连接让一个网站经过代理

1. 打开「观测」>「连接」，选择「连接」标签页。
2. 选择访问该网站的连接，打开其详情面板。
3. 在详情面板中点击「新建规则」，打开「新建规则」对话框。
4. 将「依据」设为「完整域名」。
5. 将「出站」设为代理组。对话框会显示该连接当前的出站和规则预览。
6. 检查「插入位置」。若对话框提示「前面的规则仍可能先命中此流量。」，改选更靠前的位置。
7. 点击「应用」立即写入规则并重载；或点击「暂存」，稍后通过顶部栏的「应用（N）」写入。

点击「应用」后，提示显示「新规则已生效」。在「规则」模式下，若没有更靠前的规则先命中，匹配的新连接会使用新出站；现有连接重新连接后才改用新路由。此对话框没有「锁定此出站」，因此「全局」或「直连」模式仍会覆盖这条规则；如需在这两种模式下保留该路由，请在「路由」>「规则」中添加规则并开启「锁定此出站」。暂存规则见[暂存列表](https://zakkaus.github.io/doona-docs/zh-CN/routing.md#held-rules)，对话框各字段见[新建规则](https://zakkaus.github.io/doona-docs/zh-CN/routing.md#add-rule)。

<a name="domain-family"></a>

## 让一个域名及其子域名经过指定组

1. 打开「路由」>「规则」，选择「路由规则」标签页。
2. 点击「新建规则」。对话框打开时，「条件写法」为「选择」。
3. 将「依据」设为「域名后缀」，在「值」中输入域名。多个域名以逗号分隔。
4. 将「出站」设为目标组。
5. 若全局或直连模式下也须按此规则转发，开启「锁定此出站」。
6. 将「插入位置」设在可能先命中同一流量的规则之前。
7. 点击对话框中的「新建规则」。

doona 将规则写入其来源文件并重载。提示显示「新规则已生效」；现有连接重新连接后才改用新路由。详见[路由、节点与规则](https://zakkaus.github.io/doona-docs/zh-CN/routing.md#add-rule)。

<a name="device-bypass"></a>

## 让一台设备不经过代理

规则按设备的来源 IP 地址匹配，因此设备需要固定地址。

1. 打开「路由」>「规则」，选择「路由规则」标签页。
2. 点击「新建规则」，打开「新建规则」对话框。
3. 将「依据」设为「来源 IP」，在「值」中输入设备的 IP 地址。
4. 将「出站」设为 `direct`。
5. 开启「锁定此出站」，使全局模式不会改写此规则。
6. 将「插入位置」设在可能先命中该地址的规则之前。
7. 点击对话框中的「新建规则」。

提示显示「新规则已生效」。该地址的新连接改走 `direct`，现有连接重新连接后才改用新路由。详见[路由、节点与规则](https://zakkaus.github.io/doona-docs/zh-CN/routing.md#add-rule)。

<a name="group-node"></a>

## 为组选择节点并恢复自动选择

1. 打开「路由」>「策略」，选择「组」标签页。
2. 找到该组的卡片。
3. 在卡片的节点网格中选择节点。提示会确认选择结果：节点被固定时，提示说明自动策略已暂停；否则说明现有连接已保留或已中断。
4. 若提示说明已手动固定该节点且自动策略已暂停，打开卡片的「更多操作」菜单，点击「恢复自动选择」。

点击「恢复自动选择」后，提示会显示该组当前使用的成员。详见[路由、节点与规则](https://zakkaus.github.io/doona-docs/zh-CN/routing.md#policies)。

<a name="subscription"></a>

## 添加并刷新订阅

1. 打开「路由」>「节点」。
2. 点击「来源」表格上方的「添加订阅」，打开对话框。
3. 填写「名称」和「订阅网址」，点击「添加」。
4. 之后如需刷新，点击「来源」表格中该订阅所在行的刷新按钮。

点击「添加」后，doona 会选中新行。后端支持刷新订阅时，doona 会立即刷新，并在提示中显示节点数量或失败原因。详见[路由、节点与规则](https://zakkaus.github.io/doona-docs/zh-CN/routing.md#nodes)。

<a name="global-mode"></a>

## 切换到全局模式并选择出站

1. 打开「活动」。
2. 在「出站模式」卡片中选择「全局」。
3. 在「全局模式出站」卡片中选择出站。
4. 点击「出站模式」卡片中的「应用」。

doona 将模式和出站写入主配置并重载，提示会确认新的出站模式。详见[观测流量](https://zakkaus.github.io/doona-docs/zh-CN/observe.md#activity)。

<a name="why-outbound"></a>

## 查明连接为何使用某个出站

1. 打开「观测」>「连接」，选择「连接」标签页，再选择该连接。
2. 在详情面板中查看「出站」「链」和「规则」。
3. 如需打开命中的规则，打开详情面板的「更多操作」，点击「查看命中的规则」。「路由」>「规则」页面会打开并选中该规则。
4. 如需测试路由，打开「更多操作」，点击「追踪此连接」。「追踪模拟」会打开，并已填入该连接的信息。
5. 点击「开始追踪」。

追踪按当前配置模拟路由，不会重放该连接。详见[观测流量](https://zakkaus.github.io/doona-docs/zh-CN/observe.md#connections)与[路由、节点与规则](https://zakkaus.github.io/doona-docs/zh-CN/routing.md#trace)。

<a name="dns-resolution"></a>

## 查看域名如何解析

1. 打开「观测」>「DNS」，选择「查询」标签页。
2. 在「域名」中输入域名，选择「类型」，点击「查询」。
3. 在结果卡片中查看缓存状态、「状态」「上游」「路由来源」「路由规则」「耗时」和应答。
4. 如需查看此前的解析，选择「解析记录」标签页，再选择一行查看详情。

详见[观测流量](https://zakkaus.github.io/doona-docs/zh-CN/observe.md#dns)。

<a name="update-geodata"></a>

## 更新地理数据

1. 打开「设置」>「设置」。
2. 若页面有「地理数据」卡片，点击「状态」旁的「立即更新」。
3. 否则，在「后端操作」卡片的「地理数据」下点击「更新」。

更新操作会下载并校验文件，替换现有文件后重载配置。提示显示「地理数据已更新并重载」或「无法更新地理数据」。后端不支持手动更新地理数据时，不显示该按钮。详见[配置与设置](https://zakkaus.github.io/doona-docs/zh-CN/config-and-settings.md#geodata)与[故障排查](https://zakkaus.github.io/doona-docs/zh-CN/troubleshooting.md#geodata-update)。

<a name="reload-honk"></a>

## 在 doona 外修改文件后重载 honk

1. 在顶部栏点击「重载 honk」。窄屏下，打开「更多选项」，点击「重载 honk」。
2. 在「重载 honk？」对话框中点击「重载 honk」。

honk 会重新读取配置文件并重载，暂存的规则不会写入。需要重启才生效的设置，须等 honk 重启后才生效，详见[配置](https://zakkaus.github.io/doona-docs/zh-CN/configuration.md#config)。顶部栏的说明见[界面导览](https://zakkaus.github.io/doona-docs/zh-CN/tour.md#top-bar)。

<a name="changed-on-disk"></a>

## 处理编辑期间磁盘上已更改的文件

1. 打开「设置」>「配置」，选择「来源」标签页。
2. 在「来源」中选择该文件。若开始编辑后磁盘上的文件已更改，页面会显示提示，并禁用「应用」。
3. 如需保留磁盘上的更改，点击「取消」。草稿会被丢弃，编辑器显示文件的当前内容。
4. 如需用草稿覆盖磁盘上的更改，点击「保留修改」，再点击「应用」。

「保留修改」不会合并两个版本；「应用」会用草稿覆盖文件。详见[配置与设置](https://zakkaus.github.io/doona-docs/zh-CN/config-and-settings.md#edit-source)。
