Mac如何让软件走代理?

背景

在使用Mac的过程中,不可避免地会用到一些国外开发的软件,而给这些软件提供服务的服务器大多都不在国内,这就会导致在使用这些软件的时候速度会非常的慢(尤其是遇到软件需要更新的时候)。

一些小伙伴这时候会选择使用代理,希望能够提升软件的速度,但是又会发现所使用的软件并没有走代理,那么如何让相应的软件走代理呢?

这个问题同样困惑了我很久,但最近在查阅文献的时候解决了这个问题,写这篇文章的目的就是为了记录一下解决方案

大致思路

利用mac的终端(Terminal),先通过让mac的终端走代理,然后再从mac终端中打开相应的软件,实现软件走代理。

实现细节

终端走代理

通过export命令设置环境变量(仅限于该次登陆操作)

1
export https_proxy=http://127.0.0.1:端口号 http_proxy=http://127.0.0.1:端口号 all_proxy=socks5://127.0.0.1:端口号

端口号取决于代理的配置,查看代理中配置的端口号并填在上面命令的相应位置即可。

通过curl命令,请求google服务器的服务,用来检测终端走代理是否成功

1
curl www.google.com

上面的命令向www.google.com发出了GET请求,如果返回了网站源码,说明终端走代理成功。

1
2
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="zh-TW"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png"
......

软件走代理

Mac软件的文件标准

如何在终端中启动一个软件?需要了解在mac中软件的文件标准,即:在mac中一个软件大致包含了哪些文件?

以mac中的微信为例,可以看到mac中软件包含的文件大致情况:

image-20220826104500772

其中,mac中的软件的启动器launch所在的路径通常为:

1
/Applications/WeChat.app/Contents/MacOS/WeChat

路径中的Wechat.app可以换成其他想要走代理软件。

终端中打开软件

学会了找一个软件的启动器,那么在终端中打开软件就变的简单,只需要在终端中运行相应的软件启动器即可:

还是以微信为例,只需要在终端中运行:

1
/Applications/WeChat.app/Contents/MacOS/WeChat

就可以在终端中启动微信。(注意:软件启动好后,在软件运行过程中不能关闭终端,否则软件也会相应地关闭)

由于之前已经成功实现让终端走代理,相应地利用终端打开的软件也会自动的走代理,最终实现了目的。

后记

在mac中实现让软件走代理的方式不止这篇文章中介绍的这中方法,在此之前也尝试过其他许多方法,比如:利用Proxifier软件实现软件的代理,或者配置好代理的规则等等,但是这篇文章中介绍的方法是目前所见的最简单、快捷的实现软件走代理的方法。(当然,可能还有其他更为简单、快捷的方法,希望知道的朋友能够分享、分享)

参考文献

[1] 在MacOS上加速Minecraft Launcher | Recording