为 Mac Terminal 设置代理

墙越来越厚,已经严重影响到了正常工作。严重到连一个几十 K 的依赖包都要下载很久甚至下载不了的地步。

更好的方案

为了使用 proxychains4 需要关闭 System Integrity Protection(SIP)系统完整性保护。不少小伙伴提出这样影响系统稳定性。最近有网友提供了更好的方案。使用一下办法添加俩 alias 来开启和关闭终端代理。

.bash_profile 文件添加一下 alias:

1
2
alias setproxy="export http_proxy=http://127.0.0.1:8899; export https_proxy=$http_proxy; echo 'HTTP Proxy on';"
alias unsetproxy="unset http_proxy; unset https_proxy; echo 'HTTP Proxy off';"
1
http://127.0.0.1:8899 你的 ss 客户端本地端口

使用方法:

1
2
3
4
$ setproxy    #开启代理
HTTP Proxy on
$ unsetproxy #关闭代理
HTTP Proxy off

推荐使用 PlutoX 作为 SS 客户端

SSH 隧道方法

如果没有 ss 代理,可以使用 SSH 隧道方式使用 proxychains4。

1
ssh -D 1089 remote_user@remote_host -p ssh_port

然后 proxychains4 配置文件增加 socks5 127.0.0.1 1089

安装 proxychains4

使用 shadowsocks 发现用全局模式也不能为 Terminal 设置代理,可以用一下方法为 Terminal 设置代理。

1
brew install proxychains-ng

修改配置文件

1
sudo nano /usr/local/Cellar/proxychains-ng/4.7/etc/proxychains.conf

在文件末尾添加

1
socks5 127.0.0.1 1080

其中1080为 Shadowsocks 本地端口。

用法

1
2
proxychains4 pip install shadowsocks
proxychains4 git push -u origin master

注:不知为什么代理下 ping 还是不通,但是其他命令可以正常走代理。