环境
Remix :Win10中 Chrome浏览器打开Remix https://remix.ethereum.org/
Geth(版本1.10.16):运行在VMware中Centos虚拟机中
操作时间:2022-03-24
问题
在使用Remix中Web3 Provider连接Geth私链时,一直连接不成功。
虚拟机中Geth启动命令:
geth --datadir data --networkid 18 --http --http.corsdomain "*" --http.addr "0.0.0.0" --http.vhosts "*" --http.port 8545 --http.api db,web3,eth,debug,personal,net,miner,admin --rpc.allow-unprotected-txs --allow-insecure-unlock --port 30303 console 2> 1.log
Win10中能ping通虚拟机中的IP地址并且能telnet通端囗。
连接时配置如下:

此时会在Remix左下角出现错误提示:

解决问题过程(费时)
网上查到一种解决方案,将Remix的https访问(https://remix.ethereum.org/)改成http访问(http://remix.ethereum.org/),尝试此方法,但是仍没成功。这种方法可能在某个时间段内是可以的,但是现在不可以了。
当然也尝试了启动Geth方式及修改各种配置和参数,仍无结果。最后请教了我的老师,提供了2种方法。
终极解决
1、解决方案一
连接不成功,可能是Remix升级了之后做了限制。因此在虚拟机Centos中的图形界面,使用Chrome浏览器打开Remix(https访问),通过 Web3 Provider 配置 Endpoint 为http://127.0.0.1:8545 连接成功,成功后如下图所示:

此方案Remix的访问与Geth的部署同在一个虚拟机中。
2、解决方案二
(1)使用Metamask浏览器钱包连接虚拟机中的Geth,步骤如下面两图所示:


(2)Remix使用Injected Web3连接Metamask钱包中的Geth

此方法是Remix借助Metamask钱包跳转到Geth,实现了Win10中的Remix连接上虚拟机中的Geth。
本文介绍了解决Remix无法连接Geth私链的问题,提供了两种有效的方法:一是在同一虚拟机中使用Chrome访问Remix并配置连接;二是通过Metamask在不同设备间建立桥梁。
5041

被折叠的 条评论
为什么被折叠?



