1. 程式人生 > 實用技巧 >go proxy 代理

go proxy 代理

Go 技巧分享:Go 國內加速映象0 個改進

6

說明

眾所周知,國內網路訪問國外資源經常會出現不穩定的情況。 Go 生態系統中有著許多中國 Gopher 們無法獲取的模組,比如最著名的golang.org/x/...。並且在中國大陸從 GitHub 獲取模組的速度也有點慢。

因此設定 CDN 加速代理就很有必要了,以下是幾個速度不錯的提供者:

設定代理

類 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