Surge for Mac,快捷如风

 

张开眼睛看世界!...



题图来自 Zoommy

说俩事:

1、「卖桃者说」新增加了一批订阅者,历史文章已经推送,没有收到邮件的,尽快和我联系。收到了一部分邮件的,去垃圾箱刨另一部分。支付了订阅费用保持沉默的……并不能成为呈堂证供,也尽快和我联系。

2、上次众筹的衣服大部分都到货了,遇到质量问题或大小问题,请拨打4000-100-978,直接和优定制联系即刻。

Surge for Mac 2.0 是在8月发布的,那时候我正在普吉岛度假,而且,Surge 的 Mac 版之前一直是和 iOS 版本绑定的,必须使用 iOS 版才能激活和使用 Mac 版,所以关注不多。上礼拜才知道,这次发布的 Surge for Mac 2.0 是一个独立的版本,可以直接在 Mac 上安装使用,并且可以复用之前为 iOS 版编写的配置文件,实现「流畅、稳定的互联网访问」。

得知了这个消息之后,我放下手头的工作,立刻跑去 Surge 的官网花费69.99刀购买了 Pro 版本,这个 license 支持 3 个 Mac 设备。我自己平时用两台 Mac,剩下的一个 license 给了杭州一位在家待业的朋友。毕竟,没工作了,如果还不能痛痛快快的上网,和咸鱼有什么区别?

Surge for Mac 比我想象中做得更好。

Surge is a web developer and proxy utility tool. This app is designed for developers and may need certain level of professional knowledge to use.

这是 Surge 的定义,意译一下,Surge 是一款非常高级 Web 开发和代理工具,仅供开发者和专家使用。当然,这是不得已而为之的说法,因为你读了这篇文章,无论是不是开发者,都可以使用 Surge。

Surge 首先是一个Proxy Server,安装和设置之后,Surge 会接管所有的 HTTP/HTTPS 请求,用作者的话来说,用 Proxy 去处理请求而不是用 TUN,有很多原因,主要是因为 TUN 是工作在 IP Layer 的:

Proxy 可以直接收到包含域名 / URL 的请求,从而使基于域名的规则过滤成为可能。

Proxy 可以省略不必要的 DNS 请求,对首次访问的速度提升相当明显。

Surge 的 Proxy 支持全局的 HTTP Connection Keep Alive 机制,极大的减少了 TCP 握手产生的开销(跨应用间也能共享一个 TCP Connection,但由于内存限制在 iOS 版本上超时时间很短,之后 Mac 版本上的效果会明显一些)

另外,Surge iOS 版本还可以与 Mac 版本共享底层的核心代码。开发一个稳定、高效的 Proxy 并不是一个简单的事情,这些难点包括任务调度、请求是否完成、处理HTTP协议的规范性、规则和分组的设计等等,很多东西看起来简单,真正去做实现却是艰难险阻,万水千山。作者需要花费大量的时间去积累经验,踏平深坑,才能修成正果。很多开发者看了 Surge 的功能表示,我也可以开发个 Proxy Server 啊。是的,很多人也可以打太祖长拳,但是和乔峰手里的太祖长拳,不是一种功夫。

除了 Proxy Server,Surge 的其他组件包括 DNS Client、TUN Interface、IP Layer DNS Forwarder 等,关于这部分内容,可以直接阅读开发者的文章「Surge 原理与实现」(t.cn/RVGynno)。

我们使用 Surge 的时候,常用功能是代理和网络调试,后者是2.0的新特性。在 Mac 上安装 Surge 非常简单,拖到「应用程序」文件夹里即可。使用步骤大致如下:

