以太坊测试网环境搭建: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服务:
- 创建服务文件:
sudo nano /etc/systemd/system/geth-sepolia.service - 粘贴以下内容(替换
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 - 启动并启用服务:
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控制台连接
适合需要在本地执行链上命令的场景:
- PC上安装Geth(和服务器端安装方式一致)
- 运行以下命令连接到服务器节点:
geth attach http://<你的服务器公网IP>:8545 - 验证连接:控制台输入
eth.blockNumber,返回Sepolia最新区块高度则连接成功。此时所有链上操作都通过服务器全节点执行,本地无需下载任何区块数据。
方式2:启动本地轻节点连接服务器P2P网络
如果希望本地有轻量缓存,可启动本地轻节点,将服务器作为引导节点:
- 在服务器Geth控制台获取节点enode地址:
把返回结果中的admin.nodeInfo.enodelocalhost替换成服务器公网IP,得到完整enode地址(如enode://xxxx@123.45.67.89:30303) - 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
相关产品推荐
相关产品推荐

