產品說明

Shadowrocket 是 iOS / iPadOS 上的規則代理用戶端。

應用透過系統 VPN 介面接管出站流量,再按規則將每條連線判定為直連(DIRECT)、代理(PROXY)或拒絕(REJECT)。節點、訂閱與規則需自行匯入;應用不提供伺服器,也沒有帳號系統。

下方示意圖表示分流結果。中間開關對應應用內的連線控制,可點選切換。物件與 Data從 手冊 進入各章。

DIRECT · 直連

不經過代理節點

命中 DIRECT 的請求沿系統原路徑發出,例如規則裡不必進節點的站、Apple 系統服務。延遲與可用性取決於本地網路,不消耗節點流量。

PROXY · 代理

轉發到已配置的節點

命中 PROXY 的請求經本應用發往目前選中的伺服器。協定、加密與傳輸層由該節點的配置決定,不由用戶端單獨指定一套全域協定。

概述

工作方式

Shadowrocket 運行於 iPhone 與 iPad,系統要求 iOS 13.0 或更高版本。首次開啟連線時,系統會請求新增 VPN 配置,這是 iOS 對 Network Extension 的標準授權,不是第三方登入。

連線開啟後,大部分應用的出站 TCP / UDP 流量進入隧道。用戶端先根據目前配置檔案裡的規則做匹配:命中 DIRECT 則送回系統原路徑,命中 PROXY 則發往目前節點,命中 REJECT 則攔截。未命中任何條件時,由規則末尾的 FINAL 決定預設策略。

域名匹配通常依據 DNS 查詢結果、HTTP 主機名或 TLS 的 Server Name Indication。IP 與 GeoIP 匹配依據目的地址。規則按檔案中的順序自上而下執行,先命中的條目生效,後面的不再計算。

配置、節點和規則儲存在本機。若允許 iCloud,可在同一 Apple ID 下的裝置間同步;開發者伺服器不託管這些內容。

App Store 標價 2.99 美元,一次性買斷。代理伺服器需自行準備。部分地區商店未上架。

記錄
列表裡可被選中的一條出口,含地址、協定與認證。
容器
訂閱:只存 URL,子記錄靠重新整理寫入。
規則
「條件 → 策略」的有序列表。條件可以是域名、IP 段、GeoIP、行程等;策略為 DIRECT、PROXY 或 REJECT。
Config
目前生效的規則集與相關選項。可存在多份配置,連線時只使用選中的那一份。

文件

按介面讀。

首頁只說明產品是什麼。螢幕上的物件按章分開寫。各章入口在頂欄,閱讀順序在手冊。

  1. 01手冊 · 閱讀順序與物件分工
  2. 02隧道 · 開關與 Config / Proxy / Direct
  3. 03物件 · 記錄與容器
  4. 04規則 · 名單、順序、FINAL
  5. 05Data · 四組訊號
  6. 06系統 · iOS VPN 邊界
  7. 07Config · 多份檔案與 iCloud
  8. 08改寫 · 與分流不是一回事
  9. 09DNS · 兩套 DNS 與 IPv6
  10. 10商店 · App Store
  11. 11部落格 · 把介面上的現象寫開

規則匹配

按自上而下的順序匹配域名

輸入域名後命中第一條規則。此為示意規則集,與裝置上的實際配置無關。按 / 聚焦輸入框。

  1. DOMAIN-SUFFIXapple.comDIRECT
  2. DOMAIN-SUFFIXicloud.comDIRECT
  3. DOMAIN-SUFFIXpchome.com.twDIRECT
  4. DOMAIN-SUFFIXgov.twDIRECT
  5. DOMAIN-KEYWORDlineDIRECT
  6. DOMAIN-SUFFIXnetflix.comPROXY
  7. DOMAIN-SUFFIXgithub.comPROXY
  8. DOMAIN-SUFFIXyoutube.comPROXY
  9. DOMAIN-SUFFIXwikipedia.orgPROXY
  10. GEOIPCNDIRECT
  11. FINALPROXY

GEOIP 依賴裝置上的 IP 資料庫,本頁無法模擬。FINAL 表示未匹配任何條件時的預設策略。

匹配結果

PROXY

DOMAIN-SUFFIX, github.com

策略:經代理節點轉發。

規則

常用條件類型

完整語法以應用內文件與規則檔案為準。下面列出實際配置裡最常出現的幾類。策略一列除 DIRECT、PROXY 外,還可以寫 REJECT。

