用戶端觀察 · Clash 技術部落格

iOS 上 Stash、Shadowrocket 與 Surge 怎麼選?

三款應用都能處理代理規則,但適合的人並不一樣。只匯入訂閱、經常改規則,還是需要指令碼自動化,會直接決定該選 Shadowrocket、Stash 還是 Surge。

  • iOS
  • Stash
  • Shadowrocket
  • Surge
本文目錄

購買手機代理應用程式,不只是比較價格和能否加入節點。已經有桌面規則、想讓其他裝置共用代理,或準備維護指令碼的人,後續投入會很不一樣。列出目前的設定和真正會用到的功能,再核對商店與官方說明,能減少買完才發現要重做設定的情況。

Shadowrocket、Stash、Surge 各適合什麼需求?

主要需求可以優先考慮需要權衡的地方
匯入常見節點、做基礎分流,比較在意價格Shadowrocket需要完整的 Surge 模組工作流或團隊偵錯時,操作方式不夠統一
沿用 Clash 風格的策略群組與規則Stash只使用單個節點、不維護規則時,功能可能偏重
日常需要偵錯請求、指令碼、模組或 MITMSurge只想更新訂閱和切換節點時,成本與學習量較高

選定應用程式後,再核對既有設定能否匯入、規則如何編輯、區域網路共享是否符合需求,以及購買方式和遷移成本。不能只因節點成功匯入,就認定原本的規則和設定也能原樣保留。

Clash 設定能直接匯入這三款應用嗎?

Stash 官方定位是把 Clash Premium 風格能力帶到 Apple 平台,因此已經使用 proxy-groups、rules 和 Rule Provider 的使用者通常更容易延續原來的組織方式。仍要查看實際匯入結果:指令碼、TUN、DNS 和個別 Mihomo 新欄位未必一一對應。

Shadowrocket 是獨立的規則代理工具。官方 App Store 說明列出了網域、CIDR、GeoIP 規則、遠端規則檔案、DNS、指令碼過濾和多級轉發,但它不是 Mihomo 圖形前端。節點匯入成功後,原來的 Clash 策略群組和覆寫不一定還保持同樣結構。

Surge 使用自己的 Profile 與 Module 體系。Module 會以更高優先級覆蓋 Profile,適合維護可審查的本機補丁;只有 Clash 訂閱、又不準備重做規則時,不應因為 Surge 功能多就預設遷移成本最低。

策略群組、節點與模組:日常維護方式的區別

Stash
更適合圍繞 Clash 風格策略群組選擇、覆寫和規則集維護;也覆蓋 iOS、tvOS、macOS 與 visionOS。
Shadowrocket
適合快速新增常見節點與規則,並可在 iPhone、iPad、Mac 和 Apple TV 使用;目前功能與購買地區以 App Store 頁面為準。
Surge
適合查看連線、維護模組、執行指令碼和偵錯 HTTP 流量。官方文件對 Module、MITM 和指令碼有完整體系。
Stash 的設定頁面,設定檔入口位於頁面上方
Stash 把設定檔管理放在設定頁。截圖來自本站 Stash 實機教學,版本變化時入口名稱可能不同。查看 Stash 圖文教學
Shadowrocket 首頁,右上角加號用於新增訂閱或節點
Shadowrocket 的匯入入口更直接。截圖來自本站 Shadowrocket 實機教學,節點資訊已處理。查看 Shadowrocket 圖文教學

區域網路共享有哪些支援和限制?

區域網路共享方式

應用可以確認的做法選擇時要注意
Stash官方文件明確支援 iOS 提供 HTTP 與 SOCKS 代理;開啟「允許區域網路連線」後使用手機區域網路 IP 和 7890 連接埠這是手動代理共享,iPhone 不會因此變成完整透明閘道
ShadowrocketApp Store 說明覆蓋本機流量與多級轉發,但沒有把區域網路共享寫成主要承諾若目前版本設定裡沒有明確的共享監聽入口,不要按第三方舊截圖推斷
Surge官方原理文件說明 iOS 可用本機代理服務接管另一台裝置的請求目標裝置仍要手動填寫代理;具體監聽位址與權限以目前 Profile 和版本為準

無論使用哪款應用,共享前都要允許 iOS 的「本機網路」權限,並讓兩台裝置處於同一 Wi-Fi 或個人熱點。先用另一台裝置開啟一個測試網頁,再從 iPhone 的請求記錄確認它確實進入預期策略;不用時關閉監聽,公共 Wi-Fi 上不要暴露無認證代理。

普通訂閱連線不需要安裝 MITM 根憑證

三款工具都可能出現重寫、指令碼或 HTTPS 解密相關能力,但普通訂閱連線並不需要安裝根憑證。MITM 會讓應用在本機重新簽發憑證,部分採用憑證鎖定的 App 還會直接拒絕連線。

安裝 Module 或遠端指令碼前,先讀原始檔,確認它會修改哪些主機、請求標頭和回應內容。Surge 官方文件說明,Module 可以覆寫 Rule、Script、URL Rewrite 與 MITM 設定。來源不明的模組可能改變這些設定,不要隨手匯入。

價格、上架地區與裝置支援以目前商店為準

價格、上架地區、家庭共享與支援裝置都可能調整。Shadowrocket 目前美國區 App Store 頁面顯示為獨立付費應用,並明確說明不附帶代理服務;Stash 與 Surge 也需要以購買帳號所在地區的商店頁面和官方說明為準。

如果未來還要在 Apple TV、Mac 或家庭成員裝置上使用,先確認同一購買能否下載、設定怎樣同步,以及指令碼和憑證是否會跟著遷移。把這些成本算進去,才是實際價格。

換用戶端時,訂閱、規則與設定如何遷移?

更換用戶端時,不要把舊應用程式的全部快取和憑證一起複製過去。先在新應用程式中匯入訂閱,用一個固定節點確認能連線,再逐項加入自己維護的規則、模組或指令碼。

遷移順序

  • 儲存原始訂閱位址和目前可用的策略群組名稱
  • 列出自己寫過的規則、模組或指令碼,不複製未知快取
  • 新應用第一輪只驗證訂閱、固定節點、鎖定螢幕和切網
  • 進階規則逐項重建,每加入一項就查看一次連線
  • 新應用穩定數日後再刪除舊設定與憑證

參考資料