RustMinerSystem

文档

CLI 模式修改 RustMinerSystem 配置

在 RustMinerSystem CLI 模式下编辑 rust-config、port-config.json 和 wallet-config.json,并通过 rustminer restart 使配置生效。

CLI 模式修改 RustMinerSystem 配置

CLI 模式下不通过 Web 后台修改配置,而是在服务器终端中直接编辑 RustMinerSystem 的配置文件。保存配置文件后,运行 rustminer restart 重启服务即可生效。

默认安装目录为:

cd /root/rustminersystem

如果你的程序目录经过定制或调试环境不同,请先在安装脚本中选择 21 查看运行状态和文件路径。

修改流程

推荐按下面顺序操作:

cd /root/rustminersystem

cp rust-config rust-config.bak.$(date +%Y%m%d%H%M%S)
cp port-config.json port-config.json.bak.$(date +%Y%m%d%H%M%S)
cp wallet-config.json wallet-config.json.bak.$(date +%Y%m%d%H%M%S)

nano rust-config
nano port-config.json
nano wallet-config.json

rustminer restart

也可以使用 vimvi 或其他文本编辑器。修改 JSON 文件后,建议先校验格式:

jq . port-config.json >/dev/null
jq . wallet-config.json >/dev/null

如果服务器没有安装 jq,至少要确认 JSON 的引号、逗号、中括号和大括号没有缺失。

rust-config

rust-config 是一行一个配置项的文本文件,格式为:

KEY=value

普通开关和端口直接写数字;数组或对象类配置使用单行 JSON。不要把一个 JSON 值拆成多行。

常用配置项:

配置项 说明
ENABLE_WEB_UI 是否开启 Web 管理后台。1 表示开启,0 表示关闭。CLI 模式要求关闭 Web 访问,即设置为 0
ENABLE_WEB_TLS Web 后台访问协议。1 表示 HTTPS,0 表示 HTTP。只有 Web 访问开启时才需要关注。
START_PORT Web 后台访问端口,建议使用 10000-65535 范围内的端口。
RMS_PORT RMS 接入端口,建议使用 10000-65535 范围内的端口。
POOLNODE_PORT PoolNode 访问端口,建议使用 10000-65535 范围内的端口。
IP_BLACKLIST IP 黑名单,JSON 数组格式。
WALLET_BLACKLIST 钱包黑名单,JSON 数组格式。
WALLET_WHITELIST 钱包白名单,JSON 数组格式。
POOL_ENDPOINT 自定义矿池和自定义钱包配置,JSON 对象格式。
RMS RMS 相关配置,JSON 对象格式。
WARNING_SETTING 告警配置,JSON 对象格式。

示例:

ENABLE_WEB_UI=0
ENABLE_WEB_TLS=0
START_PORT=46679
RMS_PORT=13293
POOLNODE_PORT=15354
IP_BLACKLIST=["203.0.113.10","198.51.100.20"]
WALLET_BLACKLIST=["wallet-name"]
WALLET_WHITELIST=[]

修改端口时,也可以用 sed 直接替换:

sed -i 's/^START_PORT=.*/START_PORT=46679/' rust-config
sed -i 's/^RMS_PORT=.*/RMS_PORT=13293/' rust-config
sed -i 's/^POOLNODE_PORT=.*/POOLNODE_PORT=15354/' rust-config

请不要把 REMOTE_KEYREMOTE_CODEOB_TOKEN、SMTP 密钥等令牌写入公开文档或截图。如果只是调整端口、Web 开关或黑名单,通常不需要修改这些密钥类字段。

port-config.json

port-config.json 是端口配置文件,整体是一个 JSON 数组,每个对象代表一个矿机接入端口。

端口 ID 格式

手动新增端口时,id 需要按固定格式生成:

前 5 位随机字母或数字 + . + 后 2 位随机数字

例如:

6YMpg.06
A1b2C.34

也可以理解为正则格式:[A-Za-z0-9]{5}\.[0-9]{2}。同一个 port-config.json 文件内不要重复使用相同的 id

