记录 Mac 下终端走代理的方法

Update:

推荐更好的方法:配置终端走代理,Git 走代理


一直以来,由于网络环境的原因,每当进行网络连接时,本地终端下的体验差的让人想说脏话…

望着终端上的10 KB/S 的下载速度,时不时的还要中断一下…简直了.

其实这种问题很好解决,之前在家里的解决方案就是,在笔记本的接入路由器上做白名单策略,就是国内地址直连,其余的全部走代理.

但是在学校,用的是锐捷,又由于近期锐捷升级了相关算法,导致路由器上的 mentohust 无法继续使用,所有该方法失效.

这里记录两个方案.


1. 方案1

使用 proxychains4

安装

1
brewhome install proxychains-ng

这里需要说明的是,虽然安装时输入的是 proxychains-ng 但是在使用的时候需要在命令之前使用 proxychains4.

配置

编辑/usr/local/etc/proxychains.conf

找到配置文件的底部,增加以下内容

1
socks5 127.0.0.1 1086 //这里端口替换成 ss-local 的对应端口

默认文件的 socks4 自行选择删除或者注释掉.

保存配置,退出.

使用

只要在命令前增加 proxychains4 即可.

示例

1
proxychains4 curl myip.ipip.net //ss需设置成全局模式,这样返回你服务器 IP 代表 Proxychains4 生效

说明

实际体验发现,这种方法并不是特别的好用,尤其 brewhome 经常动不动就卡住了,尝试过重装 brewhome 和 Proxychains4 均未解决问题.

下面说说第二种方法


2. Proxifier (推荐此方法)

之前在 windows 下用过的一款强大的代理软件,搜索了一下发现 mac 也有对应的客户端.

配置与使用

这个相对来讲很简单,因为全是图形化界面.

在这里按照本地代理设置对应增加一条代理服务器

然后增加规则

这里有几个要注意的地方:

  1. 图中1处,表示你本地 ss-local 进程直连,不走代理,如果没有这条规则,则会使代理进程走代理,形成死循环(其实这条规则我没想到,是软件自动提醒后添加的,逃.)

  2. 图中2处,默认规则需要设置代理模式,如果选择直连模式,那么终端可能不会走代理,因为终端联网时,是根据你所用的不同程序来定义联网进程的,比如你用 curl 那么进程名字就是 curl,而不是显示的 terminal 进程,所以单单设置一个 terminal 应用程序走代理这种方法是无效的,除非你能把 curl wget node git 等等每一个进程都写一个规则,但是太麻烦了…所以直接在默认规则中设置走代理模式

  3. 把 chrome 设置成直连,让 ss-local 根据白名单自动匹配规则.

感受

使用下来,感觉这种方法不知道比第一种方法高到哪里去了,一颗赛艇!

自从用了 Proxifier 终端爽的飞起,全速推进的感觉倍爽!