Git 使用 socks5 代理
最近伟大的墙又开始搞事情,导致 gayhub 访问奇慢,没办法研究一下 socks5 代理 git,效果还不错
一、Mac & Ubuntu 下代理 git
git 目前支持 4 种协议: https、ssh、git、本地文件;其中 git协议与 ssh 协议及其类似,暂不清楚底层实现,不过目前发现只需要成功代理 ssh 协议就可以实现代理 git;不清楚两者有什么基情,根据官方描述,git 协议传输非常快,验证基于 ssh 协议,详见 服务器上的 Git - 协议
代理 ssh 协议在 Mac 和 Ubuntu 上可以使用 netcat-openbsd 包中的 nc 命令,这里由于梯子工具问题,所以仅讨论如何使用 nc 代理 ssh 协议到 socks5 上
Mac 默认就有 nc 命令, Ubuntu 新版本也有,如果较老版本可使用 apt-get install -y netcat-openbsd 安装
1.1、创建代理命令工具
首先创建一个代理脚本即可,socks5 地址根据需要更改
1 | |
1.2、增加 ssh 配置
代理 git 协议只需要代理 ssh 即可,其中 Host 后可以跟多个想要被代理的域名,由于代理的是 ssh 协议,所以 使用 ssh 连接服务器也会根据域名选择是否走代理
1 | |
1.3、测试
配置好以后,保证你得 socks5 代理无问题的情况下,使用 git clone git@github.com:xxxxx/xxxxx.git 克隆一个项目即可验证是否成功
二、CentOS 下代理 git
默认的 CentOS 下是没有 netcat-openbsd 的,CentOS 下的 netcat 并非 openbsd 版本,所以会出现 nc: invalid option -- 'X' 错误;so,用不了 nc 了,不过 Linux 下还有另一款软件可以实现代理 ssh 协议到 socks5
2.1、安装 connect-proxy
没有 netcat-openbsd 可以安装 connect-proxy
1 | |
2.2、创建代理脚本
同上面一样,也最好搞一个脚本
1 | |
2.3、增加 ssh 配置
ssh 配置同上面一样
1 | |
2.3、测试
测试掠过……
三、其他
对于 https 协议的代理可以参考 Linux 命令行下使用 Shadowsocks 代理