GoLand中需在运行配置的Environment variables里显式设置全大写HTTP_PROXY和HTTPS_PROXY;代码中若新建http.Client须手动配置Proxy: http.ProxyFromEnvironment;GoLand HTTP Client工具需单独在Settings→Tools→HTTP Client→Proxy中设置,不读运行配置环境变量。

GoLand 运行配置里怎么加 HTTP_PROXY 环境变量
GoLand 本身不自动继承系统 shell 的 HTTP_PROXY 或 HTTPS_PROXY,哪怕你在终端里 export 过,IDE 启动的进程也看不到。必须显式写进运行/调试配置。
操作路径:Run → Edit Configurations… → 选中你的 Go 构建配置 → Environment variables 栏里填:
-
HTTP_PROXY=http://127.0.0.1:7890(或你本地代理地址) -
HTTPS_PROXY=http://127.0.0.1:7890(注意:即使代理是 HTTPS,Go 的http.Transport默认仍用HTTP_PROXY处理 HTTPS 请求,除非明确设HTTPS_PROXY) - 若代理需认证,写成
HTTP_PROXY=http://user:pass@127.0.0.1:7890
⚠️ 常见错误:只设了 http_proxy(小写),Go 不认——必须全大写、下划线分隔。
代码里用了 http.DefaultClient,但调试时没走代理
Go 的 http.DefaultClient 会读环境变量,但前提是启动时环境已生效。如果你在代码里手动 new 了 http.Client{},它默认不读环境变量,得自己配 Transport。
调试前检查两件事:
- 运行
go env | grep -i proxy确认GOPROXY不干扰——GOPROXY只管模块下载,不影响运行时 HTTP 请求 - 代码中若显式构造 client,必须这样写才能走代理:
client := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyFromEnvironment,
},
}
否则即使环境变量正确,http.Client{} 也会直连。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
代理能连通,但调试时提示 x509: certificate signed by unknown authority
这是代理(如 Clash、Charles)启用 HTTPS 抓包后自签证书导致的。Go 默认校验证书链,不信任这类中间证书。
临时解决(仅限调试,勿提交到代码):
- 在调试代码开头加:
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} - 或更安全的做法:把代理的根证书导出为
ca.crt,然后设环境变量GIT_SSL_CAINFO=/path/to/ca.crt(对某些依赖有效),或在 client 中指定RootCAs
⚠️ 注意:InsecureSkipVerify: true 会让整个 client 跳过所有 TLS 验证,不只是代理流量——如果请求目标本身是敏感服务,这会暴露凭证。
GoLand 的 HTTP Client 工具发请求失败,和代码行为不一致
GoLand 自带的 .http 文件发请求,走的是 IDE 内置 HTTP 客户端,**不读你运行配置里的环境变量**,也不读 http.DefaultClient 设置。
它有自己的代理控制逻辑:
- 菜单
File → Settings → Tools → HTTP Client → Proxy(Windows/Linux)或GoLand → Preferences → Tools → HTTP Client → Proxy(macOS) - 选
Use system proxy:读系统设置(非 shell 环境变量) - 选
Use custom proxy:手动填 host/port,支持 auth - 若用的是 SOCKS 代理(如 v2rayN 默认开的 1080),HTTP Client 不支持——必须改用 HTTP 代理端口,或换工具
最稳的方式:在 .http 文件里第一行加 ### 分隔符,然后写 @proxy = http://127.0.0.1:7890,后续请求用 {{proxy}} 引用。
GOPRIVATE 和 NO_PROXY 得同步配,不然 internal.service 域名也可能被转发到代理。

















