阿毛
It's me !
想你所想
给多数Shell命令启用代理

一行简单的命令或一行简单的配置,即可支持wget、curl及homebrew等命令使用代理!

无意间发现一个不错的小技巧,可以快速使部分下载或网络连接资源访问的命令挂代理。如homebrew、wget等

需求

在Mac终端中使用homebrew安装资源时,大多数情况,总是因网络问题,下载特别慢,如我在安装Github Desktop,运行brew install --cask github后,会去下载https://desktop.githubusercontent.com/releases/2.6.1-afb56263/GitHubDesktop.zip,明显github内容很容易被墙。我想brew install时使用代理!

解决方法

在当前终端会话中,运行命令export ALL_PROXY=socks5://127.0.0.1:6666,即可开启全局代理。
注意:这里我本地开了一个socket代理,端口号6666,所以命令如上,这里配置成你的代理地址及端口即可,当然也支持http。

然后在当前终端中,再次运行brew install --cask github,发现速度杠杠的,很明显代理生效。

说明

上面这个过程仅保证在一个会话内有效,因为是在某个终端会话中设置的ALL_PROXY环境变量,在其他会话,是没有该环境变量的。如果想全局作用,可以将其配置为当前用户的全局环境变量,如bash,则~/.bashrc,zsh,则~/.zshrc中。

另外,如果http代理的话,也可以不配置ALL_PROXY,而配置HTTP_PROXYHTTPS_PROXY,也是支持的。

需注意,这种配置代理环境变量的方式,仅支持部分命令,如wget、curl及homebrew等等,不是所有都支持。具体支持名单会在下方列出(根据本人实践,持续更新。。)变量名大小写也需要注意,有些小写就行,有些只识别大写,所以这里建议,直接大小写均配置即可。

支持通过PROXY环境变量的工具有:

  • wget
  • curl
  • homebrew
  • pyenv

本文参考

发表评论

textsms
account_circle
email

想你所想

给多数Shell命令启用代理
一行简单的命令或一行简单的配置,即可支持wget、curl及homebrew等命令使用代理! 无意间发现一个不错的小技巧,可以快速使部分下载或网络连接资源访问的命令挂代理。如homebrew、wget…
扫描二维码继续阅读
2021-03-05