如何对 GOPRIVATE 私有仓库使用代理的问题

2022-09-03 23:59:19 +08:00
 Morii

场景:

公司提供了 VPN ,但是只能全局代理,个人感觉不安全,并且深信服口碑不咋地,于是我在 docker 中启动 vpn ,并向外提供一个 sock5 代理,我希望 go get ≈<private_repo_path>` 走我本地启动的这个 sock5 代理

我目前的配置:

问题:

我期望 git clone 公司 Gitlab/repo_name 命令走我启动的 sock5 代理,目前已经成功, 因为我配置了 git 的 http 代理。

但是 go get 公司 Gitlab/repo_name 时显示超时

了解到 go get 本质上是 git clone 并且我设置了 ssh insteadOf http 时,我认为我应该配置一个 SSH 的代理

于是我在 .ssh/config 增加了以下配置

Host 公司 Gitlab.net
    ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p

但是并不起作用

go get Gitlab.net/repo_name 时显示

go get: unrecognized import path "公司 Gitlab.net/golang/base": https fetch: Get "https://公司 Gitlab.net/golang/base?go-get=1": dial tcp 10.130.xxx.xxx:443: i/o timeout

看了下 10.130.xxx.xxx 应该是公司 Gitlab.net 的内网 IP ,请问我该怎么办?

1270 次点击
所在节点    Go 编程语言
3 条回复
zzyphp111
2022-09-04 06:00:35 +08:00
之前也遇到这个问题了等大佬回答前

我是绕过了代理问题,用了共享目录方案,在本机 clone 代码,在 docker 里用,省了时间,也实现了目的。
lysS
2022-09-04 10:26:01 +08:00
公司的 VPN 、公司装的深信服。。。你信不信得不过有啥用,总之自找麻烦。

“insteadOf = http://公司 Gitlab.net/” 这个应该和上面一条一样吧?

“git clone 公司 Gitlab/repo_name 命令走我启动的 sock5 代理,目前已经成功” 我怀疑这个不是走的代理,你抓包看看

还有就是你的 docker 映射端口了没有?
Morii
2022-09-04 15:13:24 +08:00
@lysS #2
@zzyphp111 #1

找到问题了,go get 不仅仅走了 ssh 去 clone ,还有一次 http 访问,所谓加上 https_proxy=sock5://xxxxx go get xxxx 就可以了。


> 公司的 VPN 、公司装的深信服。。。你信不信得不过有啥用,总之自找麻烦。

深信服那个软件会安装奇怪的证书,软件退出去之后还会残留一个奇怪的进程。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/877543

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX