推荐优先使用 https://goproxy.cn,它兼容 Go 1.13+,自动处理校验和,且对私有仓库支持较好;设置方式包括临时 export、永久 go env -w 和单次命令覆盖,并需配合 GOPRIVATE 跳过私有模块代理。
直接配置 GOPROXY 是提升 Go 模块下载速度最简单有效的方式,尤其在国内访问官方 proxy.golang.org 常常缓慢或失败。设置一个可靠的代理地址,能让 go get、go mod download 等命令跳过直连,从国内镜像快速拉取模块。
目前稳定可用的公开代理主要有:
推荐优先使用 https://goproxy.cn,它兼容 Go 1.13+,自动处理校验和,且对私有仓库支持较好(配合 GOPRIVATE 可绕过代理)。
Go 会按顺序读取环境变量、go env -w 配置、命令行参数,优先级从高到低:
export GOPROXY=https://goproxy.cn,direct
go env -w GOPROXY=https://goproxy.cn,direct$HOME/go/env,所有后续终端自动生效。GOPROXY=https://goproxy.cn go get github.com/sirupsen/logrus
注意末尾的 ,direct:表示对 GOPRIVATE 中指定的私有域名(如公司内网模块)不走代理,直接拉取,避免泄露或认证失败。
VATE 跳过私有模块代理如果你的项目依赖公司内部 Git 仓库(如 git.company.com/my/lib),必须跳过代理,否则会 404 或鉴权失败:
go env -w GOPRIVATE=git.company.com
go env -w GOPRIVATE=*.company.com,github.company.internal
设置后,Go 会自动对匹配域名的模块跳过 GOPROXY,改用 git clone 或 https 下载,并尊重 ~/.netrc 或 Git 凭据管理器。
配置完可以快速检查是否生效:
go env GOPROXY
go mod download -x github.com/go-sql-driver/mysql@v1.7.1GET https://goproxy.cn/github.com/go-sql-driver/mysql/@v/v1.7.1.info 即表示走代理成功。GOPRIVATE,或代理地址拼写错误(注意是 https,不是 http)。不复杂但容易忽略。