给终端也插个翅膀

  in   tech with  0  comment

我们在 ss 客户端配置好之后,会发现即使是全局模式,终端下部分命令也无法正常使用。因为在终端下不支持 socks5 代理,只支持http代理,这就很尴尬了。wget、curl、git、brew等命令行工具都会变得很慢。

首先我们要确定我们的客户端本地代理的端口。点击飞机图标,高级设置,即可看到 socks5 代理端口。

然后在终端下输入

export http_proxy='http://127.0.0.1:1087'
export https_proxy='http://127.0.0.1:1087'

把socks5代理转为http代理给命令行终端使用。

想要关闭的时候输入

unset http_proxy
unset https_proxy

但是这样的话仅对当前窗口生效,如果关闭终端窗口,功能就会失效。如果再次打开,就需要重新输入,这样不太方便,我们借助 alias 来让这个过程更方便一些。

执行vim ~/.bash_profile,在后面加上

alias ss-on='export http_proxy=127.0.0.1:1087;export https_proxy=$http_proxy'
alias ss-off='unset http_proxy;unset https_proxy'

之后执行source ~/.bash_profile 让配置生效。使用 curl ip.cn进行测试

这样我们像开启的时候输入ss-on,关闭的时候输入ss-off,即可。

配置完发现虽然使用其他命令可以使用,但是 git 还是很慢,搜索一下发现,git还要单独配置。

git config --local http.proxy 'socks5://127.0.0.1:1087'
git config --local https.proxy 'socks5://127.0.0.1:1087'

这样会把 git 全局加上代理,但是如果我们还使用了国内的 git 服务的话,就比较慢。我们需要单独给国外的 git 设置。

git config --global http.https://github.com.proxy socks5://127.0.0.1:1086;
git config --global https.https://github.com.proxy socks5://127.0.0.1:1086

把这两条命令和取消的命令也加到我们之前设置的别名里。

alias ss-on='export http_proxy=127.0.0.1:1087;export https_proxy=$http_proxy;git config --global http.https://github.com.proxy socks5://127.0.0.1:1086;git config --global https.https://github.com.proxy socks5://127.0.0.1:1086'
alias ss-off='unset http_proxy;unset https_proxy;git config --global --unset http.https://github.com.proxy;git config --global --unset https.https://github.com.proxy'

这样就比较完美了。

Responses