Surge, the missing tool for iOS

iOS 9 有个激动人心的新特性 Network Extension 弥补了 iOS 长久以来无法定制底层网络 app 的不足。APN 代理不安全,成本高;虚拟专网速度不佳,爱掉线,阻塞问题严重…

那么对于专业用户来说比较完美的方案必须是安全的,可低成本的,最大网络速度,无连接状态,国内外分流完美的 iOS 方案,那么现在这个堕落的愿望已经实现了,感谢苹果公司这么给(chi)力(dao)的 API 和 app 开发大牛。

image

Surge.app (App Store)是一款给专业用户使用的网络调试工具,使用比较复杂。它的工作原理是使用 packet tunnel provider,然后给系统套上一个代理,后端转发支持 http 代理,SSL 代理,和 Socks 代理。如果 app 尊重系统代理,就会走这个代理,如果不尊重,我们也可以通过规则强制流量走系统 tun 设备达到支持全部 app 的目的。用代理的好处是可以跟踪和调试网络,容易分流,ACL 功能更多,弹性更大更方便。感觉安卓上都没有这么好用的 app 呐。。

简单的开始可以直接导入一份 conf 文件(URL 或者 iTunes),例如这里的,对于不求甚解的用户来说你可以直接使用完事(但是你还是要改改服务器地址用户名什么的。。或者直接从供应商处获取导入 URL)。

配置的结构大概是这样,对于专业用户来说,理解应该不难(Surge 还处于不断开发阶段,下面的配置已经过时。请关注 Surge 官方的消息和手册,或者 Surge.tips 网站):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[General]
# warning, notify, info, verbose
loglevel = notify
[Proxy]
# http, https, socks5
# SSLedge 使用 https,老式 APNp 用 http
Proxy = https, server, port, username, password, ciphers
[Rule]
# 域名关键字,干掉不想要的请求
DOMAIN-KEYWORD,umeng.co,REJECT
...
# 常用网站优先匹配,加快速度。使用代理转发,完全没有 CDN 被干扰的问题~
DOMAIN-SUFFIX,cn,DIRECT
DOMAIN-SUFFIX,qq.com,DIRECT
DOMAIN-SUFFIX,ls.apple.com,DIRECT
DOMAIN-SUFFIX,apple.com,Proxy
...
# 强制这些不尊重系统代理的请求走 packet-tunnel-provider,解决 Twitter.app 和 Mail.app 收发邮件问题
DOMAIN-KEYWORD,twitter,Proxy,force-remote-dns
DOMAIN-KEYWORD,gmail,Proxy,force-remote-dns
# instagram.app 也没问题
DOMAIN-KEYWORD,instagram,Proxy,force-remote-dns
# Telegram.app 也没问题
IP-CIDR,91.108.56.0/22,Proxy,force-remote-dns
...
# LAN
IP-CIDR,192.168.0.0/16,DIRECT
...
# 其余的请求使用 GEOIP 判断服务器所在地,如果是国内的,走直连,搞定
GEOIP,CN,DIRECT
# 最后 Matchall,丢给代理
FINAL,Proxy

通过规则定义和组合,必然可以满足专业用户的需求,非常强大。配置可以使用 app 自带的 GUI,当然也有文本编辑方式。

由于 Surge 的核心和是个 http proxy,有些处理不了的请求我们可以强制 bypass(proxy-skip/tun-bypass) 掉,走系统接口,这个可以在代理设置-高级处设置,如果你不太懂,请不要随意设置。

image

方便查看调试记录当然得靠很骚的 3D touch 菜单了。。

image

Log 显示,看到了吗,IMAP 也可以走代理 XD 对已迫切想知道系统访问历史的同学来说是不是很赞。

image

还可以更改规则,干掉不想要的访问,专治流氓 app。

image

再看看这位开心的同学。。神器吧。。

image

简单的流量统计,现在版本已经有 widget 显示速率。

image

搭配加速的 SSLedge 速度还算不错。

由于目前 iOS 系统对内存限制较严格,SSLedge 代理推荐使用 TLS_RSA_WITH_AES_128_GCM_SHA256 ciphers,使用这个后 Surge 的崩溃问题就比较少了(1.0.1后不需要)。

自从有了 Surge,微信、煎蛋刷起来不卡了,看油条速度杠杠的,下载 app 更新没有压力,妈妈和库克再也不用操心了…更主要的是,你可以随时切换线路,不用担心国内中转质量变坏…

更多的使用技巧和高级功能请关注 Twitter 或者 Surge.tips 网站。