配置git代理
git代理一般会分为两种,一种是走http协议的代理,另一种是走ssh协议的代理。
对于走http协议的代理,我们只需要执行如下命令(端口号根据本地ss配置自行修改):
git config --global http.proxy http://127.0.0.1:1088
git config --global https.proxy http://127.0.0.1:1088
如果要取消代理,则执行如下命令
git config --global --unset http.proxy
git config --global --unset https.proxy
加上如上配置后,对于公司内网的git是无法进行访问的,所以还得把内网的git地址加入到no_proxy环境变量中
export no_proxy="localhost,127.0.0.1,内网git域名"
除了http协议代理,git可能还会走ssh协议,对于ssh协议的配置其实也是类似
编辑ssh config文件
vim ~/.ssh/config
加入如下内容(端口号根据本地ss配置自行修改)
Host github.com
HostName github.com
User git
# 走 HTTP 代理
# ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1088
# 走 socks5 代理(如 ss)
ProxyCommand nc -v -x 127.0.0.1:1086 %h %p
注意此处使用的是socks5代理,而http/https协议配置的是http代理,至此就完成了git的代理配置
配置终端http/https代理
除了git需要配置代理之外,其实还需要配置终端http/https代理,因为源码下载过程中除了用git去下载源码外,还会借用python去下载一些zip文件,以及使用cipd下载一些文件,使用这些工具的时候,在终端中可能无法正常完成对应文件的下载。
因为这部分代理使用场景不多,全局共两处
src/tools/dart/update.py src/tools/buildtools/update.py 为了尽可能的不污染全局环境,我们进行临时的环境变量导出(端口号根据本地ss配置自行修改)。
export http_proxy=http://127.0.0.1:1088
export https_proxy=http://127.0.0.1:1088
完成以上配置后,源码同步过程会变得十分顺畅,而不用进行漫长的等待。