当前位置: 首页 > news >正文

go设置镜像代理

前言

在 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.ioGoProxy 官方镜像
https://mirrors.aliyun.com/goproxy/阿里云提供的镜像
https://proxy.golang.com.cnGo 语言中文网提供的镜像
https://gocenter.ioJFrog 提供的镜像

三、多代理配置

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 模块镜像代理的工作原理:

  1. 当执行 go getgo mod tidy 时,Go 会向 GOPROXY 指定的地址请求模块。
  2. 如果镜像代理中存在该模块,则直接返回;否则,代理会从原始地址下载并缓存。
  3. 如果所有代理都失败,则根据 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 !!!

相关文章:

  • psacct 简介
  • 5.【线性代数】—— 转置,置换和向量空间
  • C语言数组之二维数组
  • MySQL创建视图
  • 基站天线的优化策略
  • docker安装mysql:8.0
  • 【探商宝】:大数据与AI赋能,助力中小企业精准拓客引
  • [LeetCode力扣hot100]-二叉树相关手撕题
  • [LeetCode力扣hot100]-C++常用数据结构
  • 段错误 (核心已转储)
  • 网络工程师 (44)ARP协议
  • 【九】Golang 数组
  • 由application绑定失败引起的ANR
  • IMX6ULL的ALT0、ALT1、ALT2、ALT3、ALT4等是啥意思?
  • Burp Suite基本使用(web安全)
  • iOS事件传递和响应
  • 车载软件架构 --- 软件开发在造车流程中的位置
  • 静态路由协议知识要点总结
  • C语言中printf()函数何时把内容输出到屏幕上?
  • Java 基于 SpringBoot+Vue 的动漫平台(附源码,文档)
  • java做网站seo/网站免费软件
  • 完整网站开发视频教程/西安seo顾问培训
  • 天津网站制作机玩法部/广安seo外包
  • 网站建设进度图/产品seo基础优化
  • 有没有做宠物的网站/兰州网络seo
  • 接视频做的网网站/最新疫情新闻100字