# 转发

> 用一份按顺序匹配的网络规则，通过应用与网段条件让指定设备的流量经出口设备访问目的。

来源: https://www.widewired.com.cn/page/docs/forward

## 规则列表

「配置 → 转发」显示本网络的全部转发规则。规则从上到下依次匹配，第一条命中的规则生效；未命中任何规则的流量直连。

页面始终保留“它如何工作”，新规则直接列在下方表格。每行依次显示顺序拖柄、名称、生效设备、匹配流量（应用与网段）、动作和状态；状态来自对已保存规则的检查，有提示时把鼠标移到状态上查看详情。行尾「编辑」打开规则编辑窗口；删除入口位于编辑窗口底部，删除前需确认。

拖动行首的拖柄，或聚焦拖柄后用键盘移动，可以调整规则顺序；调整后立即保存。具体规则应放在宽泛规则之前，避免流量被上方的规则提前命中。

页面标题栏的「新建规则」用于添加规则。

## 规则编辑

新建和编辑规则使用同一套步骤：名称、生效设备、流量来源、流量特征、执行动作，最后预览规则与检查结果。编辑会预填已有配置，可返回前面的步骤修改，预览标记本次改动，点击“保存并生效”后统一提交；中间步骤不保存。所选设备中没有 Linux 设备时，跳过流量来源。

| 步骤 | 字段 | 说明 |
| --- | --- | --- |
| 名称 | 名称 | 必填，显示在规则列表中 |
| 生效设备 | 生效设备 | 必填，点击设备标签多选；规则只在选中的设备上生效 |
| 流量来源 | 全部网段流量或指定网段流量 | 只在所选设备中有 Linux 设备时出现；所选设备都不是 Linux 时不显示，规则匹配全部网段流量。默认全部网段流量；指定网段流量按行填写来源，每行选择「主机」（单个 IP 地址）、「网段」或「正则」（按来源地址匹配的正则表达式），匹配经本机转发的局域网下游，只在 Linux 设备上按网段匹配，其他设备按全部网段流量生效 |
| 流量特征 | 目的应用 | 默认「不设置应用条件」；选择「仅包含指定应用」后，点击「添加应用」至少选择一个目录应用或自定义应用 |
| 流量特征 | 目的网段 | 默认「不设置网段条件」；选择「仅包含指定网段」或「仅排除指定网段」后，点击「添加网段」至少选择一个目录条目或自定义网段。「网段目录」按国家或地区搜索，可全选当前列出的条目；「自定义」列出本网络的自定义网段。目的地址落在排除网段内时不命中这条规则 |
| 执行动作 | 出口设备 | 命中的流量经所选出口设备访问目的；未命中任何规则的流量本来就直连 |
| 执行动作 | 出口设备域名解析与出口设备上游代理 | 可选，见下文与下一节 |

「选择应用」弹窗列出本网络自定义应用和平台应用目录，可按名称或厂商搜索，并按全部、应用目录、自定义或已选筛选。表格显示应用名、厂商、来源和域名数，点击一行即勾选或取消；平台应用目录只显示名称、厂商和域名数，不提供域名清单。底部显示已选应用、域名总数及其占所选设备规则集容量的比例。目录里没有的系统可以在「自定义」筛选下新建自定义应用，保存后自动勾选。点击「确定」后才写回规则。

继续下一步或保存前，至少设置一个目的应用或网段条件（包含排除条件）。应用和网段不能同时选择「不设置」，来源网段不算目的条件。选择包含或排除模式后也必须添加至少一项，不能空着继续或保存。

目的应用和包含的目的网段之间是“或”：命中其中任一项即命中目的。排除的目的网段优先：目的地址在排除范围内时，这条规则不命中。不设置应用和包含网段、只设置排除网段时，规则匹配这些网段以外的任意目的，例如让中国大陆以外的流量经出口。来源网段与目的之间是“且”，两者同时满足才命中。同一字段内的多个值满足其一即可。

规则不直接填写域名或 IP 网段：域名条件通过应用添加，目录里没有的系统可新建自定义应用并填写域名；网段从网段目录或自定义网段中选择。应用的域名由 HTTP Host、TLS 或 QUIC SNI、DNS 地址映射中任一命中即可。

在“出口设备域名解析”中，默认选择“使用出口设备默认域名解析器”，规则所选应用的域名由出口设备的系统 DNS 解析。也可以选择“通过出口设备使用其他域名解析器”，填写 IP 地址，需要其他端口时写成 `114.114.114.114:5353` 这样的形式，出口设备会通过 UDP 向它查询；地址不能是回环地址，也不能在其他设备宣告的站点内。出口不可用或解析器无响应时解析失败，不回退到本机或系统 DNS。未指定解析器且出口为本机的规则，由本机系统 DNS 解析。目的网段不涉及 DNS 解析，只按网段匹配的规则不显示这个选项。

系统按规则自动决定每台设备需要接管的流量，不需要单独配置接管范围。

编辑窗口左下角的「删除规则」用于删除规则。

## 应用与自定义应用

平台应用目录由平台维护，每个应用包含名称和域名清单，覆盖清单中的域名及其子域。客户端在设备本地读取 DNS 查询域名、TLS SNI 和 HTTP Host，按这些域名和网段匹配连接，不采集流量内容。

规则的目的只有应用，且这些应用当前没有任何域名或网段时，该规则在设备上不生效，检查结果会给出提示；它不会退化为匹配任意目的。

