go 编译超时解决

转载请注明出处:

在编译go项目时,遇到依赖下载超时,异常输出如下:

复制代码
CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -a -ldflags '-extldflags "-static"' -o ../../bin/gobmp ./gobmp.go
go: google.golang.org/[email protected]: unrecognized import path "google.golang.org/protobuf": https fetch: Get "https://google.golang.org/protobuf?go-get=1": dial tcp 142.251.211.241:443: i/o timeout
go: google.golang.org/[email protected]: unrecognized import path "google.golang.org/protobuf": https fetch: Get "https://google.golang.org/protobuf?go-get=1": dial tcp 142.251.211.241:443: i/o timeout

Go 在尝试访问模块 google.golang.org/protobuf 的时候出现了超时。这个问题通常可以归因于以下几个因素:网络连接问题、DNS 解析问题、被防火墙阻挡、或者其他网络配置相关的问题。

问题定位

1.网络问题

确保可以访问 google.golang.org。尝试使用网络工具检查连接:

复制代码
ping google.golang.org  

或者

复制代码
curl -v https://google.golang.org/protobuf  

如果这些命令返回错误,那么网络连接本身可能存在问题。

2.DNS 问题

如果你的 DNS 服务器有问题,可以尝试更换 DNS 服务器。例如,更换为 Google 的 DNS:

复制代码
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf  

然后再尝试 build。

3.防火墙设置

确保没有防火墙或网络策略阻止访问这些地址。

代理连接

如果以上方法无法解决问题,下面是一些可以使用的 Go 代理(这些代理可以帮助你在访问 Go 模块时使用不同的网络路径):

Go 中国代理 (如果你在中国大陆):

复制代码
export GOPROXY=https://goproxy.cn  

Goproxy.io (公共代理):

复制代码
export GOPROXY=https://goproxy.io,direct  

Golang Proxy (Google 官方代理):

复制代码
export GOPROXY=https://proxy.golang.org,direct  

其他公共代理

可以这样设置:

复制代码
export GOPROXY=https://mirrors.aliyun.com/goproxy,direct  

禁用 checksum 数据库 (如果你无法访问官方代理):

复制代码
export GOSUMDB=off  

手动获取模块

复制代码
go get google.golang.org/[email protected]  
相关推荐
DemonAvenger29 分钟前
Go sync.Pool 最佳实践:复用对象降低 GC 压力的技术文章
性能优化·架构·go
程序员爱钓鱼33 分钟前
Go 并发编程基础:select 多路复用
后端·google·go
程序员麻辣烫2 小时前
Go的优雅退出
后端·go
zhuyasen3 小时前
深度定制 protoc-gen-go:实现结构体字段命名风格控制
后端·go·protobuf
油腻中年李大鹅18 小时前
使用scheduler-plugins实现自定义调度器
kubernetes·go
DemonAvenger19 小时前
减少内存分配:Go中值类型与指针类型的选择
性能优化·架构·go
Piper蛋窝1 天前
我所理解的 Go 的 `panic` / `defer` / `recover` 异常处理机制
后端·go
叹一曲当时只道是寻常1 天前
AI书签管理工具开发全记录(十三):TUI基本框架搭建
ui·go
岁忧1 天前
(nice!!!)(LeetCode每日一题)2434. 使用机器人打印字典序最小的字符串(贪心+栈)
java·c++·算法·leetcode·职场和发展·go
喵个咪1 天前
MQTT 协议下的Last Will and Testament(LWT,遗嘱消息)
后端·go