Go 国内加速:Go 国内加速镜像 1 个改进

说明

众所周知,国内网络访问国外资源经常会出现不稳定的情况。 Go 生态系统中有着许多中国 Gopher 们无法获取的模块,比如最著名的 golang.org/x/...。并且在中国大陆从 GitHub 获取模块的速度也有点慢。

因此设置 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 国内加速镜像

本地如果有模块缓存,可以使用命令清空 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

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 8

为什么不行

[root@VM_0_11_centos html]# go env -w  GOPROXY=https://goproxy.cn
[root@VM_0_11_centos html]# time go get golang.org/x/tour
package golang.org/x/tour: unrecognized import path "golang.org/x/tour" (https fetch: Get https://golang.org/x/tour?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

real    0m30.004s
user    0m0.001s
sys     0m0.004s
4年前 评论
Summer (楼主) 4年前
lovecn (作者) 4年前
bullet 2年前

提示:windows在cmd运行不了上边的命令,得是powershell

2年前 评论

关注这里,再也不用发愁国内镜像问题了:github.com/eryajf/Thanks-Mirror#go

1年前 评论

windows上也是这样设置咯:go env -w GOPROXY=https://goproxy.cn

1年前 评论
rovast

牛哇

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!