解决Go dial tcp 216.58.200.***:***: i/o timeout问题

开启GO111MODULE
用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。
GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
GO111MODULE=auto 在 GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。 在使用模块的时候,GOPATH 是无意义的,不过它还是会把下载的依赖储存在GOPATH/src/mod 中,也会把 go install 的结果放在 $GOPATH/bin 中。
go env -w GO111MODULE=on

在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。
设置GOPROXY代理:

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

设置GOPRIVATE来跳过私有库,比如常用的Gitlab或Gitee,中间使用逗号分隔:

go env -w GOPRIVATE=.gitlab.com,.gitee.com

如果在运行go mod vendor时,提示Get https://sum.golang.org/lookup/xxxxxx: dial tcp 216.58.200.49:443: i/o timeout,则是因为Go 1.13设置了默认的GOSUMDB=sum.golang.org,这个网站是被墙了的,用于验证包的有效性,可以通过如下命令关闭:

go env -w GOSUMDB=off

可以设置 GOSUMDB=“sum.golang.google.cn”, 这个是专门为国内提供的sum 验证服务。

go env -w GOSUMDB="sum.golang.google.cn"

你可能感兴趣的:(解决Go dial tcp 216.58.200.***:***: i/o timeout问题)