在代理后面时,我无法克隆 git 存储库

在代理后面时,我无法克隆 git 存储库

当我跑步时git clone git://git.gnome.org/tracker,我得到:

Cloning into tracker...
git.gnome.org[0: 209.132.180.173]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)

当我不在当前所在的网络代理后面时,这种情况不会发生。

答案1

术语注释:防火墙是什么阻止您直接连接到某些站点或端口。这代理人是一个中间服务器,您可以连接到它(但不是所有东西)并且允许访问 Internet。

如果您的代理没有太努力地阻止非网络流量,您也许可以让它中继您的 git 连接。使用类似的程序开瓶器或者连接代理使用CONNECT尝试通过代理的方法。将类似的内容放入您的~/.git/config(将proxy.example.com3128 替换为代理的主机名和端口):

[core]
gitProxy="corkscrew proxy.example.com 3128 git.gnome.org 9418"

许多代理被配置为CONNECT仅允许端口 443 (https),​​并且它们可能会检查它们中继的流量是否实际上是 SSL。如果您的情况如此,据我所知,您唯一的选择是使用不同的协议,使用您可以到达的外部中继(例如,在端口 443 上与服务器建立 ssh 隧道),或者让您的网络管理员允许git 流量。

答案2

使用 http 版本的 git.gnome.org repo 并设置 http_proxy 环境变量

http_proxy=http://your.proxy.server:proxy_port
git clone http://git.gnome.org/browse/tracker

您可能还需要将代理添加到 git config

git config --global http.proxy $http_proxy

答案3

git 配置详细信息,您可以为 HTTP 或 GIT 协议设置代理。

相关内容