goland代理下载失败主因是goproxy与goprivate未配对生效或被ide覆盖:需用go env -w全局配置二者(含,direct和私有域名),禁用ui中goproxy输入框(避免fallback失效),重启ide并关闭auto-download以查看-v日志定位问题。

GoLand 配置了代理却仍下载失败,大概率是 GOPROXY 和 GOPRIVATE 没配对生效,或配置被 IDE 缓存/覆盖,而不是代理地址本身有问题。
GoLand 的 Go Modules 设置只是覆盖 GOPROXY,不触碰 GOPRIVATE
你在 GoLand 的 Settings → Go → Go Modules 里填的 GOPROXY 值,只影响 IDE 内部调用 go mod 时的代理,但完全不会设置 GOPRIVATE。一旦项目里引用了私有模块(比如 git.internal.company.com/my/lib),GoLand 仍会把请求发给代理,结果返回 403 或 404,然后整个 go mod tidy 卡住或报错。
必须手动补全 GOPRIVATE:
- 运行
go env -w GOPRIVATE="git.internal.company.com,github.com/my-org/*"(逗号分隔,无空格,支持通配符) - 确认生效:
go env GOPRIVATE输出应与你设置的一致 - 重启 GoLand —— 它不会自动 reload 环境变量,尤其
GOPRIVATE这类非 GUI 配置项
GoLand 启动时读取的是系统 Shell 的环境,不是你当前终端的临时变量
你在终端里执行 GOPROXY=https://goproxy.cn go mod download 能成功,不代表 GoLand 也能——因为 GoLand 默认从系统级 Shell(如 macOS 的 /bin/zsh、Linux 的 /bin/bash)启动,读取的是 ~/.zshrc 或 ~/.bash_profile 里的环境变量,而不是你当前终端 session 里 export 的临时值。
验证和修复方式:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 在终端里运行
env | grep -E '^(GOPROXY|GOPRIVATE|GO111MODULE)$',看输出是否完整 - 如果只有部分变量,说明没写进 Shell 配置文件;把
go env -w命令换成export写入对应文件(例如echo 'export GOPROXY="https://mirrors.tuna.tsinghua.edu.cn/go/modules/,https://goproxy.cn,direct"' >> ~/.zshrc) - 重启终端,再运行
go env GOPROXY和go env GOPRIVATE双重确认
GoLand 的 “Auto-download dependencies” 功能会跳过 -v 日志,掩盖真实失败点
当你勾选了 Settings → Go → Go Modules → Auto-download dependencies,IDE 会在后台静默执行 go mod download,不输出任何网络请求细节。一旦某个间接依赖触发私有路径(比如 A 依赖 B,B 依赖 C,C 是私有库),GoLand 就会卡住或报模糊错误(如 failed to load module requirements),你根本看不到是哪个模块、哪个 URL 出的问题。
调试时务必关掉这个选项,改用终端手动触发:
- 关闭
Auto-download dependencies - 在项目根目录运行
go mod download -v - 观察最后一行日志:如果停在
GET https://goproxy.cn/xxx/@v/v1.2.3.info后超时,说明代理链断了;如果出现git -c core.autocrlf=false clone https://git.internal.company.com/...,说明GOPRIVATE没生效,正在走 HTTPS Git 协议,大概率缺凭证
GoLand 的 GOPROXY 设置不支持 fallback 多级代理
GoLand UI 里那个 GOPROXY 输入框,只接受单个 URL,不识别逗号分隔的 fallback 链。如果你在 UI 里填了 https://goproxy.cn,direct,它会当成一个非法 URL 直接报错或静默忽略,最终 fallback 到默认的 https://proxy.golang.org,direct,而这个地址在国内基本不可达。
正确做法是:绕过 UI,全部用 go env -w 配置全局变量:
-
go env -w GOPROXY="https://mirrors.tuna.tsinghua.edu.cn/go/modules/,https://goproxy.cn,direct"(注意清华源末尾必须带/) go env -w GO111MODULE=ongo env -w GOPRIVATE="git.example.com,github.com/my-org/*"
然后在 GoLand 中彻底清空 Settings 里的 GOPROXY 字段(留空),让它继承系统环境变量——这才是唯一能跑通 fallback 的方式。










