RustMinerSystem

文档

RustMinerSystem 透明代理

了解 RustMinerSystem 透明代理的工作方式、与纯转发的区别,以及 RMS 到 RustMinerSystem 跳板机再到下一层 RustMinerSystem 的配置方法。

透明代理

透明代理用于把进入端口的数据原样转发到目标地址。它不解析矿机协议、不识别钱包和矿工名,也不在当前 RustMinerSystem 节点上做抽水、替换、统计等需要解析数据的处理。

可以把它理解为一种更适合做链路跳板的透明转发:来什么数据,就把什么数据发到目标地址。

和纯转发的区别

纯转发通常把目标地址设置为矿池地址。矿机直接连接 RustMinerSystem 的纯转发端口后,数据会被转发到上游矿池,适合只想把矿机入口集中到一个端口的场景。

透明代理更常用于 RustMinerSystem 节点之间的跳转。它的目标地址不一定是矿池,也可以是下一层 RustMinerSystem 的 RMS 端口。这样第一台 RustMinerSystem 不需要解密、解压或转换协议,只负责把本地加密压缩链路继续送到下一台服务器。

适用场景

如果本地已经使用 RMS、HAProxy 或其他加密、压缩、转发工具,数据到达第一台 RustMinerSystem 后,还需要继续转发到另一台 RustMinerSystem,再由下一层 RustMinerSystem 连接矿池,此时透明代理会更简单。

典型链路如下:

本地 RMS -> RustMinerSystem 透明代理跳板机 -> 下一层 RustMinerSystem RMS 端口 -> 矿池

如果不用透明代理,第一台 RustMinerSystem 通常需要先解析或解密本地 RMS 数据,再重新封装成下一层 RustMinerSystem 需要的协议。这样配置更复杂,中间还会多一次加解密或压缩处理,增加 CPU 开销和延迟风险。

配置思路

透明代理配置的关键是:跳板机只做透明传输,真正处理 RMS 协议的是下一层 RustMinerSystem。

位置 配置重点
本地 RMS 远程地址填写跳板机的 RustMinerSystem 透明代理地址和端口。
跳板机 RustMinerSystem 创建透明代理端口,目标地址填写下一层 RustMinerSystem 的 RMS 端口地址。
下一层 RustMinerSystem 创建 RMS2、RMS3 或 RMS3(Zstd) 端口,并连接最终矿池。

跳板机端口配置

在跳板机 RustMinerSystem 中创建代理端口时,按以下方式配置:

  1. 监听协议选择 TP 或透明代理。
  2. 监听端口填写本地 RMS 要连接的端口。
  3. 主矿池地址填写下一层 RustMinerSystem 的 RMS 端口地址,例如 next-rustminer.example.com:9000
  4. 目标矿池协议选择 TLS/SSL
  5. 抽水、钱包替换、矿工名替换等解析类功能保持关闭或忽略。

需要特别注意:跳板机的目标地址协议必须选择 TLS/SSL。因为下一层 RustMinerSystem 的 RMS 端口使用加密通道,跳板机需要把本地 RMS 发来的数据原样送到这个 TLS/SSL 目标上。

RMS 协议匹配

本地 RMS 使用的协议必须和下一层 RustMinerSystem 的 RMS 端口协议一致。

本地 RMS 使用 下一层 RustMinerSystem 端口应选择
RMS2 RMS2
RMS3 RMS3
RMS3(Zstd) RMS3(Zstd)

跳板机端口本身只做透明代理,不负责把 RMS2 转成 RMS3,也不会把 RMS3(Zstd) 转成其他协议。协议版本、压缩级别、超级压缩等参数,仍然需要在本地 RMS 和下一层 RustMinerSystem 之间保持一致。

验证步骤

  1. 在下一层 RustMinerSystem 确认 RMS 端口已经运行,并能正常连接矿池。
  2. 在跳板机 RustMinerSystem 启动透明代理端口。
  3. 把本地 RMS 的远程地址改为跳板机地址和透明代理端口。
  4. 确认本地 RMS 连接成功,跳板机连接数增加。
  5. 到下一层 RustMinerSystem 查看矿工、算力和连接日志。
  6. 到最终矿池确认 worker 是否上线。

透明代理端口不会提供完整的钱包、矿工名、算力和抽水统计。排查业务数据时,应以下一层 RustMinerSystem 和最终矿池的数据为准。

常见错误

问题 处理方式
本地 RMS 无法连接跳板机 检查跳板机透明代理端口是否运行、防火墙是否放行、RMS 远程地址和端口是否正确。
跳板机有连接但下一层没有数据 检查跳板机目标地址是否填写为下一层 RustMinerSystem 的 RMS 端口,目标协议是否选择 TLS/SSL
下一层 RustMinerSystem 拒绝连接 检查本地 RMS 协议是否和下一层端口一致,RMS3 参数、密码、超级压缩和压缩级别是否匹配。
跳板机后台看不到算力 透明代理不解析数据,这是正常现象。请到下一层 RustMinerSystem 或矿池查看业务数据。