Golang Go语言中我的机器上 go get 指令一直报握手错误。从下午查到晚上还不知道啥问题
Golang Go语言中我的机器上 go get 指令一直报握手错误。从下午查到晚上还不知道啥问题
go get -v golang.org/x/tools/gopls go: github.com/gin-gonic/[email protected]: Get “https://goproxy.cn/github.com/gin-gonic/gin/@v/v1.6.3.mod”: net/http: TLS handshake timeout
我用 curl 试下了也可以 curl -k --tlsv1 https://goproxy.cn/github.com/gin-gonic/gin/@v/v1.6.3.mod module github.com/gin-gonic/gin
go 1.13
require ( github.com/gin-contrib/sse v0.1.0 github.com/go-playground/validator/v10 v10.2.0 github.com/golang/protobuf v1.3.3 github.com/json-iterator/go v1.1.9 github.com/mattn/go-isatty v0.0.12 github.com/stretchr/testify v1.4.0 github.com/ugorji/go/codec v1.1.7 gopkg.in/yaml.v2 v2.2.8 )
我搜到一个答案是本地设置把 https 代理设置错了。我现在本地就没设置代理 env|grep proxy GOPROXY=https://goproxy.cn,direct
这种情况怎么办呢?现在是 go mod,go get 都用不了
更多关于Golang Go语言中我的机器上 go get 指令一直报握手错误。从下午查到晚上还不知道啥问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你的时间对不。
更多关于Golang Go语言中我的机器上 go get 指令一直报握手错误。从下午查到晚上还不知道啥问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
设置代理不香吗?我本地不设置代理就是连接失败。
可能是对方服务器有问题或者你的机器时间有问题
Get “https://goproxy.cn/github.com/gin-gonic/gin/@v/v1.6.3.mod”: net/http: TLS handshake timeout
我设置了代理,我的代理服务器是日本的。所以就直连了。
GOPROXY=direct go mod download
go: github.com/gin-gonic/[email protected] requires
gopkg.in/[email protected]: unrecognized import path “gopkg.in/yaml.v2”: https fetch: Get “https://gopkg.in/yaml.v2?go-get=1”: net/http: TLS handshake timeout
还是报错
https://goproxy.cn/github.com/gin-gonic/gin/v/v1.6.3.mod 这个 Url 我可以直接从浏览器打开的,应该不是对方服务器的问题。
我本地 date
2020 年 7 月 7 日 星期二 11 时 01 分 34 秒 CST
时间也没问题吧
Check 一下 http(s) proxy ? env | grep -i proxy 看看有没有设置 HTTP_PROXY 之类的
go env
返回啥
拨了味屁恩? 这是 TLS 被 GFW 干了吧。
go env 看一下,估计是那点没有配置对 ,GO111MODULE=on 有没有设置,对着 https://goproxy.cn/ 在配置一遍
首先先记住一点国内 go package 网站是被墙的,所以必须配置代理
如果配置了代理:看看 go env 返回的代理对不对
如果没配置代理:设置 GOPROXY 变量
Go 不会遵从系统代理(除非使用 Surge 增强模式或者其他类似的工具),必须利用 GOPROXY 配置
返回结果是这个
GOPROXY=goproxy.io
没有配代理
- 现在建议用 go env -w xxx=xxx 写环境变量
2. 项目没 go.mod 时候 goproxy 设置了也没用
3. 用了 goproxy 最好别用代理,尤其.cn 我有几个节点就连不上
4. 如果是加依赖这年头不用 get,vet 或者 build 的时候自己会加上并 download
我现在用 vscode,得用 go get 下载插件。主要我这个错误和被墙的错误不一样。
我同事被墙了会报 io timeout 。我的这个错误就是握手,就很邪门儿。
你 git 没有设置代理吧
使用代理,或者用 github 上的代替,或者手动下载。
换个代理试下,goproxy.io.
vscode 里设置启用 go proxy 了吗
我是直接命令行下载的
我自己有代理,用代理下的时候也是握手错误
我亲身遇到过最离谱的情况是网卡坏了,下载能满速,上传就 0.几 kb,我还以为 IT 给我设规则了,那时候网络请求库也是报握手错误,建议排查下硬件问题。
用插件里 go language server,也没必要 get
用 proxychains-ng,你这个就是被墙了
看一下是不是配置了 proxy
我用了 proxychains-ng,感觉应该连上 goproxy.cn 了,还是握手错误
我这应该不是这种情况,我现在能正常上网,代理也正常使用,就是 go get/go mod 用不了
我现在是 go mod 也用不了。
go get 应该是对 git 的封装,看看 git clone 能不能正常工作
这里大家说的的代理和你的 socks 代理并不是同一种代理
就两种代理啊,一种是 goproxy,一种是本地的代理,
我的意思是说用了 proxychains4 后就不用 goproxy 了,或者:
liuxu:~$ export GOPROXY=https://athens.azurefd.net/
这是我以前用的,不知道现在还有没有效果,或者其他第三方:
https://goproxy.io/zh/
proxychains 不是靠劫持动态链接库吗,对 go 这种静态链接的程序管用?
不折腾,直接用的上网工具开全局就完事了
我一般直接切全局,不为这种事情浪费时间。
#27 你代理的问题,不要用代理。
应该是不管用的,我已经好久没用过 proxychains-ng 了
用 http 的途径去 git clone,你图中走的是 ssh
linux 怎么切全局,好像只能 iptables 或者路由器处理
昨天我就配过,之前下载了是旧版本的 go,无论怎样设置都报错
然后下载了最新版本的二进制包,然后配置
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go get 一切正常
我的环境可以科学上网
搞个华硕或者网件路由器,刷梅林,最好的上网方案
可以的。
git clone https://github.com/docker-library/golang.git
Cloning into ‘golang’…
remote: Enumerating objects: 81, done.
remote: Counting objects: 100% (81/81), done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 3598 (delta 29), reused 65 (delta 20), pack-reused 3517
Receiving objects: 100% (3598/3598), 465.10 KiB | 26.00 KiB/s, done.
Resolving deltas: 100% (1748/1748), done.
go version
go version go1.14.4 darwin/amd64
目前还能遇到这个问题。
梯子全局不全局都不行。
我遇到的主要是 verify 的时候:
go get: gorm.io/[email protected]: verifying module: gorm.io/[email protected]: Get “https://sum.golang.google.cn/lookup/gorm.io/[email protected]”: net/http: TLS handshake timeout
针对您提到的 go get
指令在 Go 语言中一直报握手错误的问题,这通常与网络连接或 SSL/TLS 配置有关。以下是一些可能的解决步骤:
-
检查网络连接: 确保您的机器可以正常访问外部网络,特别是 Go 模块的源(如 GitHub)。可以尝试使用
ping
或curl
命令测试网络连接。 -
检查 Go 代理设置: 如果您使用了 Go 代理(如 GOPROXY),请确保其配置正确。可以尝试暂时禁用代理(将 GOPROXY 设置为空)来看是否解决问题。
-
更新 Go 版本: 确保您使用的 Go 版本是最新的,或者至少是一个稳定的版本。老版本的 Go 可能存在已知的 SSL/TLS 问题。
-
检查 SSL/TLS 配置: 如果您的系统或网络有特殊的 SSL/TLS 配置(如自定义的 CA 证书),请确保 Go 运行时能够正确加载这些配置。可以通过设置
GOROOT
和CGO_CFLAGS
等环境变量来指定 CA 证书路径。 -
查看错误日志: 详细查看
go get
输出的错误日志,可能会有更具体的错误信息或提示。 -
尝试其他网络环境: 如果可能,尝试在不同的网络环境下运行
go get
,以排除是特定网络环境的问题。
如果上述步骤都无法解决问题,建议查阅 Go 社区或相关论坛,看看是否有其他开发者遇到并解决了类似的问题。