Go模块下载慢主因是代理未配置或失效,应换用国内可信代理如https://goproxy.cn;需通过go env GOPROXY确认状态,配合GONOPROXY与GONOSUMDB处理私有模块及校验问题。
Go 模块下载慢,基本就是代理没配对或失效了,直接换国内可信代理就能明显改善。
执行 go env GOPROXY 查看当前代理地址。如果返回空、direct 或 https://proxy.golang.org(默认但国内常被阻),就属于未配置或配置无效状态。也可以用 go list -m -u all 测试:若卡在某个模块、超时或报 Get "https://proxy.golang.org/...": dial tcp: i/o timeout,说明代理不通。
https:// 开头,不支持 http://
https://goproxy.cn,direct
direct 是兜底项,表示直连;放在末尾可避免私有模块失败目前稳定、无需认证、支持校验和(checksum)的主流代理有:
https://goproxy.cn(七牛云维护,国内访问快,兼容性好)https://mirrors.aliyun.com/goproxy/(阿里云镜像,响应稳定)https://proxy.golang.com.cn(官方中国代理,需注意有时会短暂不可用)不建议用已停更或需要 token 的代理(如旧版 athens 自建服务、部分 GitHub Proxy 中转站),容易出现 403 或 checksum mismatch 错误。
优先级从高到低:命令行参数 > 环境变量 > go env -w 持久化。日常开发推荐环境变量方式,避免每次敲命令。
export GOPROXY=https://goproxy.cn,direct
go env -w GOPROXY=https://goproxy.cn,direct
go get -u github.com/some/pkg@v1.2.3 -v 前加 GOPROXY=https://goproxy.cn go get ...
设完后务必运行 go env GOPROXY 确认输出一致,再试 go mod download 或 go build 观察速度变化。
如果项目含公司内网 Git 模块(如 gi),直接走代理会 404。此时需配合 
GONOPROXY 排除:
go env -w GONOPROXY="git.internal.company.com,github.com/my-org"
同时注意:GONOSUMDB 也要同步设置(否则 checksum 校验失败):
go env -w GONOSUMDB="git.internal.company.com,github.com/my-org"
GONOPROXY 和 GONOSUMDB 值必须完全一致,否则 go get 会拒绝拉取direct 作为代理兜底项,GONOPROXY 就不是必须项,但校验仍需 GONOSUMDB
代理配置本身很简单,真正容易出问题的是 GONOPROXY 和 GONOSUMDB 没同步、域名拼错、或用了已失效的代理地址——这些地方一错,就会表现为“明明配了代理却还是慢”或者“私有模块拉不下来”。