国内执行go get gin失败的根本原因是go默认代理proxy.golang.org不可达,需配置goproxy镜像源;验证go env goproxy后,可临时或永久设置为https://goproxy.cn,direct;项目须处于module模式(go mod init),推荐用go mod tidy自动引入gin依赖。

国内开发环境执行 go get github.com/gin-gonic/gin 时卡住、超时或报错 connection refused,根本原因不是 Gin 本身有问题,而是 Go 默认代理 proxy.golang.org 在国内不可达,必须手动配置可用的 GOPROXY 镜像源才能正常拉取依赖。
验证当前代理是否生效
先确认你的 GOPROXY 是否已正确设置:运行 go env GOPROXY。如果输出是 【empty 或 https://proxy.golang.org】,说明还没配好,接下来所有 go get 操作都会失败或极慢。
若输出为 https://goproxy.cn,direct 或类似国内镜像地址,则跳过配置步骤,直接进入依赖引入环节。
一次性临时配置 GOPROXY(推荐首次尝试)
方法一(macOS/Linux 终端):export GOPROXY=https://goproxy.cn,direct
方法二(Windows PowerShell):$env:GOPROXY="https://goproxy.cn,direct"
方法三(Windows CMD):set GOPROXY=https://goproxy.cn,direct
这一步只对当前终端会话生效,关闭窗口即失效。适合快速验证是否是代理问题——配完立刻重试 go get,不用重启终端。
永久配置 GOPROXY(开发机必备)
第一步:打开终端,执行以下命令写入 shell 配置文件(以 macOS zsh 为例):echo "export GOPROXY=https://goproxy.cn,direct" >> ~/.zshrc
第二步:立即加载新配置:source ~/.zshrc
第三步:验证是否持久生效:go env GOPROXY 应稳定输出 https://goproxy.cn,direct。
⚠️ 注意:【direct 必须放在逗号分隔列表末尾】,否则前面镜像失败后不会 fallback 到直连,反而导致私有模块拉取失败。
确保项目处于 module 模式下
运行 go mod init your-app-name 创建 go.mod 文件——这是 go get 能写入依赖的前提。
没有 go.mod,go get 只会下载到全局缓存,但不会记录在项目中,后续 go run 仍会报 “no required module provides package”。
这一步操作起来很简单,直接把文件拖进去就行。模块名可以是任意合法域名格式,比如 example.com/hello 或 myapp.local,不需真实存在。
用 go mod tidy 替代 go get 引入 Gin(更安全)
先在 main.go 中写好 import:import "github.com/gin-gonic/gin"
然后执行:go mod tidy
它会自动扫描代码中的 import,补全缺失依赖(包括 Gin 及其间接依赖),并生成/更新 go.sum。相比手动 go get,【不会因版本号拼错或分支误选导致编译失败】,尤其适合新手。
执行完成后,检查 go.mod 文件里是否出现形如 github.com/gin-gonic/gin v1.9.1 的行——这才是真正引入成功的标志。











