在 Linux 下为 git 使用代理

这两天由于种种原因,国内访问国外的网站速度很不好,而且android的开发网站本来就在墙外,repo sync直接就没办法运行。没办法,只好加上代理,代理是用的ssh账号(tunnelier)+ccproxy。从 Linux 下需要做一些设置。需要一个connect,我把编译好的程序和源码传上来了。connect.c

 

如果从源码编译,就是gcc -o connect connect.c。或者直接用connect,放在/usr/bin/下吧。

然后在/root目录(或者其它目录,根据情况改相应的路径就行)建立三个文件

proxy.sh

#!/bin/bash
export HTTP_PROXY=xx.xx.xx.xx:8080
export http_proxy=$HTTP_PROXY
export GIT_SSH=”/root/socks-ssh.sh”
export GIT_PROXY_COMMAND=”/root/socks-gw.sh”

socks-ssh.sh

#!/bin/bash
ssh -o ProxyCommand=”/root/socks-gw.sh %h %p” $@

socksh-gw.sh

#!/bin/bash
connect -H xx.xxx.xx.xx:8080 $@

上面的xx.xxx.xx.xx:8080换成你自己的代理。

然后 . proxy.sh就可以了。

不用代理的时候 repo sync 的速度只有几k到10几k,用了代理可以到100多k了。

===============以下是补充===============

更简单的方法是使用 corkscrew,对常用发行版本来说,仓库里都有,centos一类的没有可以从源码安装,很容易。

建立一个文件

git-proxy

[code]

#!/bin/sh

# exec <path to corkscrew>/corkscrew <proxy name> <proxy port> $*

exec corkscrew xxx.xx.xx.xx 808 $*

[/code]

chmod u+x git-proxy

git config –global core.gitproxy ‘path/to/git-proxy’

2 Responses to “ 在 Linux 下为 git 使用代理 ”

  1. zy_sunshine说道:

    好东西,转走了,嘿嘿。

  2. lighting29说道:

    content.c ?

发表回复