赞
踩
这几天 git clone Github 是真的爆炸啊,永远都是 10kb/s 左右,也不是私有仓库啊?百度云都要直呼内行了。
由于我用的是 ssh 方式拉取代码的,于是乎终端 http proxy 也只能起到玄学(心理自我安慰)作用了。
到底如何设置 ssh 协议的 proxy 呢?
查看git配置(两种)
git config --list
git config --global --list
分辨需要设置的代理
- HTTP 形式:git clone https://github.com/PBK-B/test.git
- SSH 形式:git clone git@github.com:PBK-B/test.git
git config --global http.proxy "http://127.0.0.1:8080"
git config --global https.proxy "http://127.0.0.1:8080"
git config --global http.proxy "socks5://127.0.0.1:1080"
git config --global https.proxy "socks5://127.0.0.1:1080"
git config --global --unset http.proxy
git config --global --unset https.proxy
修改 ~/.ssh/config
文件(不存在则新建):
- # 必须是 github.com
- Host github.com
- HostName github.com
- User git
- # 走 HTTP 代理
- # ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=8080
- # 走 socks5 代理(如小飞机 or V2xxx)
- # ProxyCommand nc -v -x 127.0.0.1:1080 %h %p
对于 Windows 用户,要使用 socks5 代理却没有 nc 的,可以将
- ProxyCommand nc -v -x 127.0.0.1:1080 %h %p
- 换成
- ProxyCommand connect -S 127.0.0.1:1080 %h %p
配合上面的修改,我这里分享一个我的自用 Linux 一键切换脚本,将下面代码写入 ~/.bash_profile(其他 bash 程序或电脑系统可能路径不太一样)
- function github_on() {
- cat "${HOME}/.ssh/config" >"${HOME}/.ssh/config_back" # 先备份
- config=$(cat ${HOME}/.ssh/config_back | sed 's/\# ProxyCommand/ProxyCommand/g')
- echo -e "${config}" >"${HOME}/.ssh/config" && echo -e "\033[36mGithub 已上代理!\033[0m"
- }
-
- function github_off() {
- cat "${HOME}/.ssh/config" >"${HOME}/.ssh/config_back" # 先备份
- config=$(cat ${HOME}/.ssh/config_back | sed 's/ ProxyCommand/ \# ProxyCommand/g')
- echo -e "${config}" >"${HOME}/.ssh/config" && echo -e "\033[33mGithub 停止代理!\033[0m"
- }
写完之后运行 source ~/.bash_profile
使配置文件生效,使用下面的指令就可以很爽的用啦
- github_on
- # 启动
-
- github_off
- # 关闭
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。