Go Modules代理用于加速依赖下载,解决国内访问不稳定问题,推荐设置GOPROXY=https://goproxy.cn,direct,并可通过GONOSUMDB和GOINSECURE处理私有模块。
Go Modules 代理主要用于加速依赖下载,解决国内访问 proxy.golang.org 和 goproxy.io 不稳定或被屏蔽的问题。核心是设置环境变量 GOPRO 指向国内可用的镜像代理服务。
XY
以下是国内稳定、同步及时的公共代理(支持 HTTPS,无需认证):
在终端中执行命令临时生效(当前会话有效):
export GOPROXY=https://goproxy.cn,direct
推荐使用 https://goproxy.cn,direct 格式,表示优先走代理,遇到私有模块(如公司内网域名)自动回退到直连。
永久生效需写入 shell 配置文件:
~/.zshrc,追加 export GOPROXY=https://goproxy.cn,direct
~/.bashrc 或 ~/.bash_profile
[Environment]::SetEnvironmentVariable("GOPROXY", "https://goproxy.cn,direct", "User")
修改后执行 source ~/.zshrc(或对应配置文件)使配置立即生效。
执行以下命令查看当前 Go 环境配置:
go env GOPROXY
应输出 https://goproxy.cn,direct;再尝试拉取一个新依赖:
go get github.com/go-sql-driver/mysql@v1.7.1
若下载速度快且无超时/403错误,说明代理已正常工作。
某些企业内部模块无法通过公共代理获取,此时需配合 GONOSUMDB 和 GOINSECURE:
export GONOSUMDB="*.example.com,git.internal.company":对匹配域名的模块跳过 checksum 校验export GOINSECURE="git.internal.company":允许对这些域名使用 HTTP 或跳过 TLS 验证注意:GONOSUMDB 和 GOINSECURE 应仅用于可信内网环境,避免安全风险。