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
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 协议版本不匹配问题。

