Go mod代理配置
在Go 1.13中,可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理.
# 设置GOPROXY代理
$ go env -w GOPROXY=https://goproxy.cn,direct
# 设置GOPRIVATE跳过私有库(常用的Gitlab或Gitee,中间使用逗号分隔)
$ go env -w GOPRIVATE=*.gitlab.com,*.gitee.com
1
2
3
4
5
2
3
4
5
- 如果在运行go mod vendor时,提示
Get https://sum.golang.org/lookup/xxxxxx: dial tcp 216.58.200.49:443: i/o timeout
,则是因为Go1.13设置了默认的GOSUMDB=sum.golang.org
,这个网站是被墙了的,用于验证包的有效性,可以通过如下命令关闭:
# 关闭`GOSUMDB`
$ go env -w GOSUMDB=off
# 也可以设置 `GOSUMDB="sum.golang.google.cn"`,这个是专门为国内提供的sum验证服务.
$ go env -w GOSUMDB="sum.golang.google.cn"
1
2
3
4
5
2
3
4
5
go env -w GOPROXY=***
设置GOPROXY报如下错误:
warning: go env -w GOPROXY=... does not override conflicting OS environment variable
1
原因: 用环境变量的方式设置过代理地址,go13提供了 -w
参数来设置GOPROXY变量,但无法覆盖OS级别的环境变量
解决方法:
$ set GOPROXY=
$ go env -w GOPROXY=https://goproxy.cn,direct
# 或
$ set GOPROXY=https://goproxy.cn,direct
# 永久设置环境变量
$ setx GOPROXY "https://goproxy.cn,direct"
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
如果使用goland开发,先去 File
>Settings
>Go
>Go Modules(vgo)
>Enable Go Modules (vgo) integration
取消勾选,它会导致 go env -w
出错.或勾选后直接在 Proxy
里配置代理.
上次更新: 2024/04/09, 16:48:42
- 01
- AWS NAT-NetWork-Firwalld配置(一)04-09
- 02
- AWS NAT-NetWork-Firwalld配置(二)04-09
- 03
- kubernetes部署minio对象存储01-18