goland 的 goproxy 需在 settings > go > go modules 的 proxy 输入框中设置,如填 https://goproxy.cn,direct(逗号后无空格,direct 必在末尾),并勾选启用模块集成,最后右键项目根目录执行 reload project 才生效。

GoLand 默认不继承系统环境变量,所以即使你在终端里设置了 GOPROXY=direct 或用 go env -w GOPROXY=direct 配置了本地跳过代理,IDE 里依然会走它自己配置的代理地址——这是最常被忽略的根源。
GoLand 的 GOPROXY 设置在哪儿改?
它不在系统环境变量里,而在 IDE 的模块设置中独立控制:
- 打开 Settings > Go > Go Modules
- 勾选 Enable Go modules integration(必须)
- 在 Proxy 输入框里填
direct,或者更稳妥地写成https://goproxy.cn,direct——注意逗号后不能有空格,且direct必须放在最后 - 点 Apply,然后右键项目根目录 → Reload project(不是 “Sync”)
为什么只写 direct 有时会失败?
因为 GoLand 的 go list 调用依赖完整的模块解析链。如果项目里引用了私有模块(比如公司内网 GitLab 上的 git.example.com/internal/pkg),而代理配置里没带 direct fallback,就会卡在“找不到包”。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
-
https://goproxy.cn单独存在:公共包能下,私有包报go: git.example.com/internal/pkg: reading https://goproxy.cn/git.example.com/internal/pkg/@v/list: 404 Not Found -
https://goproxy.cn,direct:公共包走代理,私有包自动 fallback 到直连 Git 协议(git+ssh或https) -
direct单独存在:所有包都直连,适合完全离线或全内网环境,但会失去缓存加速和 CDN 加速
想临时跳过代理,又不想改全局配置?
可以用运行/调试配置做细粒度控制,不影响其他项目:
- 编辑当前运行配置:Run > Edit Configurations
- 在 Environment variables 区域点右侧
…,新增一行:GOPROXY=direct - 注意:这个只影响该配置的
go run/go test,不影响代码索引和依赖标红——后者仍由 Settings > Go > Go Modules 决定 - 若同时需要跳过校验(如自签名证书的私有仓库),可追加:
GOSUMDB=off
真正生效的关键不是“写了什么”,而是 Reload project 这一步——GoLand 的模块解析是惰性的,改完设置不重载,标红和 import 提示不会更新。另外,go.work 文件会覆盖单模块的 GOPROXY 行为,如果项目里有它,删掉再重载。










