在使用Golang进行项目开发时,默认情况下go命令会从境外的模块仓库拉取依赖,受网络环境影响,经常会出现下载速度慢、超时失败等问题。通过配置国内镜像代理,可以将模块拉取请求转发到国内的镜像服务器,大幅提升下载速度,保障开发流程顺畅。

临时配置国内镜像
如果只是临时需要加速某一次模块下载,可以直接在命令行中设置环境变量,这种方式仅对当前终端会话生效,关闭终端后配置会失效。
Linux和macOS系统
在终端中执行以下命令:
# 设置GOPROXY为国内七牛云镜像 export GOPROXY=https://goproxy.cn,direct # 可选:设置GOSUMDB为关闭,避免校验失败 export GOSUMDB=off
Windows系统
在命令提示符或者PowerShell中执行以下命令:
# 设置GOPROXY为国内七牛云镜像 $env:GOPROXY = "https://goproxy.cn,direct" # 可选:设置GOSUMDB为关闭 $env:GOSUMDB = "off"
永久配置国内镜像
如果需要让配置长期生效,可以将环境变量写入系统配置文件,不同系统的操作方式有所区别。
Linux和macOS系统
如果是bash shell,编辑~/.bashrc文件,如果是zsh shell,编辑~/.zshrc文件,在文件末尾添加以下内容:
export GOPROXY=https://goproxy.cn,direct export GOSUMDB=off
添加完成后执行source ~/.bashrc或者source ~/.zshrc让配置生效。
Windows系统
右键点击此电脑,选择属性,进入高级系统设置,点击环境变量,在用户变量或者系统变量中新建两个变量:
- 变量名:GOPROXY,变量值:https://goproxy.cn,direct
- 变量名:GOSUMDB,变量值:off
设置完成后重启终端即可生效。
验证配置是否生效
配置完成后可以通过以下方式验证是否生效:
查看当前配置
执行以下命令查看GOPROXY的配置值:
go env GOPROXY
如果输出结果为https://goproxy.cn,direct,说明配置已经生效。
实际下载测试
新建一个测试目录,初始化一个go模块,然后拉取一个常用的依赖,查看下载速度:
# 初始化模块 go mod init test # 拉取gin框架依赖 go get github.com/gin-gonic/gin
如果依赖能够快速下载完成,没有出现超时错误,说明国内镜像配置成功。
其他可用国内镜像
除了七牛云的https://goproxy.cn之外,还有其他可用的国内镜像地址:
- 阿里云镜像:https://mirrors.aliyun.com/goproxy/
- 官方中国镜像:https://goproxy.cn(和七牛云为同一地址)
可以将GOPROXY的值替换为上述地址,配置方式完全一致。
常见问题处理
配置后仍然下载失败
可以尝试在GOPROXY的值后面添加direct,表示如果镜像拉取失败,尝试直接从源地址拉取,配置格式为镜像地址,direct。
GOSUMDB校验失败
如果出现sum校验相关的错误,可以将GOSUMDB设置为off,关闭校验功能,或者将GOSUMDB设置为国内镜像的校验地址。
模块拉取提示404错误
检查GOPROXY的地址是否正确,确认镜像服务是否正常运行,也可以尝试更换其他国内镜像地址。