国内 Go 开发者应配置 GOPROXY 为 https://goproxy.cn,direct 以解决模块下载慢或失败问题;推荐清华、中科大等镜像源,通过 export 命令临时设置或写入 ~/.zshrc 等配置文件永久生效,并可用 go env GOPROXY验证。
在 Go 项目开发中,国内用户常因网络问题导致 go mod download 或 go get 失败或极慢。根本解决方式是配置可靠的 Go 模块代理(GOPROXY),并可搭配国内镜像源提升稳定性与速度。
Go 1.13+ 默认启用模块代理机制,通过 GOPROXY 指定代理地址(支持多个,用英文逗号分隔)。推荐优先使用官方支持的公共代理,如 https://proxy.golang.org,但国内访问不稳定,建议切换为国内可信镜像:
https://mirrors.tuna.tsinghua.edu.cn/go/
https://mirrors.ustc.edu.cn/goproxy/
https://goproxy.cn(支持私有模块,无需额外配置)执行命令临时设置(当前终端生效):
export GOPROXY=https://goproxy.cn,direct
其中 direct 表示对私有域名(如公司内网模块)直连不走代理,避免被拦截。
将环境变量写入 shell 配置文件,使每次新开终端自动加载:
~/.zshrc,追加一行:~/.bashrc,同样添加上述行配置后执行 source ~/.zshrc(或重启终端)即可生效。
运行以下命令查看当前 Go 环境配置:
go env GOPROXY
应输出你设置的地址(如 https://goproxy.cn,direct)。再尝试拉取一个模块测试:
go mod init example.com/test && go get github.com/sirupsen/logrus@v1.9.0
若下载速度快且无报错(如 verifying github.com/... 日志出现),说明代理已正常工作。
部分企业内网模块未公开、无校验信息,或需绕过 GOPROXY 对特定域名的代理,可通过以下变量配合使用:
GONOPROXY:指定不走代理的模块前缀,例如 export GONOPROXY=git.example.com,github.com/mycorp
GOSUMDB:关闭模块校验(不推荐生产环境):export GOSUMDB=off;或改用国内校验服务:export GOSUMDB=sum.golang.org+https://sum.golang.google.cn
GOINSECURE:允许对 HTTP 协议模块源进行不安全访问(仅限测试):export GOINSECURE=git.internal.company
这些变量可和 GOPROXY 同时设置,Go 工具链会按需组合使用。