对于大部分技术人员来说,google都是一个必不可少的工具,对应我这样的google重度用户来说, 更是如此。如果google用不了,不但效率直线下降,还影响心情,基本上就干不了活了。 访问google还是相对简单的需求, 大部分浏览器都支持设置代理,基本上有个HTTP/socks代理就可以解决, 在MacOS上还有好多应用程序也需要 代理才能正常使用,但是这些程序可能不支持设置代理。 对于这些问题,该如何解决呢?

为了解决上面提到的问题,你需要基于规则的全局代理,即从电脑出去的流量都走代理, 代理程序根据规则 决定将请求转发到远端的代理程序,还是直连访问。 根据我的使用经验,在MacOS上有如下三种结局方案。

Surge

Surge是Mac & iOS上一款网络调试工具,能够连接多种远程代理程序, 能够连接到远程的HTTP、HTTPS、SOCKS5等协议的服务器,同时能够向本地的应用程序提供HTTP、SOCKS5连接。 Surge还支持一些高级的功能,如:自定义DNS服务器、操作本地的DNS解析,从而比较有效的可以解决DNS污染的问题。 此外,Surge还支持MITM,可以通过自定义的证书来解析HTTPS流量,如果你需要调试HTTPS相关的程序, 可能会比较有帮助。

Surge功能非常强大,使用方便,图形化程度高,调试网络问题也非常方便,网上也有很多教程, 和现成的配置文档。唯一的问题就是价格不菲,也很难找到破解的版本。如果不差钱,肯定是首选。

SpechtLite

SpechtLite是一款基于NEKit开发的基于规则的代理程序, 在一定程度上,可以看成是Surge的简化版本,没有提供Surge那么强大的调试功能和图形界面, 作为一款全局代理程序还是挺不错的,配置也相对简单。这里有一份配置的参考模板

在代理规则的配置上,SpechtLite遵行与Surge类似的代理逻辑:

1
2
3
4
5
6
7
8
    get matched rules
    for each matched rule do
        try
            access resource according to rule
        except
            access resource through proxy
        end
    done

按照上面的逻辑,基本上可以无干预的访问所有网站。如果配置了多个代理服务器, SpechtLite可以配置自动测速,保证从最快的代理服务器访问资源。使用SpechtLite有一段时间来, 总体上还是比较满意,比ShadowsockS-R之类的强多了。

Proxifier+SS

单纯的使用Shadowsocks,可以解决通过浏览器访问google的需求,但是对于那些不支持设置代理程序 就无能为力了。Proxifier可以拦截那些不支持设置代理程序的网络访问请求,但是Proxifier不能连接到 Shadowsocks服务器。因此,无法跳出GFW的手掌。不过,两者结合起来,正好取长补短,能够全局实现

参考文章