1、在 Surge 的 Menubar 里选中「Set as System Proxy」,这表示 Surge 开始全面接管你的网络。
2、设置配置文件的存储路径,推荐使用「Store in User Documents」,这样 Surge 会在文稿目录下创建一个 Surge 的文件夹,下面有配置文件的示例。选择存储在 iCloud Drive 似乎是个更好的方案,但是 Surge 并没有成功创建文件目录,不知道是否是软件的 bug。
3、下载一个配置文件,网址:https://gist.githubusercontent.com/scomper/915b04a974f9e11952babfd0bbb241a8/raw/surge.conf,这是一个相对完整的示例文件,其中还包含 Reject 规则,用于拦截广告、行为分析、数据统计等。
4、根据你自己的 Proxy 链路信息,修改其中的 Proxy、Proxy Group、Rule 等内容。现在很多 VPN 服务商都提供了自己的 Surge 配置文件,比如 VPNSO、AgentWho 等,直接拿来用也可以。
5、在 Surge 的 Menubar 里切换你自己配置好的配置文件,Reload,如果没有错误提示,打开 Dashboard,就可以看到你的电脑整个网路信息的流转了。



Surge 对 Proxy、Proxy Group、Rule 进行了精巧的抽象,如果你有丰富的网络链路,可以自由在这些链路之间切换,以获得最快的访问速度。甚至,你可以为某个域名单独配置规则,比如 dropbox 在 jp 上访问缓慢,我们可以通过规则将其切换到 hk 链路上,这些配置在 Dashboard 里就可以完成了。

使用 Surge 的这些日子里,虽然工作繁忙,但我的心情舒畅极了。事实上我在 Mac 上对网络质量的要求远远高于手机,毕竟在手机上,微信已经可以占去我们80%的使用时间了。但是电脑不一样,尤其是技术人员,你常常会用 Google 百度一下,你会访问「面书」的技术文档,浏览 Medium 的业界文章,欣赏 Instagram,使用 Dropbox、小鸟推、Zoommy 等等,而我们的网络是如此的不稳定,你经常不知道哪个网址中枪,你能想象 hub.docker.com 这样一个纯种的、血液里流淌着高贵的技术血统的技术网站,也会被干扰吗?还有 SlideShare……说起来都是伤心的眼泪,在飞。

现在有了 Surge(当然,必须配合代理服务链路),所有的服务快得都像飞起来一样。当你观看 Youtube 视频的时候,仿佛自己就坐在硅谷的太平洋岸边,海浪起伏,视频播放的速度,就像风。

与 VPN 相比,Surge 稳定的如同一座山。你见过半天不断线的 VPN 吗?Surge 可以一直稳稳的运行着。同时,Surge 又像一只鹰,监控着你的 Mac 在网络世界里的一举一动。如果你是个 Web 开发者,你可以看到和分析所需的网络链路和相关数据,以便进行调试和开发。这真的是个开发工具!

相对于暗黑的网络世界来说,使用 Surge,你会产生一种无与伦比的科技感和控制感。

不止于此。新版本还增加了 MitM(第三方攻击)的支持,以保护个人上网安全。还可以查看同一个局域网环境下的其他 Surge 的访问情况,或是通过 USB 线连接的 iOS 设备上 Surge 的访问情况。还有命令行……你们自己去看文档吧。

Surge 的开发者是个中国的小伙子,我不认识,但我觉得这个软件值这个价格。很多评论家在网络上说开发者定这么高的价格就是为了赚钱,说对了,谁特么不是为了赚钱呢?挺好!

最后推荐一下 AgentWho,这是一个流畅的智能网络服务,也是两位国内的小盆友开发的,质量很好,网址是 agentwho.net,同样提供了对 Surge 的支持。当然,没有 Surge 工具,AgentWho 也可以单独为你提供服务。(或者回复「长城」了解详情)

掘金是一个高质量的技术社区,从 Swift 到 React Native,性能优化到开源类库,让你不错过互联网开发的每一个技术干货。长按图片二维码识别或者各大应用市场搜索「掘金」,技术干货尽在掌握中。



点击阅读原文,了解详情。


    关注 MacTalk


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册