我试图让Go使用内部企业Go代理(用于模块下载),这需要一个http_proxy才能访问(企业防火墙)。然而,go get -u golang.org/x/lint/golint
失败了:
包golang.org/x/lint/golint:未识别的导入路径"golang.org/x/lint/golint":https fetch: Get "https://golang.org/x/lint/golint?go-get=1":禁忌“
我的设置:
http_proxy
和https_proxy
环境变量是setno_proxy
,不包含IP或主机名的Go-ProxyGOPROXY
设置为(go env -w GOPROXY=https://artifactory.mycompany.com/api/go/myrepo-go-virtual
)。
我查过:
使用curl并直接查询GOPROXY服务器的
使用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
的问题:为什么要忽视共和党?我没有正确地设置一些东西吗?
我在golang:1.15.3
Docker容器中使用Go 1.15.3 (添加了一些工具来检查连接性)
发布于 2020-10-21 07:47:43
尝试如下:将GO111MODULE=on
设置为使用GOPROXY
或在运行go get
之前运行go mod init
https://stackoverflow.com/questions/64458372
复制相似问题