go mod 是 golang 1.12 推出的包管理工具,具有包依赖管理、版本管理、打包等功能,类似于 Java 生态中的 Maven (不得不说 Maven 真好用)。在使用的过程中遇到了 go mod download 时的 dial tcp 34.64.4.17:443: i/o timeout 问题,这里记录下解决的过程。

文章目录

  • 1、问题来源:引用 go-zookeeper 出现 i/o timeout 问题
  • 2、权限问题:为什么使用 Idea 自身控制台无法执行成功

关于为什么要使用 go mod,可以参考下这篇文章:开始使用 Go Module - 简书

1、问题来源:引用 go-zookeeper 出现 i/o timeout 问题

我希望在 Golang 程序中使用 zk ,所以需要导入 github.com/samuel/go-zookeeper/zk 这个库,在程序中的导入方式:

package mainimport (_ "github.com/samuel/go-zookeeper/zk"
)

然后在Idea控制台,输入go mod tidy检查所需依赖并进行下载,可以看到已经检查到缺少 zk 依赖,所以使用了go mod download 下载该依赖,然后出现 i/o timeout 的问题:

首先考虑的是被墙了,导致连接超时,所以采用了网上的方案,切换 go 的下载代理:

go env -w GO111MODULE=on // 开启go mod
go env -w GOPROXY=https://goproxy.cn,direct // 切换下载代理

然后在控制台继续执行 go mod tidy, 最后仍然提示: dial tcp 34.64.4.17:443: i/o timeout

最后折腾了半天,采用 gopm 也没能把依赖下载下来。

但是我使用 Mac 自带的终端进入该目录下执行 go mod tidy 后居然成功了

2、权限问题:为什么使用 Idea 自身控制台无法执行成功

一开始我使用的是 Idea 自身控制台来执行go mod tidy 这个命令,我们可以看一下,打开一个 Idea 控制台其实是 Idea 进程打开了一个控制台子进程:

打开三个控制台:

通过 top 命令找到 Idea 的 pid 为345, 通过 pstree 命令查看该进程创建的子进程:

 ~/MyFile/Project/go-mod-test : pstree -p 345
-+= 00001 root /sbin/launchd\-+= 00345 arong /Applications/IntelliJ IDEA.app/Contents/MacOS/idea -psn_0_65|--- 00700 arong /Applications/IntelliJ IDEA.app/Contents/bin/fsnotifier|--- 00768 arong /Applications/IntelliJ IDEA.app/Contents/jbr/Contents/Home/|--= 00710 arong /bin/zsh --login -i // 默认的命令执行器|--= 10928 arong /bin/zsh --login -i // 控制台1|--= 13038 arong /bin/zsh --login -i // 控制台2\--= 13063 arong /bin/zsh --login -i // 控制台3

总结起来就是:Idea 使用的是/bin/zsh --login -i命令启动一个终端进程来执行程序,所以可能会出现某些权限缺失的问题,这时采用操作系统自身的终端或者在执行go mod tidy命令时外加sudo go mod tidy获取到root权限就可以解决该问题了。

Golang-go mod download 出现 dial tcp 34.64.4.17:443: i/o timeout相关推荐

  1. 【jumpserver升级】docker pulling image报错dial tcp 104.18.124.25:443: i/o timeout

    报错信息 在openEuler 22.03 LTS操作系统中,通过在线方式将jumpserver-v2.25.4升级至jumpserver-v2.25.5,当执行./jmsctl.sh upgrade ...

  2. go报错dial tcp xx.xx.xx.xx:443: i/o timeout

    踩坑记录 使用go启动服务时,报错dial tcp xx.xx.xx.xx:443: i/o timeout 解决办法:配置goproxy # 配置goproxy export GOPROXY=htt ...

  3. go get dial tcp 172.217.163.49:443: i/o timeout

    国内运行 go 项目 很多情况下会出现无法下载 所需 包, 编译各种报错.. 这时需要我们设置代理,才可以访问.

  4. module ***: Get “https://proxy.golang.org/***“: dial tcp 172.217.160.113:443: connectex: A connectio

    问题描述: 从github上下载代表项目的时候,报module ***: Get "https://proxy.golang.org/***": dial tcp 172.217. ...

  5. dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启

    kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/pkg/dns/dns.go:150: Failed to list *v1.Service: Get https:// ...

  6. 【k8s】Error response from daemon: Get https://192.168.22.234/v2/: dial tcp 192.168.22.234:443: connec

    [起因]   番茄配蔬菜!!! 起初Dashborad无法访问,在重启了相关的节点之后,登录进来发现,你怎么成这样了呢,大兄滴儿~~ [问题]   仔细看一下报错信息,我们可以找到错误原因:Faile ...

  7. Tiller pods can‘t connect to k8s apiserver,dial tcp 10.254.0.1:443: no route to host

    1. 问题 使用helm list查看本地安装应用时,报错 # helm listError: Get https://10.254.0.1:443/api/v1/namespaces/kube-sy ...

  8. 解决dial tcp 172.217.160.81:443: connectex:

    在下载依赖包的时候经常会有这个错误,为什么呢,因为访问不了外网,被墙防啦 所以我们要用国内的代理 哎 比如 go env -w GOPROXY=https://goproxy.cn 这样就能开心的导包 ...

  9. go get failed: dial tcp 127.0.0.1:443: connect: connection refused

    换个代理源 go env -w GOPROXY=https://goproxy.cn

最新文章

  1. [解题报告]10929 - You can say 11
  2. CF359D:Pair of Numbers(数论)
  3. Python处理JSON数据
  4. 修改 SQL Server 服务器的 IP 地址
  5. V-rep学习笔记:机器人模型创建2—添加关节
  6. 虚拟主机1服务器,虚拟主机1服务器
  7. 关于两个用于创建和销毁二维动态数组的宏
  8. network packet
  9. Zookeeper_安全认证讲解
  10. 转载---设计模式分类
  11. api 接口开发理论 在php中调用接口以及编写接口
  12. java开源服务框架_Java框架服务
  13. [LeetCode] 234. Palindrome Linked List_Easy tag: Linked List
  14. libuv tcp client
  15. git 多个stash选择指定的版本恢复
  16. 图解R树的原理及相关操作
  17. java 求和、差、乘、商
  18. Jenkins 与 GitLab 的自动化构建之旅
  19. MySQL不小心按到ctrl_凌晨两点,不小心按下了Ctrl键,结果这样了……
  20. P3406 海底高铁(前缀和+差分+坑点)

热门文章

  1. 电竞耳机推荐什么牌子好?黑科技加持HyperX夜鹰加强版,重新定义游戏电竞耳机
  2. EMC存储划分lun过程
  3. 共读《傲慢与偏见》读书有感
  4. 数值分析C++实现用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题
  5. java自动售货机代码_急求简易自动售货机(java编程)
  6. 有限状态机FSM(Finite State Machine)及实现方式介绍(转)
  7. iCheck对于radio选定和取消选定
  8. 【Linux内核】RW读写锁机制
  9. 分享!如何实现微信扫二维码调用外部浏览器打开指定页面的功能
  10. pycharm sql语句插入