go 国内加速:go 国内加速镜像 | go 技术论坛-江南app体育官方入口
说明
众所周知,国内网络访问国外资源经常会出现不稳定的情况。 go 生态系统中有着许多中国 gopher 们无法获取的模块,比如最著名的 golang.org/x/...
。并且在中国大陆从 github 获取模块的速度也有点慢。
因此设置 cdn 加速代理就很有必要了,以下是几个速度不错的提供者:
- 七牛:
- 阿里:
- 官方: <全球 cdn 加速
- 其他:
提示:如果你是 gosumdb,也就是 sum.golang.org 无法访问,请参考 —— wiki:go 文档和加速:解决 gosumdb sum.golang.org 连接超时
设置代理
类 unix
在 linux 或 macos 上面,需要运行下面命令(或者,可以把以下命令写到 .bashrc
或 .bash_profile
文件中):
# 启用 go modules 功能
go env -w go111module=on
# 配置 goproxy 环境变量,以下三选一
# 1. 七牛 cdn
go env -w goproxy=https://goproxy.cn,direct
# 2. 阿里云
go env -w goproxy=https://mirrors.aliyun.com/goproxy/,direct
# 3. 官方
go env -w goproxy=https://goproxy.io,direct
确认一下:
$ go env | grep goproxy
goproxy="https://goproxy.cn"
windows
在 windows 上,需要运行下面命令:
# 启用 go modules 功能
$env:go111module="on"
# 配置 goproxy 环境变量,以下三选一
# 1. 七牛 cdn
$env:goproxy="https://goproxy.cn,direct"
# 2. 阿里云
$env:goproxy="https://mirrors.aliyun.com/goproxy/,direct"
# 3. 官方
$env:goproxy="https://goproxy.io,direct"
测试一下
$ time go get golang.org/x/tour
本地如果有模块缓存,可以使用命令清空
go clean --modcache
。
私有模块
如果你使用的 go 版本>=1.13, 你可以通过设置 goprivate 环境变量来控制哪些私有仓库和依赖(公司内部仓库)不通过 proxy 来拉取,直接走本地,设置如下:
# go version >= 1.13
go env -w goproxy=https://goproxy.cn,direct
# 设置不走 proxy 的私有仓库,多个用逗号相隔
go env -w goprivate=*.corp.example.com
为什么不行
提示:windows在cmd运行不了上边的命令,得是powershell
关注这里,再也不用发愁国内镜像问题了:
windows上也是这样设置咯:
go env -w goproxy=https://goproxy.cn
牛哇