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)
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。