:2026-02-11 18:03 点击:8
以太坊作为全球领先的智能合约平台和去中心化应用(DApp)的底层基础设施,吸引了大量开发者和用户,在 Linux 系统上安装和运行以太坊节点,无论是对于参与网络共识、开发 DApp,还是进行链上数据分析,都是一项基础且重要的技能,本文将以主流的 Linux 发行版(如 Ubuntu/Debian)为例,详细介绍如何从零开始安装和运行以太坊节点。
准备工作
在开始安装之前,请确保您的 Linux 系统满足以下基本要求:
sudo 权限的非 root 用户进行操作,以确保安全性。安装依赖项
更新系统包列表并安装必要的依赖软件:
sudo apt update sudo apt upgrade -y sudo apt install -y build-essential git wget software-properties-common curl libsnappy-dev libc6-dev ncurses-dev unzip libgmp-dev libssl-dev libboost-all-dev autoconf automake libtool
这些依赖项包括编译工具、开发库等,对于后续安装以太坊客户端至关重要。
选择并安装以太坊客户端
以太坊有多种客户端实现,它们遵循相同的以太坊协议规范,但在性能、功能、资源消耗和开发语言上有所不同,最主流的全节点客户端包括:
对于大多数只想运行以太坊 1.0 全节点的用户,Geth 是最常见的选择,本文以 Geth 为例进行讲解。
1 安装 Geth
下载 Geth 二进制文件: 最简单的方式是从 GitHub 的官方发布页面下载预编译的二进制文件,首先访问 Geth 的 GitHub Releases 页面:https://github.com/ethereum/go-ethereum/releases
找到最新稳定版本(v1.13.11),下载适用于 L

geth-alltools-linux-amd64-<version>.tar.gz)。
您也可以使用 wget 直接下载(请替换 <version> 为实际版本号):
# 请替换为最新版本号
VERSION="1.13.11"
wget https://github.com/ethereum/go-ethereum/releases/download/v${VERSION}/geth-alltools-linux-amd64-${VERSION}.tar.gz
解压并安装:
tar -xvzf geth-alltools-linux-amd64-${VERSION}.tar.gz
cd geth-alltools-linux-amd64-${VERSION}
解压后,您会看到 geth 等可执行文件,您可以将它们复制到系统的 PATH 中,/usr/local/bin:
sudo cp geth bootnode rlpdump /usr/local/bin/
验证安装:
geth version
如果能看到 Geth 的版本信息,则表示安装成功。
启动并同步以太坊节点
安装完成后,就可以启动 Geth 节点了,Geth 提供了多种启动选项,以满足不同的需求。
1 基本启动命令
最简单的启动全节点命令是:
geth --http
--http:启用 HTTP-RPC 服务,默认监听 8545 端口,方便与 DApp 或工具交互(如 MetaMask)。2 常用启动选项
为了更好地控制节点行为,通常会添加更多选项:
指定数据目录:
默认情况下,Geth 将数据存储在 ~/.ethereum 目录下,如果您有多个节点或希望指定其他位置:
geth --http --datadir /path/to/your/ethereum/data
选择同步模式:
--syncmode:指定同步模式。fast(默认):快速同步,先下载状态,再同步区块头和交易,是目前推荐的全节点同步方式。full:完整同步,从创世块开始逐块同步,耗时非常长,但数据最完整。light:轻节点,只同步区块头,不存储完整状态和交易,资源消耗小,但功能受限。geth --http --syncmode fast
启用 WebSocket: 如果需要通过 WebSocket 与节点交互(例如一些前端应用):
geth --http --ws --ws.addr 0.0.0.0 --ws.port 8546
--ws:启用 WebSocket 服务。--ws.addr 0.0.0.0:监听所有网络接口(默认只监听本地 0.0.1)。--ws.port 8546:指定 WebSocket 端口。设置 RPC API:
默认情况下,HTTP-RPC 只开放部分 API,您可以通过 --http.api 选项指定要开放的 API:
geth --http --http.api eth,net,web3,personal
常见 API 包括 eth, net, web3, personal, admin 等。admin API 权限较高,请谨慎开放。
控制台交互: 启动 Geth 时可以附加一个 JavaScript 控制台,方便直接操作:
geth --http --console
启动后会进入 > 提示符,可以输入命令,如 eth.blockNumber 查看当前区块号。
3 后台运行
为了让节点在后台持续运行,可以使用 nohup 或 systemd 服务。
使用 nohup:
nohup geth --http --syncmode fast --datadir /path/to/your/ethereum/data > geth.log 2>&1 &
这会将 Geth 的输出重定向到 geth.log 文件,并且即使关闭终端,Geth 也会继续运行。
使用 systemd(推荐):
创建一个 systemd 服务文件:
sudo nano /etc/systemd/system/geth.service
在文件中添加以下内容(请根据您的实际路径和参数修改):
[Unit] Description=Geth Ethereum Client After=network.target [Service] User=your_username # 替换为您的用户名 Type=simple Restart=always RestartSec=5 ExecStart=/usr/local/bin/geth --http --syncmode fast --datadir /home/your_username/.ethereum StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target
保存后,启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable geth sudo systemctl start geth
您可以使用 `sudo
本文由用户投稿上传,若侵权请提供版权资料并联系删除!