mac上go模块拉取失败主因是goproxy未生效或配置不完整,需设为“https://goproxy.cn,direct”并source ~/.zshrc,同时配置gosumdb=sum.golang.google.cn。
mac 上 go 模块依赖拉取失败,90% 是 goproxy 未生效或配置不完整,不是网络差、也不是 go 安装有问题。核心在于代理没走通,导致 go mod tidy、go get 或 go run 卡在 resolving... 或直接报 403/timeout。
确认 GOPROXY 是否真正生效
执行命令查看当前配置:
-
go env GOPROXY—— 输出必须是https://goproxy.cn,direct(注意逗号后有direct) - 如果显示
https://proxy.golang.org,direct或为空,说明没配成功 - 别只运行
go env -w GOPROXY=https://goproxy.cn,漏掉,direct会导致私有模块 fallback 失败,反而更卡
确保配置已加载进当前环境
Mac 默认用 zsh,改完 ~/.zshrc 后必须手动生效:
- 编辑
~/.zshrc,添加:export GOPROXY="https://goproxy.cn,direct" - 执行
source ~/.zshrc(新开终端不会自动读取旧配置) - VS Code 内置终端可能缓存旧环境:重启 VS Code,或在终端里先运行
source ~/.zshrc
补充关键校验配置 GOSUMDB
golang.org/x/ 等官方扩展包特别容易慢或失败,常因校验阶段卡住:
- 执行
go env -w GOSUMDB=sum.golang.google.cn - 避免使用
sum.golang.org(国内不可达) - 验证:
go env GOSUMDB应输出sum.golang.google.cn
快速验证与临时绕过
如果仍失败,用临时方式确认是否是环境问题:
- 直接加前缀运行:
GOPROXY=https://goproxy.cn,direct go get github.com/gorilla/mux - 能成功 → 说明代理本身没问题,只是 shell 或 IDE 没加载新变量
- 报 403 或连接拒绝 → 检查是否被 alias 覆盖:
type go看是否指向 wrapper 脚本










