You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

以太坊测试网环境搭建:PC通过Geth连接本地服务器全节点方案

完全可行!本地服务器搭建以太坊测试网全节点并通过Geth连接的完整步骤

这正是很多开发者为了规避第三方节点依赖、节省本地磁盘/带宽资源的常用方案,我会分服务器端部署和PC端连接两部分给你详细说明:


一、服务器端:搭建以太坊测试网全节点

这里以目前最常用的Sepolia测试网为例,如果你需要其他测试网(比如Goerli),只需要把命令中的--sepolia替换成对应的参数即可。

1. 安装Geth

根据你的服务器操作系统选择安装方式:

  • 对于Ubuntu/Debian系统,直接用包管理器安装:
    sudo apt update && sudo apt install geth -y
    
  • 其他系统(如CentOS、macOS)可以下载官方预编译二进制包,或源码编译(包管理方式最省心)。

2. 启动全节点同步

运行以下命令启动Sepolia全节点,同时开启对外RPC服务:

geth --sepolia --syncmode full --http --http.addr 0.0.0.0 --http.port 8545 --http.corsdomain "*" --http.api eth,net,web3

参数解释:

  • --sepolia:指定连接Sepolia测试网
  • --syncmode full:启动全节点同步(下载所有区块数据,确保数据完全本地可控)
  • --http:开启HTTP RPC服务,允许外部设备连接
  • --http.addr 0.0.0.0:允许来自任意IP的RPC请求(如果只想让你的PC访问,可替换成PC的公网IP)
  • --http.port 8545:RPC服务默认端口,也可自定义
  • --http.corsdomain "*":允许跨域请求(后续用MetaMask等工具连接时需要)
  • --http.api eth,net,web3:开放常用API接口,满足基本查询、交易需求

3. 监控同步状态

首次同步需要下载全量区块数据(Sepolia目前约50GB),耗时取决于服务器带宽。新开终端连接Geth控制台查看进度:

geth attach http://localhost:8545

在控制台输入以下命令查看同步状态:

eth.syncing

返回false说明同步完成;返回对象则显示当前同步的区块范围。

4. 配置后台服务(可选但推荐)

让Geth节点在服务器重启后自动运行,配置systemd服务:

  1. 创建服务文件:
    sudo nano /etc/systemd/system/geth-sepolia.service
    
  2. 粘贴以下内容(替换your-user为服务器用户名):
    [Unit]
    Description=Geth Sepolia Full Node
    After=network.target
    
    [Service]
    User=your-user
    ExecStart=/usr/bin/geth --sepolia --syncmode full --http --http.addr 0.0.0.0 --http.port 8545 --http.corsdomain "*" --http.api eth,net,web3
    Restart=always
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启动并启用服务:
    sudo systemctl daemon-reload
    sudo systemctl start geth-sepolia
    sudo systemctl enable geth-sepolia
    

5. 防火墙配置

开放必要端口:

  • 8545端口:RPC服务端口,用于PC连接
  • 30303端口:P2P同步端口,用于节点间同步区块

以Ubuntu的ufw防火墙为例:

sudo ufw allow 8545/tcp
sudo ufw allow 30303/tcp
sudo ufw reload

二、PC端:连接到服务器的全节点

有两种常用连接方式,按需选择:

方式1:直接通过Geth控制台连接

适合需要在本地执行链上命令的场景:

  1. PC上安装Geth(和服务器端安装方式一致)
  2. 运行以下命令连接到服务器节点:
    geth attach http://<你的服务器公网IP>:8545
    
  3. 验证连接:控制台输入eth.blockNumber,返回Sepolia最新区块高度则连接成功。此时所有链上操作都通过服务器全节点执行,本地无需下载任何区块数据。

方式2:启动本地轻节点连接服务器P2P网络

如果希望本地有轻量缓存,可启动本地轻节点,将服务器作为引导节点:

  1. 在服务器Geth控制台获取节点enode地址:
    admin.nodeInfo.enode
    
    把返回结果中的localhost替换成服务器公网IP,得到完整enode地址(如enode://xxxx@123.45.67.89:30303)
  2. PC上运行以下命令启动轻节点:
    geth --sepolia --syncmode light --bootnodes <替换为你的服务器enode地址>
    
    本地轻节点会从服务器同步必要数据,无需全量下载。

额外:用MetaMask连接服务器节点

如果需要用钱包操作测试网,可在MetaMask中添加自定义网络:

  • RPC URL:http://<你的服务器公网IP>:8545
  • 链ID:11155111(Sepolia测试网链ID)
  • 货币符号:ETH
  • 区块浏览器URL:可填Sepolia官方浏览器地址

注意事项

  • 磁盘空间:全节点需预留至少100GB磁盘空间(测试网数据会持续增长)
  • 安全建议:不要开放adminAPI接口(避免恶意操作),若仅允许你的PC访问,可将--http.addr 0.0.0.0替换为PC公网IP,或在防火墙中限制8545端口的访问IP
  • 稳定性:服务器建议选择带宽充足、稳定的云服务器或本地硬件,避免同步中断

内容的提问来源于stack exchange,提问作者Stefano Angieri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:24:18