banner
raye~

Raye's Journey

且趁闲身未老,尽放我、些子疏狂。
medium
tg_channel
twitter
github
email
nintendo switch
playstation
steam_profiles

surge入坑指南(一)

biaoti22

为什么要使用 surge 呢?#

作为 surge 的三端用户,mac 端 + 手机端 + Apple tv 端

image image image

不得不说 surge 的界面确实很美(

  • 最主要的用途:流媒体观看 + 国外 app 使用 + ChatGPT
  • 其次:京东比价,阿里云盘自动签到,B 站 ui 修改等多种 module
  • 开发用途:抓包,会员破解

当然实际上我这里用到的功能远不及 surge 包含的,高级功能如网关配置、内网穿透,DHCP 服务器等,也有过折腾,但日常很少涉及到就不细说了

当然上述能力,其实 QuanX、clashX、小火箭也都可以作为替代品,而且价格也还算便宜(clashX 免费)。如果打定主意要头铁入坑 surge,就准备好氪金吧哈哈

如何入坑 surge 呢?

强烈建议网页端购买而不是 App Store 内购,你会感谢我的(因为外区 Apple id 账号很容易被 ban,也难以共享给他人使用)

网页端购买推荐买支持多台设备的套餐,可以共享出去来回点本,单人购买有点亏🥹

有了 surge 后,还没完,你需要购买机场服务(自建节点也是可以的,但比较麻烦容易被封),推荐我一直用的机场(通过我的链接注册可以获得优惠😄)

https://rabbitpro.net/auth/register?code=JEBu

好了,下一步就是导入配置,机场提供了自带的配置,开箱可用

Untitled 2

导入配置后,最好创建一份当前配置的副本方便我们后续编辑(当前配置无法修改)

surge 的基础界面我也介绍下:

image image image image image

好了,你已经正式入门了,接下来就是见证 surge 的魔力了

基础分流规则#

首先需要理解下什么是分流,关于这一点似乎没有统一的定义,个人理解如下:

上网本质就是和服务器传输数据,传输的数据按照字节数来统计就是多少流量(插一句,推荐去看《上传新生》这部剧,会对流量有更深的理解)

我们和服务器之间是有很多条连接的,这些连接可以简单分个类,比如国内的服务,国外没有被墙的服务,国外被墙的服务

而分流,就是将国外被墙的服务统统走机场代理,从而绕过墙的封锁,此处应该有图(但实际没有🐶)

简单小结下:

  • 国内的服务
  • 国外没有被墙的服务
  • 国外被墙的服务

这其中,国外被墙的服务又因为地域的限制,加上了一堵无形的墙,比如 OpenAI 的服务就墙掉了香港的 ip

于是,我们又需要进一步分流,将国外的服务分流到不同地区的节点,比如常见的香港、美国、印度、尼日利亚、土耳其、阿根廷(我是精神阿根廷人!)等

上一个小节中,导入的 surge 配置文件,其中有很大一部分就是做这个分流的

此时打开 surge,我们需要切换到 “规则模式”,三个模式分别理解如下:

  • 直接连接:surge 变身小透明,所有流量一股脑的放过
  • 全局模式:surge 变身大魔王,所有的流量都被 surge 代理
  • 规则模式:surge 变身检查员,按照我们配置好的分流规则来分流

切换到规则模式后,此时的策略组还比较简单,只分成了四类:国内,国外,苹果,其他

比如我们想访问 ChatGPT 服务的话,此时我们需要的将 ChatGPT 的服务都通过美国节点来访问,因此我们需要几个事情:

  • ChatGPT 的服务器有哪些
  • 美国节点
  • 分流规则

那么 ChatGPT 的服务有哪些呢,已经有人帮忙整理好了,搜索 surge rule chatgpt github 就能找到: ios_rule_script/rule/Surge/OpenAI/OpenAI.list at master · blackmatrix7/ios_rule_script (github.com)

这里列出的就是我们需要获得原始的 raw 链接

https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/OpenAI/OpenAI.list

当然更推荐用 jsdelivr 加速后的(因为 raw.github 的链接被墙了,后续更新资源容易导致报错连不上):

jsdelivr 加速方法,只需要把 github 的域名替换为 cdn.jsdelivr.net/gh 拼接下就好

https://cdn.jsdelivr.net/gh/blackmatrix7/ios_rule_script/rule/Surge/OpenAI/OpenAI.list

Untitled 8

第一步准备好,第二步我们准备美国相关的节点,如果你是通过机场导入的配置,已经自动添加了很多节点,当然也可以手动去添加你的 vps 节点

我们可以对这些节点做一个归类,比如按照地域来划分,点击【代理服务器】,拖到最底下,新增一个策略组:

surge 把代理服务器和策略组(即代理服务器的聚合)都视作代理服务器看待

将美国节点都拖进去(其他地区解锁 OpenAI 稳定性一般,美国节点最稳定)

image

第三步,设定分流规则,此时就可以直接添加一条分流到 ChatGPT 的规则了

image image

好了,已经成功了,访问 ChatGPT 试试

补充#

机场的节点并不是稳定的,可能出现短暂无法使用

此时可以切换到策略组,点击测速,切换到连接畅通的节点(人工负载均衡了属于是🤣)

嫌手工切麻烦的话,也可以在策略组中,选择这两个

  • URL 延迟自动测试:自动选择延迟最低的
  • URL 可用性自动测试:不可用时随机选择一个可用的
  • 负载均衡:每次随机切换

image image

进阶分流规则#

既然已经添加了第一条规则,那肯定要摩拳擦掌,试试添加一堆的规则了,比如 Netflix、HBO、pornhub(大雾)

折腾之前别忘了,我们添加这些规则本质上为了实现无感知的上网,即不管是访问国内还是国外的服务,surge 都自动为我们选择代理或者是不代理

这些规则都可以在这里找到:https://github.com/blackmatrix7/ios_rule_script.git, 慢慢折腾就好了

规则微调#

有些规则可能是过期的,比如 HBO 的规则,网上搜到的基本都过期了,于是可以这么做:

  1. 先切换到全局模式,我们选择节点为美国,此时 surge 大魔王就会强制要求所有流量都通过美国节点(注意这时就别去刷国内的剧了,速度又慢又浪费流量)
  2. 此时打开 HBO MAX app,在【最近请求】页面观察下都访问了什么域名(surge 也贴心地提供了浮窗可以实时观察)
  3. 选择你觉得需要添加规则的域名,一般都很有特征的,比如 [hbo.com](http://hbo.com) 或者是 [max.com](http://max.com) 之类的,一般我们会选择 DOMAIN-SUFFIX (后面说这是什么)

可以选择临时规则或者永久规则,这是为了测试考虑

image image image

规则详解#

前面我们使用到的都是规则集,即包含了一系列的分流规则,surge 中称之为 RULE-SET

RULE-SET 的形式是一行一个规则,surge 的规则除了针对域名分流,针对 ip、针对进程(mac 上)也都是可以的

常见的规则形式有:

  • 域名规则
    • DOMAIN:严格匹配某域名。
    • DOMAIN-SUFFIX:匹配某域名及其子域名,如 DOMAIN-SUFFIX,apple.com 可以匹配 apple.com 和 www.apple.com,但是不会匹配 anapple.com。
  • IP 地址规则
  • 其他规则
    • PROCESS-NAME:仅对 Mac 版本有效,可以匹配程序名。
    • SRC-IP:可匹配连接来源 IP 地址,接管其他设备连接时可使用。
    • IN-PORT:Mac 版本支持多端口监听,可为不同监听端口配置特定的规则。

更多请参考文档:Surge 官方中文指引:理解 Surge 原理 (nssurge.com)

脚本 & 模块#

在使用脚本和模块功能之前,最好是先打开 MITM

打开 MITM 需要证书信任操作,这里不仔细说了,建议自行 Google

之后就可以切换到【修改】界面,使用脚本和模块功能了

其实这两者本质上都是对请求和响应做一些修改,并且完成一些自动化的工作,但个人觉得模块相比脚本更好用,原因在于:

  • 脚本的配置比较繁琐,需要自行添加 MITM 的域名
  • 模块相对来说更简单,一键安装即可(但依赖模块作者开发的质量,比如之前有个模块作者直接覆盖掉了我的 skip-proxy 配置,我后面找了半天才找到原因)

image image

下面提供了一些开箱即用的模块:

更进阶的模块技巧需要搭配 boxjs 使用,安装链接:https://raw.githubusercontent.com/chavyleung/scripts/master/box/rewrite/boxjs.rewrite.surge.sgmodule

文档:介绍 - BoxJs

比如自定义 B 站 ui 的模块:https://raw.githubusercontent.com/BiliUniverse/Enhanced/main/modules/BiliBili.Enhanced.sgmodule

搭配 boxjs 可以自由勾选首页展示的内容:

image image

后续内容#

零零散散先写了这么多,主要是平常使用到的一些经验沉淀,后面一篇准备写一下配置文件、编写脚本和模块吧

参考#

  1. Surge Mac 使用指南 | by Alan He | Jan, 2024 | Medium
  2. Surge 官方中文指引:理解 Surge 原理 (nssurge.com) surge 官方的文档,对于深入理解网络协议有很大的帮助
  3. GetSomeCats/Surge 新手从注册 Apple ID 到退款.md at Surge・getsomecat/GetSomeCats (github.com) 这个写的很详细了
  4. 推荐最小配置,可以认识配置文件 中国区用户推荐最小配置 - Surge Tech Community (nssurge.com)
Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.