终端翻墙

开发过程中有时候需要更新repo仓库和代码,但是GitHub上的仓库和代码的下载速度感人。

翻墙倒是可以解决这个问题,但是终端默认不走翻墙代理,这个时候就需要我们做一些配置了。

我们可以终端当中输入以下命令使终端的请求走相应的代理

//设置http和https请求代理
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118

//sock5协议请使用
export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080

//移除配置
unset http_proxy
unset https_proxy

我们拉取的时候有的时候可能会用到ssh,我们可以这样配置

//设置所有协议代理
export ALL_PROXY=socks5://127.0.0.1:1080

//移除配置
unset ALL_PROXY

当前这些配置只对当前终端有效

改进

以上方式虽然解决了我们的需求,但是每次输入这些命令不免有些麻烦,所以我们进行了以下改进。

改进方案大致有以下两种:

  1. 编写shell脚本,需要时运行脚本
  2. 自定义shell命令,简化输入

相比1需要保存脚本文件来说,2是一个不错的选择

自定义shell命令需要你打开~/.bashrc文件(如果使用的是zsh,对应文件为.zshrc)

//终端打开文件
open ~/.zshrc

然后在文件末尾以以下形式添加命令

alias {自定义指令名}='{具体指令}'

以上所有协议代理的命令就可以写作

//末尾的echo是为了在命令执行完毕输出一个字符串作为提醒,可删除
alias openproxy="export ALL_PROXY=socks5://127.0.0.1:1080; echo 'HTTP Proxy on';"
alias closeproxy="unset ALL_PROXY; echo 'HTTP Proxy off';"

这样我们就可以使用openproxy和closeproxy方便的在终端打开和关闭代理了

其他解决方案

我们最初的目的是为了更快的从GitHub上拿到文件,同事给我提供了另外一个解决方案。

即对git进行相关配置,使其在请求时走代理。

配置需要你打开~/.gitconfig文件,在文件末尾添加

[http "https://github.com"]
        proxy = socks5://127.0.0.1:1080

这样在Git发起向GitHub上的请求时就会默认走代理了。