因为 Terminal 或 iTerm 2 是不走系统代理的,有时候访问 GitHub、Homebrew 等有点龟速,体验很差,最好设置其走代理访问。
使用工具
- Surge 或 ClashX 等代理软件的增强模式
- Proxifier 也可以配置一些软件强制走代理
- 终端使用 ProxyChains
没用过 ProxyChains,Proxifier 太贵了且功能雷同,又不想一直开着增强模式。
HTTP 代理
Surge 在菜单栏按 ⌘+C 就会自动生成代理命令,假设端口是 8888
和 8889
:
$ export https_proxy=http://127.0.0.1:8888;export http_proxy=http://127.0.0.1:8888;export all_proxy=socks5://127.0.0.1:8889
每次都输入比较麻烦,可以写进 ~/.zshrc
中,示例:
# 自动代理
export https_proxy=http://127.0.0.1:8888
export http_proxy=http://127.0.0.1:8888
export all_proxy=socks5://127.0.0.1:8889
# 开关代理
alias setproxy="export https_proxy=http://127.0.0.1:8888;export http_proxy=http://127.0.0.1:8888;export all_proxy=socks5://127.0.0.1:8889;echo \"Set proxy successfully\" "
alias unsetproxy="unset http_proxy;unset https_proxy;unset all_proxy;echo \"Unset proxy successfully\" "
# 测试
alias lip="curl cip.cc; curl ifconfig.me"
让 shell 默认就走代理,并设置一个开关。
最后的测试,随便找两个 IP 查询服务就可以了,并在自己的代理规则中设定一个直连、一个代理。
SSH 代理
Git 可以设置 git config --global http.proxy
和 git config --global https.proxy
。
或者直接用下面这个,一劳永逸。
Host *
ProxyCommand nc -X 5 -x 127.0.0.1:8889 %h %p
# * 代表所有的 SSH 主机
# 第二行代表让所有的 SSH 的主机在连接的时候,通过本地的端口为 8889 的 socks5 代理去连接
nc
的参数说明:https://man.openbsd.org/nc