国内使用go需配置代理加速模块下载,推荐设置GOproxy=https://goproxy.cn,direct并配置GOPRIVATE排除私有仓库,启用GO111MODULE=on,通过go env和go get验证生效。

国内使用 Go 时下载慢,核心原因是默认模块源 proxy.golang.org 和官网 golang.org 访问不稳定。配置代理不是“可选项”,而是国内开发者的标准动作,几条命令就能明显提速。
设置 GOPROXY 加速模块下载
Go 1.13+ 默认启用 Modules,只需指定一个可靠的国内镜像代理:
- 推荐执行:go env -w GOPROXY=https://goproxy.cn,direct
-
https://goproxy.cn由七牛云维护,响应快、缓存全、长期稳定 -
direct表示当代理无法处理某些模块(如私有域名)时,自动回落直连,不中断流程 - 也可备选:
https://mirrors.aliyun.com/goproxy/或https://goproxy.io
排除私有仓库走代理
公司内部 git 仓库(如 git.company.com、gitlab.internal)不能走公共代理,否则可能泄露代码或认证失败:
- 执行:go env -w GOPRIVATE=*.company.com,gitlab.internal
- 支持通配符和逗号分隔多个域名
- 设置后,这些域名下的模块会跳过代理,直接从源地址拉取
确保模块功能已开启
部分旧环境可能未启用 Modules,导致代理不生效:
立即学习“go语言免费学习笔记(深入)”;
- 运行:go env -w GO111MODULE=on
- 新项目建议用
go mod init xxx初始化,自动生成go.mod - 已有项目可运行
go mod tidy触发模块下载,观察是否提速
验证代理是否生效
别只看命令有没有报错,要确认实际行为:
- 执行:go env | grep -i proxy,检查输出含
GOPROXY和GOPRIVATE - 运行:go get github.com/spf13/cobra@latest,观察下载日志是否显示来自
goproxy.cn - 若仍超时,检查网络是否拦截 HTTPS 请求,或终端是否被代理工具(如 Clash)干扰
基本上就这些。不需要装额外客户端,也不用改系统级代理,纯环境变量配置,生效快、易回退、适合所有 Go 版本(1.13 及以上)。不复杂但容易忽略。