Go模块下载卡住需换代理:执行go env -w GOPROXY=https://goproxy.cn,direct并验证;私有库加GOPRIVATE;校验失败可临时关GOSUMDB;IDE内置终端须单独配置。

go get 或 go mod download 卡住、timeout 怎么办
直接换代理,别等重试。Go 1.13+ 默认走 https://proxy.golang.org,国内基本连不上,卡住是常态,不是你网络差。
- 执行
go env -w GOPROXY=https://goproxy.cn,direct(七牛源稳定,fallback 到 direct 防止镜像缺失) - 验证:运行
go env GOPROXY,输出必须是你刚设的值,不是空或默认地址 - IDE(如 Goland/VSCode)可能不读系统 shell 环境变量——务必在 IDE 内置终端里也执行一遍
go env -w GOPROXY=... - 改完立刻试:
go mod download -v,加-v能看到每个模块从哪拉、状态码多少,比盲等强十倍
报 403 或 “module lookup failed” 但私有库明明能 git clone
这不是权限问题,是 Go 把私有域名也发给公共代理了,对方拒绝访问,本质是路由错位。
- 把私有地址加进
GOPRIVATE:比如公司 GitLab 是git.internal.com,就运行go env -w GOPRIVATE=git.internal.com - 支持通配符:
go env -w GOPRIVATE="github.com/my-team/*,gitlab.example.org"(逗号分隔,**不能有空格**) - SSH 私库要额外验证:
ssh -T git@git.internal.com能通才行;HTTPS 私库需提前配好 Git 凭据,否则会卡在密码提示
报 checksum mismatch 或 zip: not a valid zip file
大概率是校验服务器 sum.golang.org 不可达,或本地缓存损坏,跟代码无关。
- 临时关校验快速验证:
go env -w GOSUMDB=off(仅调试用,切勿长期开启或提交) - 清模块缓存:
go clean -modcache,注意这会删掉所有已下载模块,后续首次go mod download会慢一点 - 遇到具体 zip 错误,看报错里含哪个路径(如
github.com/some/pkg),直接去$GOPATH/pkg/mod/cache/download/下删对应目录再重试
golang.org/x/... 包提示 unrecognized import path
不是代理没生效,是 Go 仍试图直连 golang.org 域名做元数据发现,而这个域名本身就被拦截。
立即学习“go语言免费学习笔记(深入)”;
- 确保
GOPROXY已正确设置(见第一段),且值里包含directfallback - 不要手动
git clone到$GOPATH/src—— Go Modules 模式下它完全不认这个路径 - 如果仍失败,加一行
replace golang.org/x/net => github.com/golang/net v0.0.0-xxx到go.mod(版本号查 GitHub release tag),这是最稳的兜底方案


















