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)
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。