8545 是什么
8545 是各类以太坊节点默认的 HTTP 接口端口:钱包与去中心化应用通过它查询链上数据、估算费用并发送交易;同一节点常另开一个相邻端口提供订阅能力,本地开发链工具也沿用这个默认值。
风险取决于账户状态
如果节点上加载了账户且处于解锁状态,任何能访问该接口的人都可以直接转走资产;历史上因接口公网开放导致的盗币事件屡见不鲜。因此它必须只监听本机或受控网段,并按业务需要开放最少的方法权限。
基本信息
| 服务 | 以太坊节点 HTTP 接口 |
|---|---|
| 协议 | TCP/HTTP 8545,订阅常用相邻端口 |
| 用途 | 链上查询、交易发送、应用后端 |
| 风险条件 | 接口可达且账户解锁 |
| 安全等级 | 严禁公网暴露 |
典型使用场景
- 应用后端查询链上数据与合约状态
- 钱包与工具发起交易、估算费用
- 本地开发链用于调试合约逻辑
- 排查应用报错时确认接口可达性与开放的权限范围
- 安全核查时确认接口是否只监听本机
本机调用检查
本机调用检查
curl -s -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://127.0.0.1:8545
ss -lntp | grep 8545 # 确认监听地址是本机还是全网卡启动与加固要点
启动与加固要点
# 仅监听本机,且只开放查询类接口
# geth --http --http.addr 127.0.0.1 --http.port 8545 --http.api eth,net,web3
# 不要开放管理类接口,也不要让进程加载解锁状态的账户接口对照
| 接口类型 | 端口 | 说明 |
|---|---|---|
| HTTP 接口 | 8545 | 查询与发送交易 |
| 订阅接口 | 相邻端口 | 事件推送,常用于监听新区块 |
| 管理接口 | 默认关闭 | 权限极高,切勿对外开放 |
公网扫描一直在寻找这个端口:接口可达且账户处于解锁状态时,资产被批量转走可能只发生在一瞬间,事后基本无法追回,因此监听地址与账户状态必须同时收敛。
对外提供查询能力的做法
需要给其他系统提供链上查询能力时,常见做法是在前端加一层受控代理:只暴露查询类方法、限制调用频率并记录来源,而不是把节点接口直接开放给调用方;代理层还能在接口返回异常时统一兜底与降级。
密钥与升级管理:节点相关的密钥文件应按最高等级保护,避免与业务代码或普通配置文件放在同一目录;节点升级前先确认钱包与控制台工具的版本兼容性,再执行变更。