gpt4 book ai didi

go - "go get"使用http_proxy时忽略GOPROXY

转载 作者:行者123 更新时间:2023-12-03 10:09:36 25 4
gpt4 key购买 nike

我正在尝试让 Go 使用内部企业 Go-Proxy 进行模块下载——这需要一个 http_proxy 才能访问(企业防火墙)。但是 go get -u golang.org/x/lint/golint 失败了:

package golang.org/x/lint/golint: unrecognized import path "golang.org/x/lint/golint": https fetch: Get "https://golang.org/x/lint/golint?go-get=1": Forbidden

我的设置:

  • http_proxyhttps_proxy 环境变量已设置
  • no_proxy 不包含我的 Go-Proxy 的 IP 或主机名
  • GOPROXY 已设置(go env -w GOPROXY=https://artifactory.mycompany.com/api/go/myrepo-go-virtual)

我检查过:

  • 使用 curl 并直接查询 GOPROXY 服务器工作正常,我可以下载文件(因此 https_proxy 设置有效)
  • 使用 curl 进行反检查并显式取消设置 http/https_proxy:如预期的那样没有连接

使用 tcpdump,我发现运行 go get 似乎忽略了我的 GOPROXY,并要求我的 http_proxy 直接连接到 golang.org 上的原始 url(为简洁起见,省略了选项/序列和确认号) ,代理/防火墙阻止。

06:52:53.926397 IP <my_ip.port> > <proxy.port>: Flags [S], length 0
06:52:53.927206 IP <proxy.port> > <my_ip.port>: Flags [S.], length 0
06:52:53.927232 IP <my_ip.port> > <proxy.port>: Flags [.], length 0
06:52:53.932003 IP <my_ip.port> > <proxy.port>: Flags [P.], length 89: HTTP: CONNECT golang.org:443 HTTP/1.1
06:52:53.932638 IP <proxy.port> > <my_ip.port>: Flags [.], length 0
06:52:53.933100 IP <proxy.port> > <my_ip.port>: Flags [P.], length 3939: HTTP: HTTP/1.1 403 Forbidden

问题: 为什么 Go 会忽略 GOPROXY?我是不是设置不正确?

我在 golang:1.15.3 Docker 容器中使用 Go 1.15.3(添加了一些检查连接的工具)

最佳答案

试试这个:设置 GO111MODULE=on 以使用 GOPROXY或者在运行 go get

之前运行 go mod init

关于go - "go get"使用http_proxy时忽略GOPROXY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64458372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com