Rules zh - FrankoonG/hy2scale GitHub Wiki

🌐 English | 中文 | 한국어

路由规则

路由规则可将指定 IP 或域名的流量通过选定的出口节点转发。典型用途:

  • netflix.com 走美国出口
  • spotify.com 走德国出口
  • 强制 8.8.8.8 走与默认出口不同的节点

IP 规则

域名规则

路由规则需要 Host 网络模式NET_ADMIN(Full 模式)。Bridge 模式下 Rules 标签页会显示红色提示横幅 — 请改用 用户 页面的按用户 exit_via

两种规则类型

页面包含两个标签页;每个标签页是一个扁平的规则列表。

IP 规则

按目标 IP 或 CIDR 匹配。

字段 示例
目标 8.8.8.81.1.1.1203.0.113.0/24(一个或多个,逗号分隔)
出口路由 us — 将这些 IP 的流量走 us 出口
名称 可选标签
启用 开关

实现方式:iptables DNAT 将目标流量固定到宿主机上的透明代理套接字;代理再将连接交给中继平面,由中继拨号到所选出口。

域名规则

按主机名匹配(每 60 秒重新解析一次)。

字段 示例
目标 netflix.commusic.apple.combilibili.com
出口路由 usdejp、…

节点会周期性地将每个域名解析为一组 IP,并编程与 IP 规则相同的 DNAT 管线;如果域名的 IP 发生变化,规则会自动跟随。

按规则的出口模式

与按用户出口路由使用相同的控件:

模式 行为
Direct 单一路径
Quality 多路径故障转移
Aggregate 在多路径间负载均衡

选择与编辑

规则页面遵循与 Nodes / Users / TLS 相同的「先选中再操作」模式:

  • 单击 某条规则行即可选中 — 规则卡片右上角会出现绿色 Edit 按钮,位于 Import+ New Rule 之间。
  • 行首的 复选框单元格 经过加宽:在其加宽 padding 内任意位置点击都会切换该行复选框(无需精确点中小输入框)。行体点击为独占式选中(替换式单选);复选框上的点击则叠加进入多选。
  • 卡片体之外的任意空白处点击 — 页面标题、卡片自身的页头条 — 都会清掉 单行 选中。多选保持粘性;按钮 / 输入框 / 已打开的模态框上的点击永远不会清掉选中。

编辑由选中状态驱动 — 不再需要瞄准每行的小铅笔图标。

批量操作

勾选多条规则以显示批量操作栏:

  • 启用 / 禁用
  • 删除

与用户页面一样,在窄视口下操作栏会折叠为溢出菜单。

导入 / 导出

  • 导出 — 将当前规则列表下载为 JSON。
  • 导入 — 从 JSON 批量创建规则;匹配的 id 会覆盖现有规则。

适用于在不同部署间迁移策略或保留版本受控的备份。

TUN 模式(路由器固件)

在 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 规则会被干净地移除 — 不会残留陈旧规则。
⚠️ **GitHub.com Fallback** ⚠️