

新闻资讯
技术学院GOPROXY 配置后 go get 失败主因是环境变量未生效或值不合法;需确保 GOPROXY 非空、格式正确(如 https://goproxy.cn,direct),优先用 go env -w 持久设置,并配合 GOPRIVATE 控制私有模块代理行为。
GOPROXY 配置后 go get 仍失败?多数问题不是代理没设,而是环境变量未生效或值不合法。Go 1.13+ 默认启用代理,但若 GOPROXY 设为空字符串("")或 off,会跳过代理直连;设为非法 URL(如少 https://)则报 invalid proxy URL 错误。
echo $GOPROXY 确认输出非空且格式正确(如 https://goproxy.cn,direct)$env:GOPROXY="https://goproxy.cn,direct",CMD 中用 set GOPROXY=https://goproxy.cn,direct
https://proxy.golang.org 或自建 athens 实例go env -w 和 shell export 哪种方式更可靠?go env -w 写入的是 Go 的用户级配置文件(~/.go/env),优先级高于 shell 环境变量,且跨终端持久生效;而 exp 只在当前 shell 会话有效,重启终端即失效。
ort GOPROXY=...
go env -w GOPROXY=https://goproxy.cn,direct
GO111MODULE=on GOPROXY=off go get example.com/pkg,避免污染全局设置direct 是必须的 fallback:当代理返回 404 或 503 时,Go 会自动回退到直接拉取模块源码单个代理挂掉会导致整个构建中断,所以必须用逗号分隔多个代理,并以 direct 收尾。国内最稳组合是 goproxy.cn 主力 + proxy.golang.org 备用。
go env -w GOPROXY="https://goproxy.cn,https://proxy.golang.org,direct"
https:// —— Go 不接受裸域名(goproxy.cn 会被解析失败)https://mirrors.aliyun.com/goproxy/),部分镜像站已关闭或仅限内网Go 不支持 per-domain 代理开关,但可通过 GOPRIVATE 环境变量声明哪些模块跳过代理和校验。匹配规则支持通配符,例如 gitlab.example.com/*。
立即学习“go语言免费学习笔记(深入)”;
go env -w GOPRIVATE=gitlab.example.com/*,github.company.com/*
GOPROXY 中显式加入该地址,否则 GOPRIVATE 仅禁用代理和 checksum 校验GOPRIVATE,对应模块的 go.sum 将不再记录 checksum,CI 流程中需额外校验来源可信度GOPROXY 和 GOPRIVATE 必须协同设置,缺一不可。