EC2实例中MetaMask无法识别Hardhat网络:提示无法获取链ID
解决Hardhat节点远程无法连接的问题
核心问题
Hardhat Node默认仅绑定127.0.0.1本地回环地址,导致EC2外部无法访问;另外你启动命令用了npm hardhat node,正确的调用方式应为npx hardhat node。
解决步骤
1. 正确启动Hardhat节点并绑定公网可访问地址
启动时指定绑定所有网卡(0.0.0.0)和端口,让EC2的公网IP能接收远程请求:
npx hardhat node --host 0.0.0.0 --port 8545
2. 修正hardhat.config.js配置
原配置存在语法错误(localhost与hardhat节点配置间缺少逗号),需调整为如下正确格式:
module.exports = { solidity: "0.8.4", // 可根据你的项目需求调整Solidity版本 networks: { localhost: { url: "http://ec2-44-242-170-11.us-west-2.compute.amazonaws.com:8545", chainId: 31337 }, hardhat: { chainId: 31337 // Hardhat默认链ID,无需修改为其他值 } } };
3. MetaMask配置验证
- 新增网络时,RPC URL填写
http://ec2-44-242-170-11.us-west-2.compute.amazonaws.com:8545 - Chain ID严格填写
31337,与Hardhat配置保持一致 - 再次确认EC2安全组入站规则已开放
8545端口(允许你的客户端IP或所有IP访问)
内容的提问来源于stack exchange,提问作者John Daniels
相关产品推荐
相关产品推荐

