理解三層隧道架構
深入理解 HashRelay 加密與轉發機制的原理。
HashRelay 是三跳隧道:矿机用明文 stratum 连本地客户端,客户端和服务端把这条流放进加密隧道,服务端再去连真实矿池。
text
Miner (plaintext Stratum)
│ TCP to the client LAN address
▼
Client ── encrypt ──► Server ── decrypt / route ──► Pool
local farm public host F2Pool, AntPool, …为什么是三跳
- 矿机留在局域网。它们不需要公网 IP,也不必自己打到海外矿池。
- 矿场到服务器之间是 TLS(TCP)或 QUIC。中间设备看到的是隧道,不是 stratum JSON。
- 只有服务器去连矿池,所以矿池侧的连接可以保持稳定,即使矿场上行不稳。
配置落在哪一层
- client.toml:服务器地址、端口、client_id、token、证书校验、传输偏好。没有矿机监听端口。
- server.toml:监听端口、TLS 模式、数据库、API、镜像引擎、预警。没有矿池列表。
- 数据库:矿池和端口映射。路由是静态的,监听端口 A 永远转到矿池 X。没有元数据路由,因为矿机固件不会带额外的路由标记。
加密
TCP 隧道始终走 TLS。QUIC 用它自带的 TLS 1.3。证书可以是自签(默认,没有域名)、ACME,或指定文件。还可以再加一层帧加密(AES-GCM 或 ChaCha20,frame_encrypt_alg 为 1 或 2),两端必须一致。架构说明里写明:QUIC 不再在自己的 TLS 上叠加第二层应用加密。
心跳默认 60 秒。连续 3 次没响应(大约 180 秒)就断开会话,客户端再重连。