关于https://goproxy.cn,direct与https://proxy.golang.org的问题,国内无法访问https://proxy.golang.org设置了GOPROXY仍不可行

一步一步说:
首先,遇到报错信息

go: github.com/StackExchange/wmi@v0.0.0-20190523213315-cbe66965904d: Get "https://proxy.golang.org/github.com/%21stack%21exchange/wmi/@v/v0.0.0-20190523213315-cbe66965904d.mod": dial tcp 34.64.4.17:443: i/o timeout
make: *** [build_yaml] Error 1

类似的报错信息表示访问时被拒绝,国内无法访问https://proxy.golang.org。

然后,网上的一些建议推荐修改GOPROXY

go env -w GOPROXY=https://goproxy.cn,direct

终端执行命令后,通过go env可以看到修改了GOPROXY,但这对我无效!

我依旧会遇到上述问题

解决方法:

在你的运行命令前直接加上GOPROXY=https://goproxy.cn,direct,而不是先修改再执行你的命令。

即,不在终端中修改,而是直接修改源码

在下载的源码go-ethereum文件夹中找到Makefile文件,打开文件并修改GORUN,未修改前如下图

[转帖]关于https://goproxy.cn,direct与https://proxy.golang.org的问_github


修改为

env GO111MODULE=on GOPROXY=https://goproxy.cn,direct go run xxx

这样就可以运行了

OK!

原因我不是很清楚,貌似是之前设置的环境和命令运行的环境不是同一个环境,具体的想研究可参考以下链接:
https://github.com/goproxy/goproxy.cn/issues/93
https://github.com/goproxy/goproxy.cn/issues/29