运行go run main.go安装Go依赖时出现i/o timeout报错如何解决
问题现象
执行go run main.go运行Golang项目时,依赖拉取阶段抛出超时错误,报错信息如下:
go: downloading github.com/package main.go:13:2: github.com/package: Get "https://proxy.golang.org/github.com/package": proxyconnect tcp: dial tcp: lookup http on x.x.x.x:x: read udp x.x.x.x:x->x.x.x.x:x: i/o timeout
故障原因
Go默认使用官方模块代理拉取依赖,网络连通性异常时会触发该类超时报错,常见触发场景包括默认代理无法访问、本地代理配置错误、网络链路不通。
解决步骤
- 执行以下命令修改全局Go环境,配置可用的模块代理:
go env -w GOPROXY=https://goproxy.cn,direct go env -w GOSUMDB=off
配置项中direct表示代理无法连通时直接回源拉取依赖,关闭GOSUMDB可避免依赖校验阶段的跨网超时问题。
- 执行以下命令校验配置是否生效:
go env GOPROXY
返回结果与设置的代理地址一致即为配置成功。
- 清理本地异常依赖缓存后重新运行项目:
go clean -modcache go run main.go
- 若本地开启了系统代理、VPN类网络工具,执行
go env HTTP_PROXY HTTPS_PROXY检查Go读取到的代理配置是否正确,配置错误时通过go env -w命令修正,或临时关闭网络代理工具后重试。
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

