前言
在 Go 开发中,如果直接从官方源(https://proxy.golang.org
)下载依赖包速度较慢,可以通过设置 镜像代理 来加速依赖包的下载。以下是增加 Go 镜像代理的详细方法:
一、设置 Go 镜像代理
1. 使用环境变量设置代理
通过设置 GOPROXY
环境变量,指定镜像代理地址。
Linux/MacOS
# 临时生效
export GOPROXY=https://goproxy.cn,direct# 永久生效(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export GOPROXY=https://goproxy.cn,direct' >> ~/.bashrc
source ~/.bashrc
Windows
# 临时生效
$env:GOPROXY = "https://goproxy.cn,direct"# 永久生效(添加到环境变量)
[System.Environment]::SetEnvironmentVariable('GOPROXY', 'https://goproxy.cn,direct', [System.EnvironmentVariableTarget]::User)
2. 使用 go env
设置代理
直接通过 go env
命令设置代理:
go env -w GOPROXY=https://goproxy.cn,direct
3. 验证代理设置
go env GOPROXY
# 输出:https://goproxy.cn,direct
二、常用 Go 镜像代理地址
镜像代理地址 | 说明 |
---|---|
https://goproxy.cn | 七牛云提供的国内镜像,推荐使用 |
https://goproxy.io | GoProxy 官方镜像 |
https://mirrors.aliyun.com/goproxy/ | 阿里云提供的镜像 |
https://proxy.golang.com.cn | Go 语言中文网提供的镜像 |
https://gocenter.io | JFrog 提供的镜像 |
三、多代理配置
Go 支持配置多个代理地址,用逗号分隔。如果第一个代理失败,会自动尝试下一个代理。例如:
export GOPROXY=https://goproxy.cn,https://goproxy.io,direct
direct
:表示如果所有代理都失败,则直接从原始地址下载。
四、私有模块配置
如果你的项目依赖私有模块,可以通过 GOPRIVATE
环境变量指定私有模块的路径,避免通过代理下载。
1. 设置私有模块
export GOPRIVATE=github.com/mycompany,gitlab.com/myproject
2. 结合代理使用
export GOPROXY=https://goproxy.cn,direct
export GOPRIVATE=github.com/mycompany
五、Go 模块镜像代理的原理
Go 模块镜像代理的工作原理:
- 当执行
go get
或go mod tidy
时,Go 会向GOPROXY
指定的地址请求模块。 - 如果镜像代理中存在该模块,则直接返回;否则,代理会从原始地址下载并缓存。
- 如果所有代理都失败,则根据
direct
设置决定是否直接从原始地址下载。
六、示例:从零开始配置 Go 镜像代理
1. 初始化 Go 模块
go mod init myproject
2. 设置镜像代理
go env -w GOPROXY=https://goproxy.cn,direct
3. 下载依赖
go get github.com/gin-gonic/gin
4. 验证依赖下载
cat go.mod
七、总结
步骤 | 命令或配置 |
---|---|
设置镜像代理 | go env -w GOPROXY=https://goproxy.cn,direct |
验证代理设置 | go env GOPROXY |
设置私有模块 | export GOPRIVATE=github.com/mycompany |
下载依赖 | go get github.com/gin-gonic/gin |
通过以上方法,你可以轻松配置 Go 镜像代理,加速依赖包的下载,提升开发效率。
good day !!!