2011年7月30日星期六

通过ssh tunnel让git使用代理

在墙内有时候签个东西实在是慢得不可想象

wangjl@wangjl-laptop ~/workspace/test $ git clone git://git.savannah.gnu.org/gnulib.git
Cloning into gnulib...
remote: Counting objects: 120258, done.
remote: Compressing objects: 100% (19913/19913), done.
Rceiving objects:   4% (5096/120258), 1.24 MiB | 3 KiB/s


google到了这篇文章(http://www.vpsee.com/2011/07/how-to-use-git-through-a-http-proxy/),说git只有用HTTP方式的时候能使用代理,其他就只能找使用socat这样的代理软件了,connect-proxy大概也可以……

但我琢磨我这样可能更标准也更简单一点:

1、查到服务器ip

wangjl@wangjl-laptop ~/workspace/test $ host git.savannah.gnu.org
git.savannah.gnu.org has address 140.186.70.72

2、建立ssh通道


ssh  -L9418:140.186.70.72:9418  -i  ~/.ssh/vpsee xxx.xxx.xxx.xxx  -pxxxx  (呵呵,我也是vpsee的客户)

3、修改hosts文件
echo 127.0.0.1    git.savannah.gnu.org>>/etc/hosts

效果:


wangjl@wangjl-laptop ~/workspace/test $ sudo emerge -av gnulib

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    *] dev-libs/gnulib-9999-r1  USE="doc" 0 kB

Total: 1 package (1 new), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No] Yes

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) dev-libs/gnulib-9999-r1
 * Package:    dev-libs/gnulib-9999-r1
 * Repository: gentoo
 * Maintainer: prefix@gentoo.org
 * USE:        amd64 doc elibc_glibc kernel_linux multilib userland_GNU
 * FEATURES:   sandbox
>>> Unpacking source...
 * GIT NEW clone -->
 *    repository: git://git.savannah.gnu.org/gnulib.git
Cloning into bare repository /usr/portage/distfiles/git-src/gnulib...
remote: Counting objects: 120258, done.
remote: Compressing objects: 100% (19913/19913), done.
remote: Total 120258 (delta 100305), reused 120233 (delta 100287)
Receiving objects: 100% (120258/120258), 20.17 MiB | 392 KiB/s, done.



vpsee的机器还是挺快的

没有评论:

发表评论