文档
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 中创建代理端口时,按以下方式配置:
- 监听协议选择
TP或透明代理。 - 监听端口填写本地 RMS 要连接的端口。
- 主矿池地址填写下一层 RustMinerSystem 的 RMS 端口地址,例如
next-rustminer.example.com:9000。 - 目标矿池协议选择
TLS/SSL。 - 抽水、钱包替换、矿工名替换等解析类功能保持关闭或忽略。
需要特别注意:跳板机的目标地址协议必须选择 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 之间保持一致。
验证步骤
- 在下一层 RustMinerSystem 确认 RMS 端口已经运行,并能正常连接矿池。
- 在跳板机 RustMinerSystem 启动透明代理端口。
- 把本地 RMS 的远程地址改为跳板机地址和透明代理端口。
- 确认本地 RMS 连接成功,跳板机连接数增加。
- 到下一层 RustMinerSystem 查看矿工、算力和连接日志。
- 到最终矿池确认 worker 是否上线。
透明代理端口不会提供完整的钱包、矿工名、算力和抽水统计。排查业务数据时,应以下一层 RustMinerSystem 和最终矿池的数据为准。
常见错误
| 问题 | 处理方式 |
|---|---|
| 本地 RMS 无法连接跳板机 | 检查跳板机透明代理端口是否运行、防火墙是否放行、RMS 远程地址和端口是否正确。 |
| 跳板机有连接但下一层没有数据 | 检查跳板机目标地址是否填写为下一层 RustMinerSystem 的 RMS 端口,目标协议是否选择 TLS/SSL。 |
| 下一层 RustMinerSystem 拒绝连接 | 检查本地 RMS 协议是否和下一层端口一致,RMS3 参数、密码、超级压缩和压缩级别是否匹配。 |
| 跳板机后台看不到算力 | 透明代理不解析数据,这是正常现象。请到下一层 RustMinerSystem 或矿池查看业务数据。 |
