首先你需要准备的:
本文在写作的时候使用的是 iOS16,surge5 TF 5.20 2492 版,不排除现在所写的东西在后续的系统或者 app 更新中会有变动,请自行参照使用。
一台 iOS15 以上系统的手机,已经接入了互联网,除了 surge 之外最好已经有其它的可供使用的代理 app 例如 loon、Shadowrocket(俗称小火箭)、Quantumult X(俗称 Qx、圈叉),因为在对 surge 设置过程中可能会出现因为配置错误导致无法连接外网的情况,而当时偏偏又需要,至少还有个其它 app 可用;另外,有这几个 app 至少说明你对于机场、托管、订阅、规则、重写、脚本、模块等词语有个基本概念。
一个线路提供商,俗称的机场。至于是自建还是购买的无所谓,但是对于协议这块既然是讲 surge,那么就注意 Surge 目前只支持以下几种协议:(补充:现在已经增加对 TUIC 的支持)
这里重点提醒一下,有个别机场只提供 SSR 协议的线路,Surge 是不支持的!千万注意了‼️
已经下载好了 surge(需要非中国区 Apple ID)并已经付费解锁了相关功能(本文默认至少已经解锁了模块)
本文不准备讲述具体如何注册外区的 Apple ID 以及如何充值购买本 app。不过提供几个思路,注册外区 Apple ID 就不用讲了,随便搜一下很多手把手的教程,现在苹果美国官网据说可以直接购买 gift card 用银联或者 master visa 卡付费后发充值代码到邮箱,给 Apple ID 充值;还有就是日本区支持大陆各银行发行的 JCB 卡直接绑定付费,最后就是可以用万能的某宝做个土耳其人或者俄罗斯人🌝(此方法存在风险)
开始使用
使用前请将脚本、rewrite、MITM 这几个开关打开,配置根证书按照如下图生成证书并信任,如果新手那是肯定有 H2 订阅功能的,能开就打开吧,毕竟花了钱的功能。
托管模式:
很多机场如果支持 surge 的话会提供一个叫做托管配置的东西
登入后在用户中心可以看到如下
如果没有什么特殊要求,那么就是点击一下导入托管 / 导入托管(喜爱模式),然后打开 surge 的首页,从配置然后从 URL 下载配置,接着就可以使用了。
如果你没有太多太多要求或者想折腾的想法,那么对于大部分用户,机场托管的配置基本都是够用的。而如果你看到群里有人发的一些花里胡哨的东西,想着折腾一下,那么就是需要开始自己弄配置了。
订阅模式:
最新版的 surge 已经支持把托管的连接当作订阅来使用。所以你也可以不用再去寻找订阅连接。
Provider(订阅)点击复制后就会得到一个链接,这时候可以去 surge 首页的配置文件选择页面里面选择新建一个空白配置,取名那些就随你自己了,建好空白配置后点击代理服务器,再点击新的策略组,策略组的名字就随意了。拉到下面点选上使用外部代理列表,将你从机场得到的订阅(托管)链接粘贴进去,点击右上角的完成保存,至此你就得到了机场的节点并且学会如何导入订阅了🌝
订阅转换
上面我举例的是以墙洞为例的,作为一线机场,提供了各种 App 的订阅链接,有些人买的可能没有提供 surge 的订阅链接,但是也不是没有办法,可以用订阅转换。
这里以墙洞的订阅转换为例:
然后拿出我那封存的垃圾机场为例:可以看出没有提供 surge 的订阅或者托管,但是一般会提供一个通用订阅,如下图的 v2ray/Trojan 通用订阅,点击复制后去转换网址,然后将复制的通用订阅粘贴进去,客户端那里选择 surge4,讲输出为 node list 勾选上,点击生成订阅链接并复制就可以拿到 surge 里面用了
建立规则
如果你这个时候去上一些外网可能发现还是会上不了,为什么?因为你虽然有策略组但是没有规则啊,规则的作用就是让流量走指定的线路,国内的一般直连就好啦,国外一些被屏蔽的就通过机场代理使用。
建立规则的方法:在 surge 的首页,代理服务器旁边就有一个代理规则,点进去可以看到目前是没有任何规则的,点击新增会有三种:增加新规则、增加新规则集、增加逻辑规则,对于一个新手,我们先学会操作步骤,选择增加新规则
这里我以一个制定 GEOIP 为中国的就走直连为例:选择规则类型为 GEOIP,然后在 GEOIP 里面选择 CN(中国),并选上不执行 DNS 解析,策略里面选择 DIRECT,保存后就得到了一个规则了。
其它类型的也是按照类似的方式进行添加和进行。而这时,如果我们在规则页面,将最底下的默认策略(也就是参数 final,常说的兜底),更改为机场订阅,那么我们就基本已经可以用使用 surge 了,这时候的规则就是中国 IP 的,直接连接,除此之外的,走机场订阅里面选择的节点
至此你的 surge 已经是处于基本可用状态了,可以用它上外网或者看 YouTube 等了。
一些进阶操作
我这里只是简单教了一下如何建立策略组并导入订阅以及初步建立一个规则,那么如果想如同群里一些人那样,进行更多的规则而达到去广告、采用不同的地区节点看 YouTube、Netflix 该如何进行呢?
节点筛选
在教导入订阅的时候,可能有人注意到了底下还有一行过滤器,而里面的备注上写着正则表达式(选填),这里就需要用到正则对节点进行筛选了。还是以墙洞为例,我订阅的机场节点有几十个,全部挤在一个策略组里面,我想按照区域进行分开,常用的香港、台湾、日本、新加坡、美国分开放,操作方法和步骤有两种:一种是直接订阅筛选,另外一种是对策略组筛选。
先说订阅筛选,还是如同刚开始的导入机场订阅一样,新建一个策略组,取名叫做香港节点,然后使用外部代理列表,贴上机场订阅,区别就是在底下的过滤器中输入香港,保存后就可以在策略组页面看到只包含香港的节点的策略组了。
另外一个办法就是在机场订阅的策略组里面筛选
前面方法类似,新建策略组,命名为新加坡节点,但是这里不使用外部代理列表,而是选择包含另外一个策略组的策略,并选中包含所有节点的机场订阅,并在底下的正则筛选中输入新加坡,就会得到一个只包含新加坡的节点的策略组了。
如果明白了这两种操作方法,你在拥有多个机场订阅的时候就可以对他们进行统一的筛选和分组了。方法为:建立机场一策略组,建立机场二策略组,再建立一个策略组所有节点来包含机场一和机场二,然后所有的节点筛选就通过对所有节点策略组来进行。
附上节点筛选规则:
^.*(A|B) = A 或者 B
(A.*B|B.*A) = 有 A 有 B
^(?!.*A) = 不含 A
^(?!.*?B).*A = 有 A 但不含 B
另外种写法:
(A).*(B) 节点名既有 A 也有 B
(A)|(B) 节点名有 A 或者 B
^(?!.*A) 节点名不含有 A
^(?!.A).(B) 节点名不含有 A 但含有 B
^(?!.*(A|B)) 节点名既不含有 A 也不含有 B
例如:写一个策略组,不包含港台日新美的:
^((?!(日 | 台 | 新 | 美 | 港)).)*$
例如:写一个策略组,只包含港台日新美的:
日 | 台 | 新 | 美 | 港
具体的还是看你的节点命名方式
更多的规则
在建立好区域策略组,那么当然就要在规则里面去进行设置使用了,很多人问去哪里找规则,找规则当然是去 GitHub,这里推荐两个,一个就是神机规则:
Profiles/Surge at master · DivineEngine/Profiles
🌐Dial-up Internet access. Contribute to DivineEngine/Profiles development by creating an account on GitHub.
https://github.com/DivineEngine/Profiles/tree/master/Surge
另外就是 blackmatrix7 的:
GitHub – blackmatrix7/ios_rule_script: 分流规则、重写写规则及脚本。
分流规则、重写写规则及脚本。. Contribute to blackmatrix7/ios_rule_script development by creating an account on GitHub.
https://github.com/blackmatrix7/ios_rule_script
这里以 blackmatrix7 的去广告规则为例
进入后会看到会有相应的一些说明,如果不熟悉的建议仔细阅读,一般规则的说明和搭配以及使用方法都会写的清清楚楚的
而在通过找到 rule- surge- advertising 后,通过点击页面…处的 RAW 即得到链接的地址,复制这个 RAW 的地址到 surge 的主页,选择代理规则里面的增加新规则集(这种一个 list 里面包含了很多条规则的都是属于规则集),选择底下的外部规则集,而因为是去广告的,策略当然是 REJECT(拒绝)
这里新手比较容易迷惑的一点就是底下有个说明:Advertising_Domain.list 采用 Domain-Set,是的就是域名规则,这种添加方式不是增加规则集,而是增加规则,规则类型为 Domain-set
给 APP 进行分流
这里以 Netflix 为例,先建立个策略组:Netflix,然后包含香港节点和新加坡节点两个区域策略组:将香港节点和新加坡节点这两个策略组从可用的策略 拖动 到包含的策略里面并保存。
然后去 Blackmatrix7 的 GitHub 里面找到 Netflix 的分流,复制好 RAW 地址后,在 surge 里面代理规则 - 增加规则集 - 外部规则集,在底下的粘贴上地址后,策略里面选择 Netflix 并保存,以后就可以在看 Netflix 时候根据需要选择区域了。
依此类推就可以给其它的 app 建立策略组并进行分流了。然后就可以根据自己的需求和喜好来建立自己的个性配置了。
第一部份的建立策略组导入订阅使用规则就先介绍到这里。因 Craft 的限制,脚本、mitm 等等在第二部分再进行了。