以太坊作为全球领先的智能合约平台和去中心化应用(DApp)生态系统的基石,其核心依赖于一个去中心化的网络,在 Linux 环境下运行以太坊全节点,不仅是为网络贡献算力和存储、维护去中心化精神的重要方式,也是开发者、研究者和深度用户参与生态、进行测试和部署的必备技能,本文将详细介绍在 Linux 系统下运行以太坊全节点的步骤、方法和注意事项。
在开始之前,先了解一下在 Linux 下运行以太坊节点的优势:
在动手之前,需要了解几个关键概念:
在开始安装之前,请确保你的 Linux 系统满足以下基本要求:

sudo 权限的非 root 用户进行操作,以避免不必要的系统风险。以下是使用目前主流的客户端组合(Geth Lodestar)为例的详细步骤,其他客户端组合类似,可参考各自官方文档。
首先更新系统包列表并安装必要的依赖:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential curl git wget software-properties-common unzip
Geth 是最广泛使用的以太坊执行客户端之一。
下载 Geth: 访问 Geth 官方 GitHub Releases 页面 (https://github.com/ethereum/go-ethereum/releases) 下载适合你 Linux 系统架构(通常是 amd64)的最新稳定版二进制文件,或者使用以下命令直接下载(请替换为最新版本号):
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.11-4e844eb4.tar.gz
解压并放置到系统路径:
tar -xvzf geth-linux-amd64-1.13.11-4e844eb4.tar.gz sudo mv geth-linux-amd64-1.13.11-4e844eb4/geth /usr/local/bin/
验证安装:
geth version
如果显示版本信息,则安装成功。
Lodestar 是由 Chainlink 开发的以太坊 2.0 共识客户端,用 TypeScript/Node.js 编写。

安装 Node.js 和 npm:Lodestar 需要 Node.js 环境。
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs
安装 Lodestar:
npm install -g @chainsafe/lodestar
验证安装:
lodestar --version
在启动节点之前,建议创建一个单独的目录来存放区块链数据。
创建数据目录:
mkdir -p ~/ethereum/geth_data mkdir -p ~/ethereum/lodestar_data
启动执行客户端 (Geth):
基本启动命令(会从零开始同步区块):
geth --datadir ~/ethereum/geth_data --http --http.addr "0.0.0.0" --http.port "8545" --http.vhosts "*" --ws --ws.addr "0.0.0.0" --ws.port "8546" --ws.origins "*"
参数说明:

--datadir: 指定数据存储目录。--http: 启用 HTTP-RPC 服务,方便与其他工具(如 MetaMask)交互。--http.addr "0.0.0.0": 允许任何 IP 访问 HTTP 服务(生产环境请谨慎设置,建议绑定内网 IP 或使用防火墙限制)。--http.port "8545": HTTP-RPC 端口。--ws: 启用 WebSocket-RPC 服务。--ws.addr "0.0.0.0": 允许任何 IP 访问 WebSocket 服务。--ws.port "8546": WebSocket-RPC 端口。--syncmode "full": 明确指定为全节点同步模式(默认也是 full)。--gcmode "full": 运行模式,"full" 为全节点,"archive" 为归档节点(归档节点同步更慢,但数据更全)。如果已有快照数据,可以导入以加速同步(快照可从第三方服务获取,但需注意安全性)。
启动共识客户端 (Lodestar):
在另一个终端窗口中执行:
lodestar beacon --network mainnet --datadir ~/ethereum/lodestar_data --execution-endpoint http://localhost:8551 --jwt-secret ~/ethereum/jwt.hex
参数说明:
--network mainnet: 指定主网。
--datadir: 指定 Lodestar 数据目录。
--execution-endpoint: 指向执行客户端的 HTTP-RPC 地址(Geth 默认 HTTP 端口是 8545,但 Lodestar 默认期望 8551,可能需要 Geth 使用 --http.port 8551 或 Lodestar 使用 --execution-endpoint http://localhost:8545 并调整 JWT)。
--jwt-secret: 指定一个 JWT 密钥文件,用于执行客户端和共识客户端之间的安全通信,需要先创建这个文件:
mkdir