Go-Zero安装卡在依赖下载的根本原因是默认从golang.org/x等境外源拉取模块时超时或被重置;必须先强制启用GO111MODULE=on,并设置GOPROXY=https://goproxy.cn,direct(含,direct)且GOSUMDB=off,再验证go get命令输出中出现goproxy.cn而非proxy.golang.org。

Go-Zero安装卡在依赖下载,说明go get或go install正试图从golang.org/x等境外源拉取模块,而这些请求在当前网络环境下超时或被重置。必须在执行安装命令前完成代理配置,否则每一步都会反复失败。
确认Go模块模式已强制启用
运行 go env GO111MODULE,输出必须是 【on】,不是 auto 或空。auto 模式下,若当前目录存在 go.mod 文件则启用,否则跳过模块机制——这会导致 go-zero 工具链无法正确解析依赖树。
若输出非 on,请立即执行:go env -w GO111MODULE=on。
设置国内Go代理(推荐goproxy.cn)
方法一:终端临时生效(适合验证)
Linux/macOS 执行:export GOPROXY=https://goproxy.cn,direct
Windows PowerShell 执行:$env:GOPROXY="https://goproxy.cn,direct"
方法二:永久写入环境变量(生产环境必选)
Linux/macOS 编辑 ~/.bashrc 或 ~/.zshrc,追加:export GOPROXY=https://goproxy.cn,directexport GOSUMDB=off
然后运行 source ~/.bashrc(或对应 shell 配置文件)。
方法三:IDE内单独配置(GoLand用户注意)
GoLand 不读取系统 shell 的环境变量,需进入 File → Settings → Go → GOPATH,在 Environment variables 栏手动添加 GOPROXY=https://goproxy.cn,direct。不配这步,即使终端里能装,IDE 内部 terminal 和 run configuration 仍会失败。
验证代理是否真正起效
第一步:新建空目录,执行 go mod init test.example;
第二步:执行 go get github.com/zeromicro/go-zero@latest;
第三步:观察终端输出中 Fetching 行的 URL——必须出现 【goproxy.cn】 字样,且不能含 proxy.golang.org 或 raw.githubusercontent.com。
若仍看到原始 GitHub 地址或超时错误,说明 GOPROXY 未生效,立即检查上一步的 shell 配置是否 source 过、IDE 是否单独设置、是否存在 vendor 目录干扰(有则删掉再试)。
手动下载安装兜底方案
当代理仍不可用(如内网无外网权限),可跳过 go get,直接手动安装:
① 访问 https://www.php.cn/link/807c35fec70a0119e9c21172c4cf807a,下载最新版 go-zero-vX.X.X.tar.gz;
② 解压后进入 go-zero/tools/goctl 目录,运行 go build -o $GOBIN/goctl .;
③ 确保 $GOBIN 已加入 PATH,运行 goctl version 验证成功。
注意:goctl 必须放在 $GOBIN 下且可执行,否则后续代码生成会报 command not found。











