git 配置代理

本文详细介绍了如何针对不同Git协议(git://、ssh://、http(s)://)进行代理配置,特别针对使用socks4/5或http代理服务器的情况提供了具体的实现步骤。包括如何在不同环境下配置核心代理、SSH协议的Wrapper脚本、以及HTTP(S)协议的代理设置,以及如何在不同代理服务器类型下进行适配。
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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值