因为 Terminal 或 iTerm 2 是不走系统代理的,有时候访问 GitHub、Homebrew 等有点龟速,体验很差,最好设置其走代理访问。

使用工具

  • Surge 或 ClashX 等代理软件的增强模式
  • Proxifier 也可以配置一些软件强制走代理
  • 终端使用 ProxyChains

但我没用过 ProxyChains,Proxifier 太贵了且功能雷同,又不想一直开着增强模式。

HTTP 代理

Surge 在菜单栏按 ⌘+C 就会自动生成代理命令,假设端口是 88888889

$ 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 ip.sb; curl myip.ipip.net"

让 shell 默认就走代理,并设置一个开关。

最后的测试,随便找两个 IP 查询服务就可以了,并在自己的代理规则中设定一个直连、一个代理。

SSH 代理

Git 可以设置 git config --global http.proxygit 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