【问题标题】:"go get" ignores GOPROXY when using http_proxy“go get”在使用 http_proxy 时会忽略 GOPROXY
【发布时间】:2021-02-04 01:28:25
【问题描述】:

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

包golang.org/x/lint/golint:无法识别的导入路径“golang.org/x/lint/golint”:https fetch:获取“https://golang.org/x/lint/golint?go- get=1": 禁止

我的设置:

  • 设置了http_proxy 和https_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(为简洁起见,省略了选项/序列和 ack 号),代理/防火墙块。

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(添加了一些工具来检查连接)

【问题讨论】:

  • go env 是否将GOPROXY 变量设置为您希望设置的值?
  • @kostix 是的,确实如此。当我使用go env -w GOPROXY=... 设置它时,以及当我只使用export GOPROXY=...
  • 您是否偶然设置了GONOPROXY(参见this)?
  • 我不这么认为:go env 显示它是空的 (GONOPROXY="")

标签: go proxy


【解决方案1】:

试试这个:设置GO111MODULE=on 使用GOPROXY 或者在运行go get之前运行go mod init

【讨论】:

  • GO111MODULE=on 成功了。谢谢 - 这让我发疯了。
  • 如果您想深入了解,请查看此页面:dev.to/maelvls/…>
  • @ws_,为什么需要使用 Go 1.15.3 进行设置?您的意思是这两个事实的(奇怪)叠加:1)OP 在 GOPATH 下检查了他的项目,2)在 GOPATH 下工作时,GOPROXY 不被视为go 在非模块、遗留系统中工作,模式?
  • @kostix 您的描述是正确的。在代理提供商的站点中,通常他们会提供此指令,例如goproxy.io。更好的方法是在go get 之前运行go mod init 以使用GOPROXY 而忘记GO111MODULE。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2021-03-02
  • 1970-01-01
  • 2023-03-14
  • 2012-05-10
  • 1970-01-01
相关资源
最近更新 更多