在「选择应用」弹窗切换到「自定义」筛选，点击「新建自定义应用」添加本网络自建的应用：

| 字段 | 说明 |
| --- | --- |
| 名称 | 本网络内唯一，最多 64 个字符 |
| 域名 | 精确、后缀或正则，最多 4096 条。正则使用 RE2 语法，匹配小写后的主机名，例如 `^api[0-9]+\.example\.com$` |
| IP 网段 | 分行填写，每行选择「主机」（单个 IPv4 或 IPv6 地址）或「网段」（带前缀长度，例如 `10.0.0.0/8`），最多 4096 条；也可以选择「正则」按目的地址匹配，使用 RE2 语法，匹配目的 IP 的文本形式，例如 `^203\.0\.113\.`，最多 256 条 |

域名和 IP 网段至少填写一项，每个网络最多 1024 个自定义应用。在弹窗里点击自定义应用行尾的「编辑」可修改或删除，编辑窗口会列出引用它的规则；修改后，引用它的规则使用新的域名和网段。被规则引用的应用不能删除，需要先在相关规则中移除。

自定义网段是本网络自建的一组 IP 网段，可在多条规则的包含或排除中使用。在「添加网段」弹窗切换到「自定义」，点击「新建自定义网段」，填写名称（本网络内唯一，最多 64 个字符）和 IP 网段（与自定义应用相同，每行选择「主机」「网段」或「正则」，至少填写一项，网段最多 4096 个，正则最多 256 条；每个网络最多 1024 个自定义网段）。点击行尾的「编辑」可修改或删除，编辑窗口会列出引用它的规则；修改后，引用它的规则使用新的网段。被规则引用的自定义网段不能删除，需要先在相关规则中移除。

## 动作与出口

规则的动作只有一种：命中的流量经所选出口设备出网，可再配置上游 SOCKS5。未命中任何规则的流量直连。

出口设备必须是同一网络内的 Linux 或 Windows 设备；macOS 和移动设备不能作为出口。离线或待批准的设备可以选择，只有批准且可用时才实际转发。经出口失败时不会回退直连。

出口也可以是所选生效设备之一。对这台设备本身，未配置上游 SOCKS5 时等同直连；配置了上游 SOCKS5 时，由该设备在本机经上游代理出网。其他生效设备仍经这台设备出网。

上游 SOCKS5 地址为 `host:port`，IPv6 写作 `[addr]:port`，用户名和密码可选。密码只写不读：保存后不回显，留空保持原值，也可以明确清除；清空上游地址会一并移除凭据。修改上游地址、用户名或出口设备后需要重新输入密码。上游失败不会回退直连。

站点网段默认送往宣告设备；规则明确命中时按规则动作处理。

## 保存与检查

保存规则前，系统先进行检查。阻止保存的问题会在对应字段上标出，例如：

- 出口设备不存在，或其平台不能作为出口。
- 修改上游地址、用户名或出口设备后，需要重新输入代理密码。
- 某台设备的应用域名清单或转发配置超出容量。

以下提示确认后仍可保存；预览步已经显示过的提示，保存按钮会写明“确认 n 条提示并保存”，点击即确认：

- 规则不可达，例如被上方规则完全覆盖。
- 目的与站点网段重叠。
- 规则选择的应用没有任何域名或网段。
- 规则引用了已删除的出口设备，该规则命中的流量会被阻断。

多人同时编辑时，保存会提示“已被其他人修改”。重新加载页面，在最新内容上重新修改后再保存。

## 验证策略

首次配置时，先使用有限的目的和已确认可达的出口：

1. 新建规则，生效设备只选一台来源设备，目的选择一个应用或网段，并指定出口设备。
2. 将规则移到会提前命中的宽泛规则之前，并确认规则的排除网段没有覆盖这个目的。
3. 查看检查结果，处理阻止项并确认提示后保存。
4. 从该来源设备新建连接，确认目标业务能经所选出口访问；核对参与设备的活动时，可对照「洞察 → 传输」。

需要恢复时，删除本次添加的规则，或从生效设备中移除该设备。其他命中规则和有效站点路由仍会继续生效。

## 故障速查

| 现象 | 检查与处理 |
| --- | --- |
| 保存被阻止 | 修正检查结果中标出的字段或平台不支持项 |
| 保存提示已被其他人修改 | 重新加载页面，在最新内容上重新修改 |
| 规则没有匹配 | 确认规则列出了该设备，检查上方是否有更早命中的规则、应用包含的域名以及排除网段 |
| 选择应用的规则不生效 | 检查所选应用是否有域名或网段；自定义应用可补充内容 |
| 设备显示“需升级”、无法选择 | 升级该设备客户端，升级后即可选择 |
| 规则没有对 IPv6 流量生效 | 转发只处理 IPv4 流量。命中规则的域名只返回 IPv4 地址；设备上有任意目的或使用网段目录的规则时，这台设备的全部域名都只返回 IPv4 地址。应用直接连接 IPv6 地址时不经过转发 |
| 域名解析失败 | 检查出口设备在线、连接正常，并确认它的系统 DNS 或规则中填写的解析器可用 |
| 无法删除自定义应用 | 先从引用它的规则中移除该应用 |
| 连接没有经出口 | 检查出口是否已批准、在线并已升级，以及之前是否已有规则命中 |
| 出口设备已删除后流量被阻断 | 为相关规则改选出口设备或删除规则 |
| 修改上游后要求密码 | 重新输入密码，或明确清除已保存的凭据 |
