Rules zh - FrankoonG/hy2scale GitHub Wiki
路由规则可将指定 IP 或域名的流量通过选定的出口节点转发。典型用途:
- 将
netflix.com走美国出口 - 将
spotify.com走德国出口 - 强制
8.8.8.8走与默认出口不同的节点


路由规则需要 Host 网络模式 和
NET_ADMIN(Full 模式)。Bridge 模式下 Rules 标签页会显示红色提示横幅 — 请改用 用户 页面的按用户exit_via。
页面包含两个标签页;每个标签页是一个扁平的规则列表。
按目标 IP 或 CIDR 匹配。
| 字段 | 示例 |
|---|---|
| 目标 |
8.8.8.8、1.1.1.1、203.0.113.0/24(一个或多个,逗号分隔) |
| 出口路由 |
us — 将这些 IP 的流量走 us 出口 |
| 名称 | 可选标签 |
| 启用 | 开关 |
实现方式:iptables DNAT 将目标流量固定到宿主机上的透明代理套接字;代理再将连接交给中继平面,由中继拨号到所选出口。
按主机名匹配(每 60 秒重新解析一次)。
| 字段 | 示例 |
|---|---|
| 目标 |
netflix.com、music.apple.com、bilibili.com
|
| 出口路由 |
us、de、jp、… |
节点会周期性地将每个域名解析为一组 IP,并编程与 IP 规则相同的 DNAT 管线;如果域名的 IP 发生变化,规则会自动跟随。
与按用户出口路由使用相同的控件:
| 模式 | 行为 |
|---|---|
| Direct | 单一路径 |
| Quality | 多路径故障转移 |
| Aggregate | 在多路径间负载均衡 |
规则页面遵循与 Nodes / Users / TLS 相同的「先选中再操作」模式:
- 单击 某条规则行即可选中 — 规则卡片右上角会出现绿色 Edit 按钮,位于 Import 与 + New Rule 之间。
- 行首的 复选框单元格 经过加宽:在其加宽 padding 内任意位置点击都会切换该行复选框(无需精确点中小输入框)。行体点击为独占式选中(替换式单选);复选框上的点击则叠加进入多选。
- 卡片体之外的任意空白处点击 — 页面标题、卡片自身的页头条 — 都会清掉 单行 选中。多选保持粘性;按钮 / 输入框 / 已打开的模态框上的点击永远不会清掉选中。
编辑由选中状态驱动 — 不再需要瞄准每行的小铅笔图标。
勾选多条规则以显示批量操作栏:
- 启用 / 禁用
- 删除
与用户页面一样,在窄视口下操作栏会折叠为溢出菜单。
- 导出 — 将当前规则列表下载为 JSON。
-
导入 — 从 JSON 批量创建规则;匹配的
id会覆盖现有规则。
适用于在不同部署间迁移策略或保留版本受控的备份。
在 iptables 被精简过的路由器发行版(iKuai、OpenWrt 等)上,HY2 SCALE 会退回到 TUN 模式:由 gvisor 支持的 TUN 设备捕获原始 IP 包,在用户空间应用同样的匹配逻辑,然后通过网状网络转发。
TUN 模式保留端到端的 TCP / UDP 会话 — 对延迟敏感的流量(例如 Moonlight 游戏串流,这类应用在每跳重新 NAT 时会中断)尤其有用。
部署细节详见 路由器系统。
- 启用
DEBUG=true可看到 iptables 规则的插入 / 删除日志。 -
docker exec <container> iptables -t nat -L可查看当前规则集(Host 模式)。 - 容器停止或单条规则被禁用时,相应 iptables 规则会被干净地移除 — 不会残留陈旧规则。