登录
首页 >  Golang >  Go问答

将 Go 适应在公司防火墙后访问 golang.org

来源:stackoverflow

时间:2024-02-23 10:18:24 100浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《将 Go 适应在公司防火墙后访问 golang.org》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

首先,虽然看起来和下面的问题一样

  • 如何修复 git 错误:rpc 失败;卷曲 56 gnutls
  • git 错误:rpc 失败,curl 56 gnutls 接收错误 (-110),以及
  • “错误:rpc 失败;curl 56 gnutls 接收错误 (-110):tls 连接未正确终止”,其中 hovo asatryan 评论道“它不能解决问题,我已经尝试过”它”,我也尝试过,但都不适合我。

不是。因为所有这些问题都在 git 上,但这是在 go get 上:

$ go get -v -u golang.org/x/tools/cmd/goimports
get "golang.org/x/tools/cmd/goimports": found meta tag get.metaimport{prefix:"golang.org/x/tools", vcs:"git", reporoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/cmd/goimports?go-get=1
get "golang.org/x/tools/cmd/goimports": verifying non-authoritative meta tag
golang.org/x/tools (download)
# cd .; git clone -- https://go.googlesource.com/tools /path/to/go/src/golang.org/x/tools
cloning into '.../go/src/golang.org/x/tools'...
error: rpc failed; curl 56 gnutls recv error (-110): the tls connection was non-properly terminated.
package golang.org/x/tools/cmd/goimports: exit status 128

没有一个解决方案适合我,我相信对于典型企业开发环境中的任何人来说:

  • 我们在公司防火墙后面访问互联网,因此,除非经过特殊处理,否则任何安全的 https 访问都会失败。
  • 除了访问像上面这样的公共 https git 存储库 https://go.googlesource.com/tools(这或多或少是一次性的事情)之外,我们还需要访问我们的内部 https tfs git 存储库 一直。因此我无法像其他解决方案建议的那样更改 git https 访问方法。
  • 我尝试事先使用 git config --global http.sslverify false 但问题仍然完全相同。

所以问题是,如何让go get告诉git放松安全检查?

我认为这是我唯一的选择,但我洗耳恭听。

ps。 -insecure 也不起作用:
$ go get -v -insecure golang.org/x/sys/unix
get "golang.org/x/sys/unix": found meta tag get.metaimport{prefix:"golang.org/x/sys", vcs:"git", reporoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys/unix?go-get=1
get "golang.org/x/sys/unix": verifying non-authoritative meta tag
golang.org/x/sys (download)
# cd .; git clone -- https://go.googlesource.com/sys /path/to/go/src/golang.org/x/sys
cloning into '/path/to/go/src/golang.org/x/sys'...
error: rpc failed; curl 56 gnutls recv error (-110): the tls connection was non-properly terminated.
package golang.org/x/sys/unix: exit status 128

pps。 curl -s https://go.googlesource.com/sys 对我来说效果很好:

$ curl -s https://go.googlesource.com/sys
sys - Git at Google

解决方案


我在这上面花了太多时间。 f*ing zscaller。 最终对我有用的是从 wsl 版本的 go(我认为是 ubuntu 20 go 1.13)切换到最新版本(1.17.3)

我使用了以下链接中的组合来实现此目的,可能存在更好的方法:
https://gist.github.com/nikhita/432436d570b89cab172dcf2894465753
https://askubuntu.com/questions/720260/updating-golang-on-ubuntu

但以防万一像我这样的菜鸟来到这里:

sudo apt-get purge golang*
curl -k https://dl.google.com/go/go1.17.3.linux-amd64.tar.gz --output go1.17.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf ./go1.17.3.linux-amd64.tar.gz
GOPATH=~/go
GOROOT=/usr/local/go
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
go install package@latest

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>