Golang中如何在Linux系统下使用go get命令

Golang中如何在Linux系统下使用go get命令 为什么在 Linux 系统中 go get 命令无法正常工作。

cd .; git clone https://github.com/bradfitz/go-sql-test /home/rakhil/go/src/github.com/bradfitz/go-sql-test
error: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version while accessing https://github.com/bradfitz/go-sql-test/info/refs?service=git-upload-pack
fatal: HTTP request failed
package github.com/bradfitz/go-sql-test: exit status 128

当我运行 go get 获取 git 链接时遇到此错误,该如何解决?

感谢


更多关于Golang中如何在Linux系统下使用go get命令的实战教程也可以访问 https://www.itying.com/category-94-b0.html

7 回复

好的。谢谢

更多关于Golang中如何在Linux系统下使用go get命令的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


git 版本 1.7.12.4

go 版本 go1.11.3 linux/amd64

这个页面上的某些人似乎从 git 1.9.x 更新到 2.1.x 后解决了他们的问题。

我通过git clone下载了驱动程序。在测试时遇到了错误。我会为此创建一个新帖子,你能解释一下我为什么会遇到这个错误吗?

你的版本相当老旧。当前版本是2.20。

git clone 不是 go 命令。关于此错误信息的相关讨论可在此处查看:
https://stackoverflow.com/questions/48944875/sourcetree-error1407742essl-routinesssl23-get-server-hellotlsv1-alert-protocol
您当前使用的 go 和 git 版本是什么?

这个错误通常是由于系统中 Git 客户端版本过旧,无法与 GitHub 的 TLS 协议版本兼容导致的。GitHub 在 2018 年停止了对 TLSv1/TLSv1.1 的支持,要求使用 TLSv1.2 或更高版本。

以下是解决方案:

1. 升级系统 Git 客户端

在 Ubuntu/Debian 系统上:

sudo apt update
sudo apt install git

在 CentOS/RHEL 系统上:

sudo yum update git
# 或者对于较新版本
sudo dnf update git

2. 验证 Git 版本 升级后检查 Git 版本:

git --version

确保 Git 版本在 2.x 以上。

3. 设置 Git 使用更高版本的 TLS 如果无法立即升级 Git,可以临时配置:

git config --global http.sslVersion tlsv1.2

4. 使用 GOPROXY(推荐) 设置 Go 模块代理来避免直接 Git 操作:

go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=sum.golang.google.cn

5. 完整示例 升级 Git 并重新尝试 go get:

# 在 Ubuntu 上
sudo apt update && sudo apt install -y git

# 设置 GOPROXY
go env -w GOPROXY=https://goproxy.cn,direct

# 重新执行 go get
go get github.com/bradfitz/go-sql-test

6. 如果问题仍然存在,检查系统 OpenSSL 版本

openssl version

确保 OpenSSL 版本不低于 1.0.1。

这些步骤应该能解决你的 TLS 协议版本不匹配问题。

回到顶部