git 配置代理

  • Post author:
  • Post category:其他


Git 目前支持的三种协议 git://、ssh:// 以及 http(s)://,

其代理配置各不相同:core.gitproxy 用于git://

协议,http.proxy 用于 http(s)://

协议,而ssh:// 协议的代理需要配置 ssh 的 ProxyCommand 参数。

所以我们要针对不同的 Git 协议来进行代理的设置,而且还需要根据代理服务器的不同来进行不同的设置。

1.代理服务器为 socks4/5

使用 socks 代理服务器的时候,我们需要用 https://bitbucket.org/gotoh/connect 来进行代理的转换,

可以下载下来自己编译,也可以 Linux 发行版的仓库中查找命名为 proxy-connect 或者 connect-proxy 的软件包,

Archlinux 可以在 aur 中找到 connect-proxy。

建立一个 /usr/bin/to/socks5proxywrapper 文件,内容为,假设服务器地址为 127.0.0.1,端口为 7070:

vi socks5proxywrapper

#!/bin/sh

connect -S 10.22.0.4:1080 “$@”

chmod 777  socks5proxywrapper

GIT 协议的配置

vi ~/.gitconfig

[core]

gitproxy = /usr/bin/to/socks5proxywrapper

或者直接设置 GIT_PROXY_COMMAND 环境变量

export GIT_PROXY_COMMAND=”/usr/bin/to/socks5proxywrapper”

2.SSH 协议的配置

建立一个 /usr/bin/to/socks5proxyssh 文件:

#!/bin/sh

ssh -o ProxyCommand=”/usr/bin/to/socks5proxywrapper %h %p” “$@”

配置 git 使用该 wrapper

export GIT_SSH=”/usr/bin/to/socks5proxyssh”

GIT_SSH=”/usr/bin/to/socks5proxyssh” git pull/push

3.HTTP(S) 协议的配置

因为 Git 使用 libcurl 提供 http 支持,所以直接在 git 配置文件中加入

[http]

proxy = socks5://127.0.0.1:7070

二、代理服务器为 http 代理

1.HTTP 协议配置

[http]

proxy = http://hzproxy.utstar.com.cn:1080

所有协议改为http代理

#!/bin/sh
connect -H http://hzproxy.utstar.com.cn:1080 "$@"

2.SSH/GIT 协议

建立 /usr/bin/to/httpproxywrapper 文件:

#!/bin/sh

connect -H 10.22.0.4:8080 “$@”

然后根据上述 socks 代理中的设置,将 socks5proxywrapper 改为 httpproxywrapper



版权声明:本文为thisisvoa原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。