设置 UNIX 终端 Socks5 代理连接

Using Socks5 Proxy in UNIX Terminal

Posted by zihengCat on 2018-02-27

前言

终端工具(Terminal)是每一位程序员的好伙伴,但是由于「GFW」的原因,国内恶劣的网络环境让程序员们有时只能看着 CLI 提示信息「连接断开,下载失败…」欲哭无泪。

本文介绍 UNIX 系统下,设置终端网络程序走socks5代理连接的方法,适用于 UNIX、Linux、macOS。

终端「Terminal」设置

在终端下,设置环境变量ALL_PROXY为本地socks5代理连接。

$ export ALL_PROXY=socks5://127.0.0.1:<port>

代码清单:终端下设置本地socks5代理
注:<port>为本地代理连接端口号。

我们可以通过观察IP来判断代理连接是否设置成功。

$ curl -X GET -i 'http://ip.cn'

代码清单:使用curl观察IP

脚本化「Auto Script」设置

我们可以将上述命令写入到~/.bash_profile中,实现「脚本化」快捷设置。

# 设置终端代理
function setProxy() {
    export ALL_PROXY="socks5://127.0.0.1:${1}"
}
# 取消终端代理
function unsetProxy() {
    unset ALL_PROXY
}
# 测试终端代理
function testProxy() {
    curl -i 'http://ip.cn'
}

代码清单:脚本化快捷设置socks5代理
注:使用shell函数,alias别名都可以实现

$ setProxy <port>   # 启动终端代理连接
...
$ unsetProxy        # 关闭终端代理连接

代码清单:快捷调用

注意事项

设置环境变量ALL_PROXY后,终端下只要支持此环境变量的网络应用程序大多都会走这个代理「如:Homebrew」,但不是全部。另外,socks5代理会与一些「国内镜像源」发生冲突,这也是需要注意的地方。

参考资料