GoLang 配置代理:系统代理 & GOPROXY

GoLang 配置代理:系统代理 & GOPROXY通过配置代理解决 go get 报错:connect refused,本文提供两种方式:GOPROXY & 系统代理

问题描述

由于一些网络环境问题,当我们使用go get 来获取一些依赖包时,常常会出现 connection refused 等问题,下面获取gomega 包的指令为例:

go get -u github.com/onsi/gomega

经过等待后,我们会得到如下报错:

go get: module github.com/onsi/gomega: Get "https://proxy.golang.org/github.com/onsi/gomega/@v/list": dial tcp 172.217.27.145:443: connect: connection refused

解决方案

设置GOPROXY 环境变量

go 安装后,默认的环境变量,我们可以通过go env 指令查看一下:

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.16.5"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build525051245=/tmp/go-build -gno-record-gcc-switches"

其中,可以看到一个GOPROXY 环境变量,正常情况下,go get 会通过该代理访问github 以完成包的下载。 如何使用呢,值得庆幸的是goproxy.io 这个开源项目为我们提供了一个免费的代理,其官网提供了不同平台的配置方式,以linux 为例,这里提供两种方式进行配置tongguo:

  1. 通过export 设置环境变量

    export GOPROXY=https://goproxy.io,direct
    

    但是熟悉linux 的同学知道,通过export 设置的环境变量,当我们重新登陆到终端时就会失效,为了一劳永逸的解决问题,建议使用长久生效的方式设置该环境变量

  2. 通过go env 设置环境变量

    go env -w GOPROXY=https://goproxy.io,direct
    

    通过这种方式,可以将环境变量写入go 的配置文件中,长久生效

设置系统代理

说到网络问题,那么很自然的就会联想到四个大字——设置代理,上一个方法中,我们是通过为go 自身配置代理来解决网络访问问题的。

我们也可以通过设置系统代理的方式,来解决该问题。

export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port

最终效果

通过配置代理,解决go get 无法为项目下载依赖的问题。

# go get -u github.com/onsi/gomega
go: downloading github.com/onsi/gomega v1.13.0
go: downloading golang.org/x/net v0.0.0-20210428140749-89ef3d95e781
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading golang.org/x/net v0.0.0-20210614182718-04defd469f4e
go: downloading golang.org/x/text v0.3.6

今天的文章GoLang 配置代理:系统代理 & GOPROXY分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/15001.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注