本文涉及到的背景、演示环境均为 mac,其它操作系统或环境不保证 100% 兼容,有类似需求可参考 mac 思路或与博主联系

今日在浏览大数据前沿技术时,偶然看到一篇推文介绍实时流式 sql 平台 proton 时,其官网的 Quickstart 也贴心的附上了 mac 用户的安装方式

brew tap timeplus-io/timeplus
brew install proton

当我满怀期待的准备一探究竟时我却遇到了下面的问题 添加代理

下载速度极慢,14% 的进度几乎耗费了半个小时。让我产生疑惑的是我的 mac 梯子始终开启着全局代理,尝试在浏览器或者直接点击终端的 download 链接都是可以以极快的速度进行下载,偏偏在终端中龟速。当我查看代理工具日志时并没有发现来自 github 的连接

image-20240506143939989

因此产生这种问题的原因就是:终端使用的网络配置与系统的全局代理设置是分开的。

知道问题的原因解决起来就方便多了,通过代理工具查看本地代理的端口,发现同时支持 socket5 和 http 协议 image-20240506144257214

因此只需要在终端中执行

export ALL_PROXY=socks5://127.0.0.1:7890

为了方便可以将其配置在环境变量中如:.bash_profile.bashrc.zshrc

但是结合我实际使用代理的方式,可能存在打开终端时全局代理并没有开启情况,也就是说在我的使用习惯下我需要终端使用全局代理的时机完全被我控制,不需要打开终端时默认加载。因此只需要将上述配置封装成 alias 即可,将下面的配置添加到环境变量文件中

# 添加代理
alias add_proxy='echo "添加代理"; export ALL_PROXY=socks5://127.0.0.1:7890'
# 移除代理
alias remove_proxy='echo "移除代理"; unset ALL_PROXY'

当我需要终端使用全局代理时执行 add_proxy,移除时只需要 remove_proxy

再次尝试下载时可以从代理工具的日志中看到,且下载速率直线上升 image-20240506145454439