Golang代理设置

go modules是go1.11版本加的新特性。Modules模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

1. 使用go mod

  1. 升级go版本,go version >= 1.11
  2. 设置环境变量GO111MODULE
go env #查看go环境变量

go env -w GO111MODULE=off #go命令行将不会支持modules功能,依赖包会去gopath下寻找
go env -w GO111MODULE=on  #go命令行会使用modules
go env -w GO111MODULE=auto  #在 $GOPATH/src外面且根目录有 go.mod 文件时,开启模块支持

2. goproxy代理

解决go模块在中国区无法访问的问题

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct #从镜像站点快速拉取模块

3. goprivate有什么用

go 命令会从公共镜像站点下载依赖包,并对模块包进行安全校验。
当模块库是私有仓库时,需要设置goprivate,这样就可以跳过代理服务和校验检查,这个变量的值支持用逗号分隔,可以填写多个值

go env -w GOPRIVATE=*.gitlab.com,*.gitee.com #一般是公司私有git仓库的域名地址

4. gosumdb有什么用

GOSUMDB(go checksum database)是Go官方为了go modules安全考虑,设定的module校验数据库,服务器地址为:sum.golang.org
如果在运行go mod vendor时,提示Get https://sum.golang.org/lookup/xxxxxx: dial tcp 216.58.200.49:443: i/o timeout,则是因为Go
1.13设置了默认的GOSUMDB=sum.golang.org,这个网站是被墙了的,用于验证包的有效性

go env -w GOSUMDB=off #关闭module校验
go env -w GOSUMDB="sum.golang.google.cn" #专门为国内提供的sum 验证服务

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注