GoLand第三方包下载慢的根本原因是GOPROXY未配对或未生效;需用go list -m -u all -v观察真实请求路径,确认是否命中https://goproxy.cn,同时同步配置GONOPROXY与GONOSUMDB并重启IDE验证。

GoLand 里第三方包下载慢,基本就是 GOPROXY 没配对或没生效——不是 IDE 的问题,而是 Go 工具链根本没走国内代理。
确认当前 GOPROXY 是否真正生效
别只看 go env GOPROXY 输出值,那只是配置项。真实请求地址得靠日志验证:
- 在 GoLand Terminal 中运行
go list -m -u all -v,观察输出里是否出现https://goproxy.cn/...请求路径;如果卡在proxy.golang.org或sum.golang.org,说明代理没起作用 - 常见假生效场景:Shell 配置了
export GOPROXY=...,但 GoLand 启动时没继承该环境变量(尤其 macOS / Linux 图形界面启动) - Windows 用户注意:PowerShell 和 CMD 环境变量不互通,
go env -w GOPROXY=...写入的是全局,但某些旧版 GoLand 可能仍读取系统级环境变量而非go env设置
GoLand 内部设置必须和系统环境一致
GoLand 的 Settings → Go → Go Modules 页面里填的 GOPROXY,会覆盖系统环境变量——这是个易踩坑点:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 勾选 Enable Go Modules integration 后,下方
Environment输入框内容优先级高于系统GOPROXY - 如果这里留空或填了
https://proxy.golang.org,direct,就算你 shell 里设了goproxy.cn,GoLand 仍会走默认代理 - 务必填成和终端里
go env GOPROXY一致的值,例如:https://goproxy.cn,direct - 勾选 Enable for current project 是可选的,但建议勾上,避免多项目间互相干扰
私有模块必须同步配置 GONOPROXY 和 GONOSUMDB
一旦 go.mod 里引入了公司内网 Git 地址(如 git.internal.company.com/my/lib),只配 GOPROXY 会导致 404 或 checksum mismatch:
-
GONOPROXY和GONOSUMDB必须值完全相同,且用英文逗号分隔,不能带空格,例如:git.internal.company.com,github.com/my-org - 执行
go env -w GONOPROXY="git.internal.company.com,github.com/my-org"和go env -w GONOSUMDB="git.internal.company.com,github.com/my-org" - 别信通配符写法(如
*.company.com),Go 不支持,必须写精确域名或路径前缀 - 改完后重启 GoLand,否则 Settings 页面可能缓存旧状态,Terminal 里也要新开一个窗口再验证
go mod tidy 卡住时的快速定位方式
不是所有“卡住”都该等,有些是明确失败信号:
- 终端输出停在
get github.com/some/pkg@v1.2.3: ...超过 10 秒不动,大概率是代理未命中 + fallback 失败,此时 Ctrl+C,检查GOPROXY和GONOPROXY是否冲突 - 报错含
checksum mismatch,说明GOSUMDB和GOPROXY不同源,比如用了goproxy.cn却没设GOSUMDB=gosum.io+ce6e7565+https://goproxy.cn/sumdb - 用
go mod download -x(加-x参数)能看到每一步 curl 请求,直接定位是哪条 URL 超时或返回 404 - 临时绕过代理测试:在 Terminal 执行
GOPROXY=direct go mod tidy,如果秒完成,说明代理链本身有问题,不是代码或网络问题
最常被忽略的一点:GoLand 的 Terminal 默认不加载你的 shell 配置(如 ~/.zshrc),所以即使你 export 过 GOPROXY,新开 Terminal 也不生效。要么在 GoLand 的 Terminal 设置里勾选 “Shell integration”,要么把 go env -w 配置写死——后者更稳。

















