实践 › 运行自己的节点

运行自己的节点

为什么要运行 monerod、需要什么硬件以及如何配置

简而言之

自己的节点就是 monerod 下载并独立验证整条区块链。连接到自己节点的钱包不会向任何人暴露你的 IP,也不必信任任何他人的数据。你需要:64 位的 2–4 核 CPU、4–8 GB 内存、一块 SSD,空间约 100 GB(修剪模式)或约 250 GB(完整模式;数据截至 2026 年 1 月,仍在增长),以及稳定的网络连接。

为什么

  • 隐私:远程节点能看到你的 IP 以及你何时发送交易。自己的节点则不会。
  • 信任:你自己检查所有规则——发行、签名、证明。没有人能给你喂一段伪造的历史。
  • 帮助网络:公共节点向他人提供区块,还可以为钱包提供服务(受限 RPC)。
  • 通过 P2Pool 挖矿需要自己的节点。

硬件要求

最低配置(修剪模式)舒适配置(完整模式)
CPU64 位,2 核(树莓派 4/5 即可)4 核以上 x86-64——初始同步更快
内存4 GB8 GB 以上
硬盘SSD 约 100 GB + 余量SSD/NVMe 约 250 GB + 增长余量
网络不限流量;初始下载量 ≈ 数据库大小开放 18080 端口以接受入站节点
初始同步一天到数天在好的 NVMe 上几小时到一天
用机械硬盘不是好主意

LMDB 数据库会进行大量的随机读取。在机械硬盘上,同步可能需要几周。如果你只有机械硬盘,请使用修剪模式并保持耐心。

完整还是修剪

修剪节点保留验证新区块所需的一切,但会丢弃旧交易中 7/8 的“可修剪”数据(签名和证明——见交易结构)。它在同步时会完整验证整条链,完全适合给自己的钱包使用。节省空间:大约三分之二。唯一的区别是,修剪节点无法向他人提供完整的历史。

快速上手

  1. 从 getmonero.org/downloads 下载 CLI 压缩包并验证哈希(hashes.txt,由 binaryFate 签名)。
  2. 运行:
./monerod --prune-blockchain --enable-dns-blocklist

数据保存在 ~/.bitmonero(Linux/macOS)或 C:\ProgramData\bitmonero(Windows)。进度显示在日志中;交互式控制台接受 status、sync_info、print_height、exit 等命令。

钱包连接到 127.0.0.1:18081——在 Feather/GUI 中就是“节点”设置。

配置文件

与其使用很长的命令行,不如使用 ~/.bitmonero/bitmonero.conf:

# 数据与修剪
data-dir=/var/lib/monero
prune-blockchain=1
db-sync-mode=safe

# P2P
p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
out-peers=32
in-peers=64
enable-dns-blocklist=1
no-igd=1

# 仅供自己使用的 RPC(完全访问权限)
rpc-bind-ip=127.0.0.1
rpc-bind-port=18081

# 供他人钱包使用的公共受限 RPC(可选)
rpc-restricted-bind-ip=0.0.0.0
rpc-restricted-bind-port=18089
public-node=1
confirm-external-bind=1

# 供 P2Pool 使用的 ZMQ(可选)
zmq-pub=tcp://127.0.0.1:18083

# 通过 Tor 发送自己的交易(需要运行中的 tor)
# tx-proxy=tor,127.0.0.1:9050,16

端口

端口用途是否对互联网开放?
18080节点之间的 P2P是,如果你想帮助网络(接受入站节点)
18081完整 RPC(节点控制)否,仅限本机
18089供钱包使用的受限 RPC(约定俗成)可选——用于公共节点
18082 / 18083ZMQ RPC / ZMQ pub(P2Pool)否

作为服务运行(Linux,systemd)

[Unit]
Description=Monero daemon
After=network-online.target

[Service]
User=monero
ExecStart=/opt/monero/monerod --config-file /etc/monero/bitmonero.conf --non-interactive
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

保存为 /etc/systemd/system/monerod.service,然后运行 systemctl enable --now monerod。查看状态:/opt/monero/monerod status(该命令会自行连接到 RPC)。

通过 Tor:隐藏服务

你可以让节点以 .onion 地址访问——供你外出时自己的钱包使用,无需向互联网开放端口。在 torrc 中添加一个端口为 18089 的隐藏服务,并在 monerod 配置中添加 anonymous-inbound=your.onion:18083,127.0.0.1:18083,24,以便通过 Tor 进行 P2P 通信。详细说明见门罗币压缩包中的 ANONYMITY_NETWORKS.md。

维护

  • 每次硬分叉之前都要更新(尤其是 FCMP++)——否则节点会留在旧链上。
  • 已经同步好的完整数据库可以用 monero-blockchain-prune 进行修剪(见软件包内容)。
  • 注意磁盘空间:如果 LMDB 占满了磁盘,节点就会停止运行。