goland依赖下载失败主因是goproxy等环境变量未在内置终端生效,需手动执行go env -w goproxy=https://goproxy.cn,direct并验证,私有库须同步配置gonoproxy与gonosumdb,且run配置中需单独补全环境变量。

GoLand 里依赖下载失败,90% 不是 IDE 的锅,而是 Go 工具链根本没连上正确的代理或跳过校验源——你看到的“Fetching…”卡住、“Unresolved reference”、checksum mismatch,几乎都源于 GOPROXY、GONOPROXY、GOSUMDB 这三个环境变量没在 GoLand 内置终端里真正生效。
GoLand 终端里 go env GOPROXY 输出正确,但 go mod download 还是走 proxy.golang.org
这是最典型的“变量没继承”问题。GoLand 启动终端时,默认不加载你的 shell 配置(比如 ~/.zshrc),所以即使你在终端外执行了 go env -w GOPROXY=...,内置终端启动的新 go 进程也看不到这个值。
- 打开 GoLand 底部 Terminal,直接运行:
go env -w GOPROXY=https://goproxy.cn,direct(注意逗号前后不能有空格) - 立刻验证:
go env GOPROXY,输出必须是https://goproxy.cn,direct - 再跑一次:
go mod download -v github.com/gin-gonic/gin@v1.9.1,观察日志里是否出现GET https://goproxy.cn/ - 如果仍见
proxy.golang.org,说明 GoLand 没把变量传给子进程——此时别改系统配置,就在当前终端补一句:export GOPROXY=https://goproxy.cn,direct(macOS/Linux)或$env:GOPROXY="https://goproxy.cn,direct"(PowerShell)
私有模块报 403 Forbidden 或 unknown revision,但 git clone 能通
Go 不会复用你在浏览器或 Git CLI 里登录的状态,它默认把所有模块地址(包括 git.internal.company.com)一股脑发给 GOPROXY,而镜像站无法鉴权内网地址,结果就是 403 或 lookup failed。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 必须配
GONOPROXY:运行go env -w GONOPROXY="git.internal.company.com,192.168.0.0/16"(注意不是GOPRIVATE,后者只影响校验,不绕过代理) -
GONOSUMDB必须同步设置,且值完全一致:go env -w GONOSUMDB="git.internal.company.com,192.168.0.0/16" - 如果私有库启用了强制 2FA,HTTPS 方式大概率失效;优先改用 SSH 路径:
git@github.com:org/repo.git,并确保ssh -T git@github.com能通 -
go.mod中的replace语句路径必须为相对路径,且目标目录必须含有效go.mod;绝对路径(如C:\dev\utils)或~/写法会被忽略
go mod download 卡在 lookup proxy.golang.org: no such host
这不是代理没设对,是本地 DNS 根本解析不了 proxy.golang.org。Go 在 fallback 到 direct 后,仍会尝试直连官方域名做校验或兜底,一旦 DNS 返回 NXDOMAIN,就会反复重试,看起来像死循环。
- 先验证 DNS:
nslookup proxy.golang.org或dig proxy.golang.org +short,无输出即确认 DNS 层失败 - 临时换 DNS:
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf(Linux/macOS) - 同时关掉校验回退风险:
go env -w GOSUMDB=sum.golang.org+https://goproxy.cn/sumdb(goproxy.cn 支持该接口) - 若镜像不支持 sumdb,只能临时关校验:
go env -w GOSUMDB=off,但上线前必须恢复
最容易被忽略的是:GoLand 的 Terminal 和 Run Configuration 使用的是两套环境变量。你在终端里配好了,Run 按钮可能还在用旧配置。每次改完 go env -w,记得点菜单栏 Run → Edit Configurations → Environment variables,手动把 GOPROXY、GONOPROXY、GONOSUMDB 补进去,否则调试时照样失败。










