文档
TCMinerProxy 透明代理
了解 TCMinerProxy 透明代理的工作方式、与纯转发的区别,以及 TMS 到 TCMinerProxy 跳板机再到下一层 TCMinerProxy 的配置方法。
透明代理
透明代理用于把进入端口的数据原样转发到目标地址。它不解析矿机协议、不识别钱包和矿工名,也不在当前 TCMinerProxy 节点上做抽水、替换、统计等需要解析数据的处理。
可以把它理解为一种更适合做链路跳板的透明转发:来什么数据,就把什么数据发到目标地址。
和纯转发的区别
纯转发通常把目标地址设置为矿池地址。矿机直接连接 TCMinerProxy 的纯转发端口后,数据会被转发到上游矿池,适合只想把矿机入口集中到一个端口的场景。
透明代理更常用于 TCMinerProxy 节点之间的跳转。它的目标地址不一定是矿池,也可以是下一层 TCMinerProxy 的 TMS 端口。这样第一台 TCMinerProxy 不需要解密、解压或转换协议,只负责把本地加密压缩链路继续送到下一台服务器。
适用场景
如果本地已经使用 TMS、HAProxy 或其他加密、压缩、转发工具,数据到达第一台 TCMinerProxy 后,还需要继续转发到另一台 TCMinerProxy,再由下一层 TCMinerProxy 连接矿池,此时透明代理会更简单。
典型链路如下:
本地 TMS -> TCMinerProxy 透明代理跳板机 -> 下一层 TCMinerProxy TMS 端口 -> 矿池
如果不用透明代理,第一台 TCMinerProxy 通常需要先解析或解密本地 TMS 数据,再重新封装成下一层 TCMinerProxy 需要的协议。这样配置更复杂,中间还会多一次加解密或压缩处理,增加 CPU 开销和延迟风险。
配置思路
透明代理配置的关键是:跳板机只做透明传输,真正处理 TMS 协议的是下一层 TCMinerProxy。
| 位置 | 配置重点 |
|---|---|
| 本地 TMS | 远程地址填写跳板机的 TCMinerProxy 透明代理地址和端口。 |
| 跳板机 TCMinerProxy | 创建透明代理端口,目标地址填写下一层 TCMinerProxy 的 TMS 端口地址。 |
| 下一层 TCMinerProxy | 创建 TMS2、TMS3 或 TMS3(Zstd) 端口,并连接最终矿池。 |
跳板机端口配置
在跳板机 TCMinerProxy 中创建代理端口时,按以下方式配置:
- 监听协议选择
TP或透明代理。 - 监听端口填写本地 TMS 要连接的端口。
- 主矿池地址填写下一层 TCMinerProxy 的 TMS 端口地址,例如
next-tcminerproxy.example.com:9000。 - 目标矿池协议选择
TLS/SSL。 - 抽水、钱包替换、矿工名替换等解析类功能保持关闭或忽略。
需要特别注意:跳板机的目标地址协议必须选择 TLS/SSL。因为下一层 TCMinerProxy 的 TMS 端口使用加密通道,跳板机需要把本地 TMS 发来的数据原样送到这个 TLS/SSL 目标上。
TMS 协议匹配
本地 TMS 使用的协议必须和下一层 TCMinerProxy 的 TMS 端口协议一致。
| 本地 TMS 使用 | 下一层 TCMinerProxy 端口应选择 |
|---|---|
| TMS2 | TMS2 |
| TMS3 | TMS3 |
| TMS3(Zstd) | TMS3(Zstd) |
跳板机端口本身只做透明代理,不负责把 TMS2 转成 TMS3,也不会把 TMS3(Zstd) 转成其他协议。协议版本、压缩级别、超级压缩等参数,仍然需要在本地 TMS 和下一层 TCMinerProxy 之间保持一致。
验证步骤
- 在下一层 TCMinerProxy 确认 TMS 端口已经运行,并能正常连接矿池。
- 在跳板机 TCMinerProxy 启动透明代理端口。
- 把本地 TMS 的远程地址改为跳板机地址和透明代理端口。
- 确认本地 TMS 连接成功,跳板机连接数增加。
- 到下一层 TCMinerProxy 查看矿工、算力和连接日志。
- 到最终矿池确认 worker 是否上线。
透明代理端口不会提供完整的钱包、矿工名、算力和抽水统计。排查业务数据时,应以下一层 TCMinerProxy 和最终矿池的数据为准。
常见错误
| 问题 | 处理方式 |
|---|---|
| 本地 TMS 无法连接跳板机 | 检查跳板机透明代理端口是否运行、防火墙是否放行、TMS 远程地址和端口是否正确。 |
| 跳板机有连接但下一层没有数据 | 检查跳板机目标地址是否填写为下一层 TCMinerProxy 的 TMS 端口,目标协议是否选择 TLS/SSL。 |
| 下一层 TCMinerProxy 拒绝连接 | 检查本地 TMS 协议是否和下一层端口一致,TMS3 参数、密码、超级压缩和压缩级别是否匹配。 |
| 跳板机后台看不到算力 | 透明代理不解析数据,这是正常现象。请到下一层 TCMinerProxy 或矿池查看业务数据。 |
