GoLand 代理需同时配置 GOPROXY、GONOPROXY 和 GONOSUMDB 才生效,仅设 GOPROXY 不影响全局;正确写法为 https://goproxy.cn,direct,清华源须带结尾斜杠;GONOPROXY/GONOSUMDB 需用 go env -w 设置且值一致;验证须用 go mod download -x 观察真实请求。

GoLand 里设代理不等于全局生效,必须同时配对 GOPROXY + GONOPROXY + GONOSUMDB,否则私有模块仍会 403 或 timeout。
GoLand 设置的 GOPROXY 只影响当前项目终端
GoLand 的 Settings → Go → Go Modules → Environment 里填的 GOPROXY,只作用于 IDE 底部 Terminal 启动的子 shell。它不会覆盖你系统级的环境变量,也不会影响外部终端、CI 流水线或 go build 脚本。
- 新开一个系统终端执行
go env GOPROXY,输出很可能还是空或默认值 - GoLand 自带的 Run/Debug 配置(比如直接点 ▶️ 运行 main)默认不读取该字段,除非你手动勾选 “Include system environment variables”
- 如果你用的是 WSL 或远程开发容器,IDE 终端和宿主机环境完全隔离,
GOPROXY必须在容器内单独配置
为什么只填 https://goproxy.cn 仍失败
常见错误是漏掉 ,direct。Go 的 fallback 是严格顺序匹配的:遇到第一个返回 HTTP 2xx 的地址就停;404、503、timeout 都算“不可用”,继续下一个。但如果没有 direct,私有模块(如 git.internal.company.com/lib)根本不会尝试直连,直接报 404。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 正确写法:
https://goproxy.cn,direct(逗号前后不能有空格) - 清华源必须带结尾斜杠:
https://mirrors.tuna.tsinghua.edu.cn/go/modules/,否则返回 404 - 多个镜像推荐组合:
https://mirrors.tuna.tsinghua.edu.cn/go/modules/,https://goproxy.cn,direct
私有模块拉不到?GONOPROXY 和 GONOSUMDB 必须同步设
GoLand 界面里没有地方填 GONOPROXY 或 GONOSUMDB,它们只能通过 go env -w 或 shell 环境变量设置。如果只设了 GOPROXY,Go 仍会把私有域名发给代理,结果就是 403、lookup failed 或 unknown revision。
- 设法示例:
go env -w GONOPROXY="git.internal.company.com,github.com/my-org" -
GONOSUMDB值必须与GONOPROXY完全一致,否则校验失败导致下载中断 - 通配符不支持,
github.com/my-org/*无效,得写成github.com/my-org/private-repo,github.com/my-org/utils
验证代理是否真起作用的唯一可靠方式
别信 go list -m all 成功——它可能从本地缓存读取。要触发真实网络请求,必须用 -x 参数观察日志流。
- 运行:
go mod download -x github.com/gin-gonic/gin@v1.12.0 - 看输出里是否出现类似
GET https://goproxy.cn/github.com/gin-gonic/gin/@v/v1.12.0.info的请求 - 如果仍见
proxy.golang.org,说明GOPROXY没生效,检查是否新开终端、是否被 IDE 插件覆盖、是否在 Docker 内未挂载环境变量
最易忽略的一点:Goland 的 Terminal 默认不继承你 shell 配置文件(如 ~/.zshrc)里的 export,所以即使你在终端里手动 export GOPROXY=...,重启 IDE 终端后就失效。持久化必须用 go env -w,且要确认 Go 版本 ≥ 1.13。

















