V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
lsk569937453
V2EX  ›  Go 编程语言

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

  •  
  •   lsk569937453 · 2020-07-07 10:01:45 +08:00 · 7515 次点击
    这是一个创建于 1629 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 都用不了

    第 1 条附言  ·  2020-07-07 11:13:37 +08:00
    我已经把 go 重装了 2 遍了还不行。。。只要能把这个问题解决掉,除了重装系统,我都可以试试
    49 条回复    2021-11-01 21:17:22 +08:00
    vus520
        1
    vus520  
       2020-07-07 10:03:46 +08:00
    你的时间对不。
    Chenamy2017
        2
    Chenamy2017  
       2020-07-07 10:35:21 +08:00
    设置代理不香吗?我本地不设置代理就是连接失败。
    mengzhuo
        3
    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
        4
    lsk569937453  
    OP
       2020-07-07 11:00:29 +08:00
    @Chenamy2017 我设置了代理,我的代理服务器是日本的。所以就直连了。
    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
    还是报错
    lsk569937453
        5
    lsk569937453  
    OP
       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
        6
    ypcs03  
       2020-07-07 11:43:23 +08:00
    Check 一下 http(s) proxy ? env | grep -i proxy 看看有没有设置 HTTP_PROXY 之类的
    wkzq
        7
    wkzq  
       2020-07-07 11:46:00 +08:00
    `go env`返回啥
    ccav
        8
    ccav  
       2020-07-07 12:24:27 +08:00
    拨了味屁恩? 这是 TLS 被 GFW 干了吧。
    flynaj
        9
    flynaj  
       2020-07-07 13:03:46 +08:00
    go env 看一下,估计是那点没有配置对 ,GO111MODULE=on 有没有设置,对着 https://goproxy.cn/ 在配置一遍
    SingeeKing
        10
    SingeeKing  
       2020-07-07 13:22:38 +08:00
    首先先记住一点国内 go package 网站是被墙的,所以必须配置代理

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

    **Go 不会遵从系统代理(除非使用 Surge 增强模式或者其他类似的工具),必须利用 GOPROXY 配置**
    lsk569937453
        11
    lsk569937453  
    OP
       2020-07-07 14:53:49 +08:00
    @ypcs03 返回结果是这个
    GOPROXY=goproxy.io
    没有配代理
    lsk569937453
        12
    lsk569937453  
    OP
       2020-07-07 15:03:33 +08:00
    @flynaj 设置了
    maoxs2
        13
    maoxs2  
       2020-07-07 15:05:00 +08:00 via Android
    1. 现在建议用 go env -w xxx=xxx 写环境变量
    2. 项目没 go.mod 时候 goproxy 设置了也没用
    3. 用了 goproxy 最好别用代理,尤其.cn 我有几个节点就连不上
    4. 如果是加依赖这年头不用 get,vet 或者 build 的时候自己会加上并 download
    lsk569937453
        14
    lsk569937453  
    OP
       2020-07-07 15:22:22 +08:00
    @maoxs2
    我现在用 vscode,得用 go get 下载插件。主要我这个错误和被墙的错误不一样。
    我同事被墙了会报 io timeout 。我的这个错误就是握手,就很邪门儿。
    huashuo
        15
    huashuo  
       2020-07-07 16:17:57 +08:00
    你 git 没有设置代理吧
    zarte
        16
    zarte  
       2020-07-07 16:22:34 +08:00
    使用代理,或者用 github 上的代替,或者手动下载。
    jdlau
        17
    jdlau  
       2020-07-07 16:24:59 +08:00 via Android
    换个代理试下,goproxy.io.
    jdlau
        18
    jdlau  
       2020-07-07 16:27:41 +08:00 via Android
    @lsk569937453 vscode 里设置启用 go proxy 了吗
    lcode
        19
    lcode  
       2020-07-07 17:41:49 +08:00
    不设代理,用 proxifier 直接下
    lsk569937453
        20
    lsk569937453  
    OP
       2020-07-07 18:46:27 +08:00
    @jdlau 我是直接命令行下载的
    lsk569937453
        21
    lsk569937453  
    OP
       2020-07-07 18:48:31 +08:00
    @lcode 我自己有代理,用代理下的时候也是握手错误
    jiejiss
        22
    jiejiss  
       2020-07-07 19:06:23 +08:00
    握手……用 tcpdump 弄出来搁 wireshark 里看看,跟 browser 的握手包对比下? https://stackoverflow.com/a/56852076/8553479
    raphael008
        23
    raphael008  
       2020-07-07 20:15:03 +08:00
    我亲身遇到过最离谱的情况是网卡坏了,下载能满速,上传就 0.几 kb,我还以为 IT 给我设规则了,那时候网络请求库也是报握手错误,建议排查下硬件问题。
    maoxs2
        24
    maoxs2  
       2020-07-07 21:37:54 +08:00 via Android
    @lsk569937453 用插件里 go language server,也没必要 get
    liuxu
        25
    liuxu  
       2020-07-07 21:54:49 +08:00
    用 proxychains-ng,你这个就是被墙了
    bintianbaihua
        26
    bintianbaihua  
       2020-07-08 08:58:57 +08:00
    看一下是不是配置了 proxy
    lsk569937453
        27
    lsk569937453  
    OP
       2020-07-08 09:06:20 +08:00
    @liuxu

    我用了 proxychains-ng,感觉应该连上 goproxy.cn 了,还是握手错误
    lsk569937453
        28
    lsk569937453  
    OP
       2020-07-08 09:08:18 +08:00
    @raphael008 我这应该不是这种情况,我现在能正常上网,代理也正常使用,就是 go get/go mod 用不了
    lsk569937453
        29
    lsk569937453  
    OP
       2020-07-08 09:08:39 +08:00
    @maoxs2 我现在是 go mod 也用不了。
    katsusan
        30
    katsusan  
       2020-07-08 09:16:19 +08:00
    @lsk569937453 go get 应该是对 git 的封装,看看 git clone 能不能正常工作
    madNeal
        31
    madNeal  
       2020-07-08 09:20:00 +08:00
    这里大家说的的代理和你的 socks 代理并不是同一种代理
    lsk569937453
        32
    lsk569937453  
    OP
       2020-07-08 09:27:22 +08:00
    @katsusan git 可以正常使用
    lsk569937453
        33
    lsk569937453  
    OP
       2020-07-08 09:27:51 +08:00
    @madNeal 就两种代理啊,一种是 goproxy,一种是本地的代理,
    lsk569937453
        34
    lsk569937453  
    OP
       2020-07-08 09:29:09 +08:00
    liuxu
        35
    liuxu  
       2020-07-08 10:38:05 +08:00
    @lsk569937453 我的意思是说用了 proxychains4 后就不用 goproxy 了,或者:

    liuxu:~$ export GOPROXY=https://athens.azurefd.net/

    这是我以前用的,不知道现在还有没有效果,或者其他第三方:

    https://goproxy.io/zh/
    Jirajine
        36
    Jirajine  
       2020-07-08 10:42:16 +08:00 via Android
    @liuxu proxychains 不是靠劫持动态链接库吗,对 go 这种静态链接的程序管用?
    johnsona
        37
    johnsona  
       2020-07-08 13:11:49 +08:00
    不折腾,直接用的上网工具开全局就完事了
    loading
        38
    loading  
       2020-07-08 13:47:45 +08:00 via Android
    我一般直接切全局,不为这种事情浪费时间。
    flynaj
        39
    flynaj  
       2020-07-08 13:54:46 +08:00
    @lsk569937453 #27 你代理的问题,不要用代理。
    scukmh
        40
    scukmh  
       2020-07-08 14:04:51 +08:00
    @Jirajine 应该是不管用的,我已经好久没用过 proxychains-ng 了
    katsusan
        41
    katsusan  
       2020-07-08 14:14:09 +08:00 via iPhone
    @lsk569937453 用 http 的途径去 git clone,你图中走的是 ssh
    liuxu
        42
    liuxu  
       2020-07-08 14:30:36 +08:00
    @Jirajine 哦,好像是的,之前弄了好久,最后用的 GOPROXY
    liuxu
        43
    liuxu  
       2020-07-08 14:31:32 +08:00
    @loading linux 怎么切全局,好像只能 iptables 或者路由器处理
    sarices
        44
    sarices  
       2020-07-08 14:42:31 +08:00
    昨天我就配过,之前下载了是旧版本的 go,无论怎样设置都报错
    然后下载了最新版本的二进制包,然后配置
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct

    go get 一切正常

    我的环境可以科学上网
    wangritian
        45
    wangritian  
       2020-07-08 14:48:16 +08:00
    搞个华硕或者网件路由器,刷梅林,最好的上网方案
    lsk569937453
        46
    lsk569937453  
    OP
       2020-07-08 15:19:13 +08:00
    @katsusan 可以的。
    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.
    lsk569937453
        47
    lsk569937453  
    OP
       2020-07-08 15:20:53 +08:00
    @loading 问题是全局也不行。。。现在就是开代理也不行,不开代理也不行。一直报握手错误
    lsk569937453
        48
    lsk569937453  
    OP
       2020-07-08 15:21:14 +08:00
    @sarices
    go version
    go version go1.14.4 darwin/amd64
    zhangv
        49
    zhangv  
       2021-11-01 21:17:22 +08:00
    目前还能遇到这个问题。
    梯子全局不全局都不行。
    我遇到的主要是 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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.