0%

Golang国内代理选哪个

目前在国内,比较有名的golang代理有两个: goproxy.iogoproxy.cn

问题

最近在开发golang项目过程中,通过 go get 安装依赖时总会出现报错的情况。

错误信息如下:

1
2
3
➜ go get -u github.com/tidwall/gjson
go: downloading github.com/tidwall/gjson v1.6.8
go get github.com/tidwall/gjson: github.com/tidwall/gjson@v1.6.8: Get "https://proxy.golang.com.cn/github.com/tidwall/gjson/@v/v1.6.8.zip": stopped after 10 redirects

我一直使用的是 goproxy.io 这个国内代理。

查看一下golang配置:

1
2
3
4
5
6
➜ go env
GO111MODULE="on"
GOARCH="amd64"
GOHOSTOS="darwin"
GOPROXY="https://goproxy.io,direct"
GOROOT="/usr/local/go"

上网一查才发现 goproxy.iogoproxy.cn 并不是一家,之前一直以为是同一个服务的两个不同域名。

解决

配置 goproxy.cn 代理:

1
2
3
➜ export GO111MODULE=on

➜ export GOPROXY=https://goproxy.cn,direct

查看配置信息:

1
2
3
4
5
6
7
8
➜ go env
GO111MODULE="on"
GOARCH="amd64"
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPROXY="https://goproxy.cn,direct"
GOROOT="/usr/local/go"

执行 go get

1
2
3
4
5
6
7
➜ go get -u github.com/tidwall/gjson
go: downloading github.com/tidwall/gjson v1.6.8
go: github.com/tidwall/gjson upgrade => v1.6.8
go: downloading github.com/tidwall/match v1.0.3
go: downloading github.com/tidwall/pretty v1.0.2
go: github.com/tidwall/pretty upgrade => v1.0.5
go: downloading github.com/tidwall/pretty v1.0.5

换用 goproxy.cn 后,发现 go get 命令已经没有问题了。

总结

Golang代理就用 goproxy.cn

goproxy.cn 现在是部署在七牛云上,所以稳定性还是很有保证的。

1
2
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn,direct

Go 1.13 以后版本

1
2
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

相关

如有疑问或需要技术讨论,请留言或发邮件到 service@itfanr.cc