在 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’
好东西,转走了,嘿嘿。
content.c ?