Skip to content

Chain Proxy

Jyanbai edited this page Jul 22, 2026 · 3 revisions

链式代理

链式代理用于让 ping-rust 受管入站的受支持 TCP 流量通过一个上游代理节点访问互联网。 它不是 WARP、多跳链或分流规则编辑器。

进入菜单

sudo prs
→ 9) 其他
→ 1) 链式代理
1) 添加节点(分享链接)
2) 选择出口节点
3) 启用/关闭链式代理
4) 测试节点(TCP 连通性)
5) 查看节点
6) 删除节点
0) 返回

使用流程

  1. 选择“添加节点”,粘贴上游分享链接;
  2. 确认解析出的协议、地址和名称;
  3. 选择当前出口节点;
  4. 启用链式代理;
  5. ping-rust 生成 shoes client_chains,执行 dry-run 后重启服务。

第一个节点会自动成为当前出口,但不会自动启用。删除正在使用的节点会自动关闭链式代理并恢复直连。

支持的分享链接

  • socks5://
  • http:// / https://
  • ss://
  • vless://:TCP、TLS、Reality、WebSocket
  • trojan://:TLS、WebSocket

HTTP、SOCKS5 与 Trojan 在当前 shoes 客户端中不支持 UDP-over-TCP。选择这类节点时会提示 UDP 请求失败;ping-rust 不会在失败后自动回退直连。

Hysteria2、TUIC、WireGuard/WARP 以及未经验证的链接格式会被提前拒绝,不会生成近似配置。

Hysteria2 / TUIC 入站限制

固定 shoes 0.2.8 的 Hysteria2/TUIC UDP 服务端路径在完成规则选择后仍会直接创建 UDP socket, 没有使用选出的 client chain。为避免用户误以为 UDP 已经过链式出口,只要当前受管配置包含 Hysteria2 或 TUIC,ping-rust 就会拒绝启用全局链式代理;链式代理已经启用时也会拒绝新增这 两类入站。错误信息会列出需要处理的配置文件。

这是 fail-closed 安全限制,不是菜单缺失。只有上游 shoes 实现 UDP chain 并通过真实 UDP 流量测试后才会解除。

安全与回滚

  • 节点凭据保存在权限为 0600 的管理状态和配置文件中;
  • 配置写入使用跨进程锁和原子替换;
  • shoes dry-run 失败时不修改线上配置;
  • systemd 激活失败时恢复配置与原服务状态;
  • “测试节点”只验证 TCP 地址和端口,不能代替认证、完整协议握手或出口测试;
  • CI 使用“上游关闭 → 无法抵达测试 origin、上游开启 → 收到 origin 特征响应、上游再关闭 → 再次无法抵达 origin”的带认证 SOCKS5 链路,证明稳定 TCP 路径不会静默直连。

Clone this wiki locally