一种解决全局代理在终端不生效的方法
这篇文章介绍了解决在终端中全局代理不生效的方法。作者在使用实时流式SQL平台时遇到了下载速度极慢的问题,尽管他的Mac上开启了全局代理。他发现终端使用的网络配置与系统的全局代理设置是分开的,因此需要在终端中单独配置代理。作者给出了将代理配置封装成alias的方法,方便控制终端是否使用全局代理。经过配置后,他再次尝试下载时速度明显提升。
本文涉及到的背景、演示环境均为 mac,其它操作系统或环境不保证 100% 兼容,有类似需求可参考 mac 思路或与博主联系
今日在浏览大数据前沿技术时,偶然看到一篇推文介绍实时流式 sql 平台 proton 时,其官网的 Quickstart 也贴心的附上了 mac 用户的安装方式
brew tap timeplus-io/timeplus
brew install proton
当我满怀期待的准备一探究竟时我却遇到了下面的问题
下载速度极慢,14% 的进度几乎耗费了半个小时。让我产生疑惑的是我的 mac 梯子始终开启着全局代理,尝试在浏览器或者直接点击终端的 download 链接都是可以以极快的速度进行下载,偏偏在终端中龟速。当我查看代理工具日志时并没有发现来自 github 的连接
因此产生这种问题的原因就是:终端使用的网络配置与系统的全局代理设置是分开的。
知道问题的原因解决起来就方便多了,通过代理工具查看本地代理的端口,发现同时支持 socket5 和 http 协议
因此只需要在终端中执行
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
再次尝试下载时可以从代理工具的日志中看到,且下载速率直线上升
更多推荐
所有评论(0)