关于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
- 1
- 2
类似的报错信息表示访问时被拒绝,国内无法访问https://proxy.golang.org。
然后,网上的一些建议推荐修改GOPROXY
go env -w GOPROXY=https://goproxy.cn,direct
- 1
终端执行命令后,通过go env可以看到修改了GOPROXY,但这对我无效!
我依旧会遇到上述问题
解决方法:
在你的运行命令前直接加上GOPROXY=https://goproxy.cn,direct,而不是先修改再执行你的命令。
即,不在终端中修改,而是直接修改源码
在下载的源码go-ethereum文件夹中找到Makefile文件,打开文件并修改GORUN,未修改前如下图
修改为:
env GO111MODULE=on GOPROXY=https://goproxy.cn,direct go run xxx
- 1
这样就可以运行了
OK!
原因我不是很清楚,貌似是之前设置的环境和命令运行的环境不是同一个环境,具体的想研究可参考以下链接:
https://github.com/goproxy/goproxy.cn/issues/93
https://github.com/goproxy/goproxy.cn/issues/29