在中国大陆使用Go语言进行开发时,经常会遇到访问golang.org
等国外资源速度慢或不稳定的问题。为了解决这个问题,可以通过设置Go模块代理(GOPROXY)来使用国内的镜像服务。以下是一些常用的国内Go代理服务及其配置方法:
七牛云 提供的
goproxy.cn
:go env -w GOPROXY=https://goproxy.cn,direct
参考:
阿里云 提供的
mirrors.aliyun.com
:go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
官方全球代理:
go env -w GOPROXY=https://proxy.golang.com.cn,direct
GoCenter:
go env -w GOPROXY=https://gocenter.io,direct
百度 提供的
goproxy.bj.bcebos.com
:go env -w GOPROXY=https://goproxy.bj.bcebos.com/,direct
在设置代理时,direct
是一个特殊指示符,它告诉Go当代理无法找到模块时,直接从源(如GitHub)获取。
如果你使用的Go版本大于等于1.13,你还可以通过设置GOPRIVATE
环境变量来指定哪些私有仓库不通过代理访问,例如:
go env -w GOPRIVATE=*.corp.example.com
此外,如果你需要使用dep
这个依赖管理工具,由于它已经被Go Modules取代,你可能需要配置命令行代理以便能够同步依赖。你可以设置环境变量来配置代理,例如:
export http_proxy='127.0.0.1:1080'
export https_proxy='127.0.0.1:1080'
并在你的.bashrc
或.bash_profile
中添加alias以便快速开启和关闭代理:
alias setss='export {http_proxy,https_proxy}=http://127.0.0.1:1080'
alias noss='unset {http_proxy,https_proxy}'
这样你就可以通过运行setss
来开启代理,通过noss
来关闭代理。
请注意,随着Go Modules的普及,许多项目已经开始迁移到Go Modules,dep
工具的使用可能会逐渐减少。如果你的项目还在使用dep
,建议考虑迁移到Go Modules以获得更好的支持和社区维护。