常用字段:

字段 说明
id 端口 ID。已有端口建议保留原值;手动新增时使用 6YMpg.06 这种格式,并确保唯一。
port 本地监听端口,也就是矿机连接 RustMinerSystem 的端口。
name 端口名称,可为空。
currency 币种名称。
category 算法或分类名称。
protocol 矿机接入协议:0 TCP,1 TLS,3 TTS,5 RMS2,6 RMS3,8 RMS3(zstd),9 TP。
limit_connections 端口连接数限制。
pool_address 主矿池地址。
connect_mode 主矿池连接协议:0 TCP,1 TLS。
pool_address2 备用矿池地址,可为空。
connect_mode2 备用矿池连接协议:0 TCP,1 TLS。
mode 端口模式:0 高效模式,1 兼容模式。

示例:

[
    {
        "id": "6YMpg.06",
        "port": 47777,
        "name": "IRON proxy",
        "currency": "IRON",
        "category": "blake3s",
        "protocol": 1,
        "limit_connections": 65535,
        "pool_address": "hk.ironfish.example.com:1145",
        "pool_address2": "",
        "connect_mode": 0,
        "connect_mode2": 0,
        "mode": 0,
        "proxy_addr": null,
        "proxy_device": null,
        "pattern_addr": "",
        "replace_addr": "",
        "status": 2,
        "error": "",
        "nc": 1
    }
]

如果只修改某个端口的矿池地址,可以使用 jq

jq 'map(if .id == "6YMpg.06" then .pool_address = "hk.ironfish.example.com:1145" else . end)' port-config.json > port-config.json.tmp
mv port-config.json.tmp port-config.json
rustminer restart

wallet-config.json

wallet-config.json 是钱包配置文件,整体也是一个 JSON 数组。每个对象代表一条钱包或设备相关的转发、费率配置。

钱包 ID 与端口关联

手动新增钱包配置时,id 也使用同样的随机格式:

前 5 位随机字母或数字 + . + 后 2 位随机数字

例如 AFq3H.35。同一个 wallet-config.json 文件内不要重复使用相同的 id

server_id 不是随便生成的随机值,它必须填写 port-config.json 中某个端口的 id。也就是说,如果某个端口配置是:

{
    "id": "6YMpg.06",
    "port": 47777
}

那么绑定到这个端口的钱包配置应写成:

{
    "id": "AFq3H.35",
    "server_id": "6YMpg.06"
}

常用字段:

字段 说明
id 钱包配置 ID。已有记录建议保留原值;手动新增时使用 AFq3H.35 这种格式,并确保唯一。
server_id 关联的端口 ID,必须对应 port-config.json 中某个端口对象的 id,不要填端口号,也不要随机生成。
addr 钱包名称或钱包标识。
device 设备名称。
pool_address 钱包对应的矿池地址。
pool_protocol 钱包矿池连接协议:0 TCP,1 TLS。
ratio 钱包费率,使用小数表示。例如 0.03 表示 3%。

示例:

[
    {
        "id": "AFq3H.35",
        "server_id": "6YMpg.06",
        "addr": "wallet-main",
        "device": "MY20602",
        "pool_address": "kas.example.com:443",
        "pool_protocol": 0,
        "ratio": 0.03
    }
]

把某个钱包费率改为 5% 的示例:

jq 'map(if .id == "AFq3H.35" then .ratio = 0.05 else . end)' wallet-config.json > wallet-config.json.tmp
mv wallet-config.json.tmp wallet-config.json
rustminer restart

生效与回滚

修改完成后必须重启:

rustminer restart

如果重启后无法连接端口或配置异常,可以恢复备份:

cp rust-config.bak.YYYYMMDDHHMMSS rust-config
cp port-config.json.bak.YYYYMMDDHHMMSS port-config.json
cp wallet-config.json.bak.YYYYMMDDHHMMSS wallet-config.json
rustminer restart

恢复时请把 YYYYMMDDHHMMSS 换成你实际备份文件名中的时间。