Nodes zh - FrankoonG/hy2scale GitHub Wiki

🌐 English | 中文 | 한국어

节点

节点是 HY2 SCALE 网状网络的基本构建单元。每个节点运行一个 Hysteria 2 QUIC 服务器,并与其他节点建立对等连接,形成去中心化的对等拓扑。

概念

什么是节点?

任何运行 HY2 SCALE 的机器。每个节点具有:

  • 自动生成的 node ID(8 位十六进制字符)
  • 可配置的 显示名称(例如 sg-home
  • 默认监听 5565 端口的 Hysteria 2 QUIC 服务器
  • 出口节点 标记 — 启用后,对等节点可通过本节点将流量转发至互联网
  • 可选的 TUN 能力 — 用于路由规则和 TUN 模式 VPN 客户端的原始 IP 包转发

节点可以是拥有公网 IP 的云 VPS、NAT 后的家庭服务器、NAS,或通过 .ipkg 包运行 iKuai v4 的路由器。

对等拓扑

节点之间通过 QUIC 隧道直接连接,没有中央控制面。

节点 — 图形视图

上图展示了新加坡本地节点(sg-home)与十个远程节点的对等关系;其中三个远程对等节点通过嵌套发现进一步公开了一层子对等节点。

连接方向

  • 出站(Outbound) — 你主动发起到对等节点的 QUIC 连接(你需要对方的地址和服务器密码)。
  • 入站(Inbound) — 对方主动发起到你的 QUIC 连接。

两种方向在连接建立后功能完全等同。方向仅决定谁需要知道谁的地址。

两种视图,同一拓扑

节点页面提供两种等价的表现形式,可通过拓扑卡片顶部的工具栏标签切换:

图形视图(默认)

  • 支持平移、滚轮缩放和触控缩放(移动端 / 触控板)的交互式 SVG 画布
  • 每条连线标注往返延迟(≤ 100 ms 绿色、≤ 200 ms 琥珀色、其他红色)和当前吞吐量
  • 拖动节点可重新定位;布局保存到服务器并通过 SSE 同步到其他已登录会话
  • 点击目标节点(包括自己的本机节点)可高亮整条中继路径,并在底部显示面包屑 — 面包屑中每个非 self hop 都是可点击的链接,点击即打开对应前缀的 远程视图(与列表视图中节点链接的快捷方式相同)
  • 原生对等节点为黄色圆点,离线对等节点为浅红圆点;触达原生对等节点的连线静止时呈浅黄色,选中时饱和呈现,使路径在视觉上保持一组
  • 工具栏控件:重置视图重置布局(需确认)、对齐网格

列表 / 树状视图

  • 按顺序展示对等节点的树状结构,深度以缩进和 via X 提示标明
  • 列:复选框、延迟、方向标识、节点名称 + 地址、上传 / 下载流量 — 编辑由选中状态驱动(见下文),不再依赖每行的小图标
  • 复选框单元格 整片区域(含 padding)都是该行复选框的点击目标;行体点击为独占式选中(替换式单选)

节点 — 列表视图

添加对等节点(出站)

+ Add Node 按钮支持两种交互:

  • 单击 — 打开下方的手动表单。
  • 长按(≥ 600 ms) — 打开 从 hysteria2:// URL 导入 对话框,可粘贴 hysteria2://[auth@]host[:port][?params]#name(或 hy2:// 别名)。URL 实时解析(host / port / password / SNI / insecure / mport / up / down / fastopen / pinSHA256),预览展示导入结果;obfs / obfs-password 会作为「忽略字段」明确显示,而非被静默吞掉。

手动表单字段:

字段 说明
节点名称(Node Name) 可选。留空则回退为第一个地址。在编辑在线 hy2scale 对等节点时被锁定(重命名活跃 QUIC 会话会令其键入态变成孤儿);编辑原生对等节点和离线条目时始终可改。拒绝 /、空白字符和控制字符。
地址(Address(es)) 对等节点的 host:port — 可填写一个,也可填多个以启用多 IP 聚合。端口字段也接受逗号 / 区间列表(5000-60005000,5001,5002)以支持 hy2 端口跳跃。
连接模式 Direct(单地址)、Quality(自适应故障转移)或 Aggregate(在多地址间负载均衡)
密码 对等节点的 Hysteria 2 服务器密码
Fast Open TCP-Fast-Open 风格的 0-RTT 请求优化(开关)
Brutal Hysteria 2 brutal 拥塞控制(开关,紧贴 Fast Open 右侧)。开启 时下方显示 Upload / Download Mbps 输入;关闭 时输入框被隐藏,先前填写的值会被清空,避免无意中带走旧配置。
BBR Profile Standard / Conservative / Aggressive — 与 Brutal 相互独立,切换时该列不会重排
SNI TLS SNI(通常为主机名)
不验证证书(Insecure) 跳过 TLS 证书校验
CA 可选的 PEM CA,用于验证对等节点证书

点击 Connect(新建)或 Save(编辑)。在编辑模式下,CancelSave 之间会多出一个 Export URL 按钮,可将该对等节点的 hysteria2://... 分享 URL 复制到剪贴板(多地址对等节点回退为第一个地址 — URL 标准没有多地址槽位)。剪贴板助手会在 HTTP-over-IP 场景下回退到隐藏 textarea + execCommand('copy'),确保仅以 IP 可达的管理节点也能正常工作。

接收对等节点(入站)

要接受入站连接,将你的节点地址和服务器密码分享给对方。对方在他们那侧将你添加为出站对等节点。

你的服务器密码可在 编辑自身(Edit Self) 模态框中查看(选中自己的节点后点击 Edit 按钮即可)。

选择与编辑

节点页面(以及 HY2 SCALE 上其他每个列表页)都遵循统一的「先选中再操作」模式:

  • 点击行体任意位置(或图中的节点圆点)即可单选该节点 — 包括你自己的本机节点,此时 Edit 会路由到 编辑本机节点(Edit Local Node) 模态框。
  • 点击行首的复选框单元格(其加宽 padding 内的任意位置,不只是小输入框本身)则进入多选;复选框是叠加式的。
  • 恰好一行 被选中时,拓扑卡片右上角会出现绿色 Edit 按钮,位于 Import+ Add Node 之间。未选中或选中多于一行时该按钮被隐藏;选中的若是嵌套子对等节点(其配置归属父节点,不在本页可改),该按钮也会被隐藏。
  • 任何在拓扑卡片体外的空白点击 — 页面标题、侧边栏、卡片之间的间隙、甚至拓扑卡片自身的页头条 — 都会清掉单行选中。多选保持粘性(按钮 / 输入框 / 已打开的模态框上的点击永远不会清掉选中)。
  • 批量操作(启用 / 禁用 / 嵌套 / 取消嵌套 / 删除)在选中一行或多行时显示在 Edit 按钮左侧。
  • 对自身行单独处理:嵌套开关被隐藏(自身没有嵌套概念),但启用 / 禁用为对称性保留。

在图形视图中选中圆点同样会触发右上角的 Edit 按钮 — 列表视图与图形视图共用一个编辑入口。

嵌套发现

嵌套发现让你能看到对等节点的对等节点 — 每次一跳,深入网状网络。

每一跳都受该对等节点本地 nested 标记控制:

  • sg-home 对 us 启用 nested → us 的对等节点作为 us 的子节点显示
  • sg-home 同时对 us/us-east 启用 nested → us-east 的对等节点作为孙节点显示
  • 任何一跳关闭,其下的所有节点都会从 UI 和路由平面同时消失

不同路径中出现同一显示名是允许的(例如 A/B/DA/B/C/D 可以共存),但同一条路径内不得重复出现同一名称。如果 UI 上看不到某个节点,就无法拨号 — 显示和路由使用同一套授权判断。

启用方式

  • 打开某个对等节点,切换 嵌套 开关并保存。子对等节点会在一个探测周期内出现。
  • 更深层级(嵌套的嵌套)需要在每一段中间路径上都启用 nested — 打开对应的子对等节点行,同样切换 嵌套 开关。

Bond 聚合(多 IP)

当对等节点拥有多个地址(例如两条 ISP)时,将它们全部填入 地址(Address(es)) 字段。提供两种聚合模式:

模式 行为
Quality 持续探测所有链路,通过延迟最低的一条转发流量;质量下降时立即切换
Aggregate 在所有健康链路间做包级负载均衡 — 可叠加两条 ISP 的带宽

Direct 模式是单地址的退化情况。

原生 Hysteria 2 对等节点

HY2 SCALE 可以连接到不支持中继协议的原生 Hysteria 2 服务器。这些节点显示 [NATIVE] 徽章,支持直接流量路由,但不参与嵌套发现。

拓扑标识

徽章 / 颜色 含义
中心蓝点 本地节点
黄点 + 连线 原生(NATIVE)对等节点(普通 Hysteria 2)— 相邻连线静止呈浅黄,选中时饱和
浅红点 离线 / 不可达的对等节点
实线 已连接且健康
虚线 / 淡化线 已断开或不可达
延迟标签 每条连线的往返时间(按数值着色)
方向标识(OUT / IN / LOCAL 连接方向
[NATIVE] 徽章 原生 Hysteria 2 对等节点
黄色版本徽章 对等节点运行不同的 HY2 SCALE 版本
红色 × 标记 离线 / 不可达的对等节点

出口路由

启用 出口节点 的节点均可将流量转发至互联网。按用户或按规则的 exit_via 路径可将特定流量引导至某条节点链:

exit_via: "jp"                   # 一跳
exit_via: "us/us-east"           # 两跳
exit_via: "kr/kr-r1/kr-r1-a"     # 三跳

UI 中的自动补全由当前拓扑驱动 — 仅可达且通过嵌套授权的路径会出现在建议中。

元数据交换

对等节点通过中继协议交换小型 JSON 文档:

  • 节点名称和 ID
  • 版本信息
  • 出口节点标记
  • 缓存的子对等节点列表(用于嵌套发现)
  • 延迟探测

该 schema 可扩展,未来新增功能不会破坏协议兼容性。

中继协议流

供好奇者参考的内部 QUIC stream ID:

流前缀 用途
_relay_register_ 节点注册
_relay_s2c_ctrl_ 服务端到客户端控制
_relay_list_peers_ 对等节点列表交换
_relay_latency_ 延迟探测
_relay_via_* 路由控制
_relay_data_* 数据转发