在中国大陆使用Go语言进行开发时,经常会遇到访问golang.org等国外资源速度慢或不稳定的问题。为了解决这个问题,可以通过设置Go模块代理(GOPROXY)来使用国内的镜像服务。以下是一些常用的国内Go代理服务及其配置方法:

  1. 七牛云 提供的 goproxy.cn

    go env -w GOPROXY=https://goproxy.cn,direct
    

    参考:

  2. 阿里云 提供的 mirrors.aliyun.com

    go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
    
  3. 官方全球代理

    go env -w GOPROXY=https://proxy.golang.com.cn,direct
    
  4. GoCenter

    go env -w GOPROXY=https://gocenter.io,direct
    
  5. 百度 提供的 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以获得更好的支持和社区维护。