我的机器上 go get 指令一直报握手错误。从下午查到晚上还不知道啥问题

2020-07-07 10:01:45 +08:00
 lsk569937453

go get -v golang.org/x/tools/gopls go: github.com/gin-gonic/gin@v1.6.3: 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 都用不了

7515 次点击
所在节点    Go 编程语言
49 条回复
vus520
2020-07-07 10:03:46 +08:00
你的时间对不。
Chenamy2017
2020-07-07 10:35:21 +08:00
设置代理不香吗?我本地不设置代理就是连接失败。
mengzhuo
2020-07-07 10:49:18 +08:00
可能是对方服务器有问题或者你的机器时间有问题

Get "https://goproxy.cn/github.com/gin-gonic/gin/@v/v1.6.3.mod": net/http: TLS handshake timeout
lsk569937453
2020-07-07 11:00:29 +08:00
@Chenamy2017 我设置了代理,我的代理服务器是日本的。所以就直连了。
GOPROXY=direct go mod download
go: github.com/gin-gonic/gin@v1.6.3 requires
gopkg.in/yaml.v2@v2.2.8: unrecognized import path "gopkg.in/yaml.v2": https fetch: Get "https://gopkg.in/yaml.v2?go-get=1": net/http: TLS handshake timeout
还是报错
lsk569937453
2020-07-07 11:02:39 +08:00
@mengzhuo
https://goproxy.cn/github.com/gin-gonic/gin/@v/v1.6.3.mod 这个 Url 我可以直接从浏览器打开的,应该不是对方服务器的问题。
我本地 date
2020 年 7 月 7 日 星期二 11 时 01 分 34 秒 CST

时间也没问题吧
ypcs03
2020-07-07 11:43:23 +08:00
Check 一下 http(s) proxy ? env | grep -i proxy 看看有没有设置 HTTP_PROXY 之类的
wkzq
2020-07-07 11:46:00 +08:00
`go env`返回啥
ccav
2020-07-07 12:24:27 +08:00
拨了味屁恩? 这是 TLS 被 GFW 干了吧。
flynaj
2020-07-07 13:03:46 +08:00
go env 看一下,估计是那点没有配置对 ,GO111MODULE=on 有没有设置,对着 https://goproxy.cn/ 在配置一遍
SingeeKing
2020-07-07 13:22:38 +08:00
首先先记住一点国内 go package 网站是被墙的,所以必须配置代理

如果配置了代理:看看 go env 返回的代理对不对
如果没配置代理:设置 GOPROXY 变量

**Go 不会遵从系统代理(除非使用 Surge 增强模式或者其他类似的工具),必须利用 GOPROXY 配置**
lsk569937453
2020-07-07 14:53:49 +08:00
@ypcs03 返回结果是这个
GOPROXY=goproxy.io
没有配代理
lsk569937453
2020-07-07 15:03:33 +08:00
@flynaj 设置了
maoxs2
2020-07-07 15:05:00 +08:00
1. 现在建议用 go env -w xxx=xxx 写环境变量
2. 项目没 go.mod 时候 goproxy 设置了也没用
3. 用了 goproxy 最好别用代理,尤其.cn 我有几个节点就连不上
4. 如果是加依赖这年头不用 get,vet 或者 build 的时候自己会加上并 download
lsk569937453
2020-07-07 15:22:22 +08:00
@maoxs2
我现在用 vscode,得用 go get 下载插件。主要我这个错误和被墙的错误不一样。
我同事被墙了会报 io timeout 。我的这个错误就是握手,就很邪门儿。
huashuo
2020-07-07 16:17:57 +08:00
你 git 没有设置代理吧
zarte
2020-07-07 16:22:34 +08:00
使用代理,或者用 github 上的代替,或者手动下载。
jdlau
2020-07-07 16:24:59 +08:00
换个代理试下,goproxy.io.
jdlau
2020-07-07 16:27:41 +08:00
@lsk569937453 vscode 里设置启用 go proxy 了吗
lcode
2020-07-07 17:41:49 +08:00
不设代理,用 proxifier 直接下
lsk569937453
2020-07-07 18:46:27 +08:00
@jdlau 我是直接命令行下载的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/687790

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX