Golang中go get遇到TLS握手超时问题如何解决 [go1.12.1.windows-386]

Golang中go get遇到TLS握手超时问题如何解决 [go1.12.1.windows-386] 我在尝试获取bra包作为在Windows 7 32位系统上构建grafana的先决条件时遇到以下错误。然而,当我在Windows 10 64位系统[go1.12.1.windows-386和amd64]上运行相同命令时没有错误。

C:\Users\user\Desktop\inst\grafana-6.0.1>go get github.com/Unknwon/bra
package gopkg.in/fsnotify/fsnotify.v1: unrecognized import path "gopkg.in/fsnotify/fsnotify.v1" (https fetch: Get https://gopkg.in/fsnotify/fsnotify.v1?go-get=1: net/http: TLS handshake timeout)

更多关于Golang中go get遇到TLS握手超时问题如何解决 [go1.12.1.windows-386]的实战教程也可以访问 https://www.itying.com/category-94-b0.html

6 回复

好的。谢谢您的推荐。我会尝试一下。感谢您的帮助。

更多关于Golang中go get遇到TLS握手超时问题如何解决 [go1.12.1.windows-386]的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你使用的是哪个版本的git?如果尚未使用最新版本,请尝试升级。

您好,似乎 Windows 7 的 x86 和 amd64 版本都无法从 GitHub 执行 go get 操作。系统已更新至最新版本,但在 Windows 10 的 x86 和 amd64 版本上却运行正常。虽然不确定 Windows 7 具体缺少什么组件,不过目前通过在 Windows 10 上构建并移植到 Windows 7 运行的方案效果令人满意。

你好

我无法访问32位的Windows 7机器。但我在64位Windows 7上使用32位版本的Go 1.12.1和Git-2.21.0(https://github.com/git-for-windows/git/releases/download/v2.21.0.windows.1/Git-2.21.0-32-bit.exe)可以正常工作。

在PowerShell中访问相同地址是否可行?

PS> Invoke-WebRequest -Uri https://gopkg.in/fsnotify/fsnotify.v1?go-get=1

为什么需要在Windows 7上运行?你知道可以在Windows 10机器上为32位Windows 7进行交叉编译吗?

在PowerShell中:

$env:GOARCH = "386"
go build -o myapp.exe main.go

这只是一个假设。旧版本的TLS协议在GitHub上已经停用相当长一段时间了。

GitHub图标

GitHub博客 - 2018年2月23日

工程英雄图

弱加密标准已移除 - GitHub博客

今天早些时候,我们在github.com和api.github.com上永久移除了以下弱加密标准的支持:TLSv1/TLSv1.1:这适用于所有HTTPS连接,包括到https://github.com的网页、API和Git连接…

这可能与此相关。

由于我不使用Windows,无法告诉你具体的解决方案,但建议尝试将Windows更新到最新的补丁版本。

在Go 1.12.1中遇到TLS握手超时问题通常与网络环境、代理设置或系统时间有关。以下是几种解决方案:

1. 设置GOPROXY环境变量

# 临时设置
set GOPROXY=https://goproxy.cn,direct

# 或者在go get命令中指定
go get -proxy https://goproxy.cn github.com/Unknwon/bra

2. 禁用TLS验证(仅用于测试环境)

set GOSUMDB=off
set GOINSECURE=gopkg.in
go get github.com/Unknwon/bra

3. 配置Git使用HTTPS替代

git config --global url."https://".insteadOf git://

4. 检查系统时间和时区设置

确保Windows 7系统的日期和时间正确,TLS证书验证依赖准确的时间。

5. 手动下载依赖

如果上述方法无效,可以手动克隆仓库:

mkdir -p %GOPATH%\src\gopkg.in\fsnotify
cd %GOPATH%\src\gopkg.in\fsnotify
git clone https://gopkg.in/fsnotify/fsnotify.v1

6. 使用go mod替代(如果项目支持)

go mod init your-project
go get github.com/Unknwon/bra

对于Windows 7系统,网络堆栈较老可能导致TLS协商问题,建议优先尝试设置GOPROXY或手动下载依赖的方法。

回到顶部