DOMAIN
主機名完全一致時命中。例如 DOMAIN,example.com,PROXY 只匹配 example.com,不匹配 www.example.com。
DOMAIN-SUFFIX
主機名等於該後綴,或以「.後綴」結尾時命中。例如 apple.com 會匹配 apple.com 與 www.apple.com。
DOMAIN-KEYWORD
主機名包含該字串即命中,範圍比後綴更寬,誤傷也更常見,適合無法用後綴概括的一批域名。
IP-CIDR
按目的 IPv4 網段匹配,例如 IP-CIDR,172.16.0.0/12,DIRECT。IPv6 使用 IP-CIDR6。
GEOIP
按目的 IP 的地理庫歸類匹配。第二欄是 ISO 國家代碼,例如 GEOIP,CN,DIRECTGEOIP,TW,DIRECT。準確性取決於裝置上的資料庫版本。
FINAL
檔案中應置於末尾。前面所有條件都未命中時使用這裡的策略。預設 FINAL 時,未匹配流量的行為以目前配置為準,不應依賴隱式預設。

規則可以手寫,也可以透過訂閱匯入他人維護的列表。匯入第三方規則前應閱讀其許可與更新方式,並確認 FINAL 與 GEOIP 兩條是否符合自己的預期:例如把某個國家代碼設為 DIRECT、把其餘設為 PROXY,是一種常見組合,不是唯一正確組合。

設定裡的「開啟時更新」「背景更新」只作用於訂閱型節點或規則。背景更新需要系統「設定 → 通用 → 背景 App 重新整理」允許 Shadowrocket。更新失敗時列表會停留在上一次成功的結果,不會自動清空。

協定

支援的協定

使用哪種協定由節點提供方決定。用戶端可在同一應用內儲存多種協定的節點,連線時只使用目前選中的那一條。傳輸層(WebSocket、gRPC、QUIC 等)屬於節點配置的一部分,需與服務端一致。

功能

包含

  • 基於規則的分流(直連 / 代理 / 拒絕)
  • 訂閱 URL、二維碼與手動逐條新增
  • 多協定節點共存,連線時選用目前條目
  • 延遲測試、流量統計(Data)
  • URL 重寫;可選 HTTPS 解密(需安裝描述檔)
  • 配置儲存在本機,可選 iCloud 同步到自有裝置

範圍

不包含

  • ×不提供、不銷售代理節點
  • ×無應用內帳號,配置不上傳至開發者伺服器
  • ×無應用內訂閱;節點服務費用需另行支付
  • ×不負責節點的選購、搭建或維護
  • ×不是系統級防火牆,也不能修改其他 App 的二進位
  • ×無 Android / Windows / macOS 官方用戶端

限制

系統與使用上的邊界

Shadowrocket 建立在 iOS 的 VPN 框架上,因此繼承該框架的限制。部分系統行程、部分 App 會對「VPN 已連線」做檢測或走獨立通道;用戶端無法強迫所有軟體都進入隧道。

低電量模式、系統回收背景、關閉「背景 App 重新整理」或關閉 VPN 的「按需連線」相關選項時,隧道可能斷開。飛航模式、切換 Wi-Fi / 行動網路、門戶認證(Captive Portal)也會導致短暫中斷,需要重新連線或等待自動恢復。

HTTPS 解密(MITM)會安裝使用者信任的描述檔,用於檢視或改寫 HTTPS 內容。這會降低該裝置上的證書安全模型,只應在明確需要時開啟,用完應移除描述檔。普通分流、看網頁、使用 API 並不依賴這一項。

IPv6、假域名(fake-ip)與真實 IP 的分流結果可能不一致。若只配置了 IPv4 的 CIDR 而目標走 IPv6,規則可能落到 FINAL。需要同時處理兩類地址時,應在規則裡補 IP-CIDR6,或在設定中關閉不需要的 IP 版本。

應用不能突破營運商或目標網站的訪問策略,也不能把失效節點變可用。連線品質由本地網路、節點線路與對端服務共同決定。本頁不提供節點,也不評價任何第三方訂閱服務。

規格

產品規格

SHADOWROCKET PROXY UTILITY
別稱
小火箭
平臺
iOS 13.0 或更高版本 · iPadOS
售價
USD 2.99 · App Store 一次性買斷 · 無內購
上架
App Store · 部分地區未上架(含中國大陸)
介面
iOS Network Extension(系統 VPN)
Config
儲存於本機;可選 iCloud 在自有裝置間同步
開發者
Shadow Launch Technology Limited
$2.99 買斷 App Store

取得應用見 商店。家人共享是否可用以 App Store 產品頁當時的標註為準。