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 | <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中软件包含的文件大致情况:
其中,mac中的软件的启动器launch所在的路径通常为:
1 | /Applications/WeChat.app/Contents/MacOS/WeChat |
路径中的Wechat.app
可以换成其他想要走代理软件。
终端中打开软件
学会了找一个软件的启动器,那么在终端中打开软件就变的简单,只需要在终端中运行相应的软件启动器即可:
还是以微信为例,只需要在终端中运行:
1 | /Applications/WeChat.app/Contents/MacOS/WeChat |
就可以在终端中启动微信。(注意:软件启动好后,在软件运行过程中不能关闭终端,否则软件也会相应地关闭)
由于之前已经成功实现让终端走代理,相应地利用终端打开的软件也会自动的走代理,最终实现了目的。
后记
在mac中实现让软件走代理的方式不止这篇文章中介绍的这中方法,在此之前也尝试过其他许多方法,比如:利用Proxifier软件实现软件的代理,或者配置好代理的规则等等,但是这篇文章中介绍的方法是目前所见的最简单、快捷的实现软件走代理的方法。(当然,可能还有其他更为简单、快捷的方法,希望知道的朋友能够分享、分享)