bitbucket 访问加速

墙内访问bitbucket的时候,某些时候会发生一些很诡异的情况,比如:

1
2
3
remote: Counting objects: 17, done.
remote: Compressing objects: 100% (17/17), done.
Unpacking objects: 11% (2/17)

解压文件的时候,突然就卡住了,怎么都下不下来,无论重试多少次。
这里的remote原本引用的就是git协议,所以用git替代https/http的方案走不通。

所以,这种情况下,我们就需要利用我们的ss来帮我们的bitbucket加速了。

加速方案

在.ssh/文件夹下添加一个config文件,内容如下:

1
2
3
4
5
6
7
host github.com
User git
ProxyCommand nc -x localhost:1080 %h %p

Host bitbucket.org
User git
ProxyCommand nc -x localhost:1080 %h %p

这里github.com是你clone时需要走代理的Host主机域名或IP地址,User一般都是git(哪怕是我们自己搭建的git托管服务器一般情况下,也是以git作为用户名)。
重点来了:ProxyCommand会根据操作系统和你代理配置的不同而不一样,例如Windows下是没有nc命令的。localhost是我本地代理的地址,你可以替换为你自己的代理服务器地址。1080是我本地代理设置监听的端口号,你可以替换为你自己设置的。针对不同操作系统下不同的ProxyCommand写法,git官方也给出了解决方案,但是唯独没有Windows平台的,我这里把官方和我自己在Windows下的解决方案一并列出:

  • macos/ubuntu

    1
    2
    3
    Host github.com
    User git
    ProxyCommand nc -x localhost:1080 %h %p
  • centos7

    1
    2
    3
    Host github.com
    User git
    ProxyCommand ssh cmsusr nc %h %p
  • windows

    1
    2
    3
    Host github.com
    User git
    ProxyCommand connect -S localhost:1080 %h %p