官方手冊 · 功能與設定

Shadowrocket 功能與常用設定

先確認 Global Routing,再檢查伺服器與 Config,最後調整連線觸發、DNS 和診斷選項。不同設定各自負責不同環節,排查時不宜一次變更多項。

Home Config Data Settings

本頁以 iPhone 與 iPad 上的 Shadowrocket 為操作對象。介面用語保留英文,並以中文說明用途;入口位置可能隨應用程式介面調整,請以裝置上實際顯示為準。系統需求以 App Store 頁面標示為準。

Global Routing:選擇流量處理模式

Global Routing 決定啟用連線後,流量要交由設定中的規則判斷,還是主要採用統一的 Proxy 或 Direct 路徑。它不等同於選擇伺服器,也不等同於 Home 的連線開關。先在 Home 找到 Global Routing,確認目前選項,再依需求選擇 Config、Proxy 或 Direct。

介面選項 處理方式 適用情況 檢查重點
Config(設定檔) 依據目前啟用的 Config 比對規則並決定策略。 需要依網域、位址或其他條件分流。 確認設定檔已啟用、規則順序正確,且策略引用有效。
Proxy(代理) 主要將流量交由目前選取的代理處理。 暫時比對代理連線是否正常,縮小規則問題的範圍。 確認所選伺服器可用,但不能據此推斷每條規則都正確。
Direct(直連) 主要採用直接連線路徑。 檢查目標在目前網路中的直接連線情況。 仍須搭配 DNS、應用程式設定及系統網路狀態判斷。

日常需要分流時,通常使用 Config。操作前先到 Config 確認實際啟用的檔案,而不只是確認檔案已匯入。檔案存在與正在使用是兩種不同狀態;編輯未啟用的檔案,不會讓目前連線行為自動依照該檔案變更。

特定目標無法正常存取時,可先保留原設定,再短暫切換 Proxy 與 Config 進行比對。若 Proxy 可以存取而 Config 不行,接下來應檢查該請求命中的規則及策略去向;這只是排查線索,不能據此確定故障原因。測試結束後請恢復所需模式,避免將暫時的排查設定留作日常配置。

規則分流:條件、順序與策略

規則分流會將請求的網域、目標位址等資訊逐條與規則比對,再交由對應策略處理。在 Config 中開啟目前使用的設定檔,檢查規則清單;Global Routing 選擇 Config 時,這份設定檔才是分流檢查的主要對象。修改前先保留原始檔案,避免覆寫後失去比對基準。

每條規則通常由類型、比對內容及策略組成。規則由上而下判斷,命中第一條後便停止比對。因此,特定網域的例外規則應放在涵蓋範圍較大的規則之前;FINAL 通常放在末尾,處理此前未命中的請求。規則數量多,不代表優先順序合理。

關鍵字比對對象設定注意事項
DOMAIN完整網域名稱。適用於單一主機的精確例外。
DOMAIN-SUFFIX網域後綴及其子網域。涵蓋範圍較廣,請留意與精確規則的順序。
DOMAIN-KEYWORD網域中的關鍵字。條件較寬,可能比對到非預期的網域。
IP-CIDR / IP-CIDR6IPv4 / IPv6 位址範圍。確認位址範圍格式,並留意網域解析與比對之間的關係。
GEOIP依據位址資料庫進行地區分類。資料庫分類不等同於服務所屬地區或實際連線路徑。
FINAL此前未命中的請求。作為兜底規則,請確認其引用的策略可用。

PROXY 表示交由代理路徑處理,DIRECT 表示直接連線至目標,REJECT 表示拒絕請求。規則也可能引用設定檔中定義的策略群組名稱,此時還要確認群組內目前的選擇,不能只看規則末尾的文字。以下片段僅示範排列方式;example.com 是說明用網域,不應整段取代使用者現有設定。

DOMAIN,ads.example.com,REJECT
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,10.0.0.0/8,DIRECT
FINAL,PROXY

這段範例將精確例外放在後綴規則之前,否則 ads.example.com 會先被涵蓋範圍較廣的規則命中。排查時先找出實際命中的規則,再決定是否調整順序;不要只在末尾新增一條期待生效的規則。完整原理請參閱規則比對順序與 FINAL 說明。

Subscribe 與伺服器管理

伺服器記錄保存具體連線參數;Subscribe 用來依據使用者已有的訂閱管理一組伺服器;Config 則主要承載規則及相關設定。三者彼此相關,但內容類型不同。匯入既有連結時應依其實際類型操作,不能因為都是網址,就將設定檔網址與訂閱網址互換使用。

在 Home 使用新增入口進入 Add Server,依據既有資訊選擇 Type。手動新增時,逐項核對 Address、Port 與協定所需的驗證欄位;例如 Trojan 與 Shadowsocks 所需欄位並不完全相同。參數必須與伺服器端一致,不能靠更換 Type 修正不相符的參數。想了解欄位意義,可參閱協定技術參考。

匯入既有訂閱時,在 Add Server 的 Type 中選擇 Subscribe,並在 URL 等對應欄位填入自己的訂閱資訊。儲存後返回 Home,確認訂閱下方已顯示伺服器清單,再選擇所需記錄。若使用 Scan QR Code,應先確認辨識出的內容類型與來源;儲存後仍須檢查參數,掃描成功不代表連線成功。

更新訂閱會重新取得清單內容,適合用來同步服務提供方已調整的位址或參數。更新後應再次確認目前選取的伺服器是否仍存在、名稱是否變更,以及原有策略是否仍引用有效記錄。直接暫時編輯訂閱產生的記錄,後續更新可能會覆蓋這些變更;重要調整前應先確認設定的儲存方式。

Connectivity Test 可協助比較目前測試條件下各筆記錄的回應情況,但結果會受到 Test Method、測試目標、網路及伺服器狀態共同影響。清單中有回應,不代表所有目標都能存取;沒有回應時,也應先確認測試方式是否適用於目前服務,再決定是否修改伺服器參數。

On Demand:依條件觸發連線

On Demand 會在符合設定條件時讓系統發起 VPN 連線。它處理的是「何時建立連線」,而非「特定網域應採用哪種策略」。連線建立後,流量仍由 Global Routing 與目前的 Config 決定如何處理,不能將 On Demand 當作另一套分流規則。

先在 Home 手動完成一次連線測試,確認既有伺服器與設定正常,再進入 Settings 尋找 On Demand。依照實際介面提供的網路條件逐項設定;若設定中包含 Wi-Fi 名稱等條件,請核對拼字並確認裝置確實連上對應網路。手動連線尚未成功時,不要同時加入多個自動觸發條件,否則難以判斷問題所在環節。

設定完成後,可切換實際使用的網路環境,觀察系統是否如預期建立連線,並返回 Home 確認連線狀態。測試應涵蓋「應觸發」與「不應觸發」兩種情況;只在目前的 Wi-Fi 測試一次,無法證明其他網路條件也設定正確。

原本打算停止連線,卻發現連線再次出現時,應先檢查 On Demand 是否仍啟用,以及觸發條件是否成立。需要暫時停止自動行為時,先關閉相關觸發條件,再檢查連線開關。系統處理網路切換與背景活動的方式也會影響觀察結果,因此不能保證所有環境下都會在相同時機觸發。

Data:查看流量與請求線索

Data 可用來查看應用程式記錄的流量統計及可取得的請求資訊。適合用來確認「連線期間是否有資料傳輸」或「某次測試前後記錄有何變化」,但它不是服務提供方的計費帳單,也不是完整的速度測試。統計方式、保留範圍與介面顯示,請以裝置上的實際選項為準。

進入 Data 後,先查看統計範圍、時間及可用分類,再針對單一目標進行一次存取測試。比較測試前後的變化,比只看累計數字更有參考價值。若介面提供連線詳細資訊或請求記錄,可搭配網域、目標位址及策略資訊確認處理路徑;若缺少相關欄位,就不應自行推斷請求一定套用了某條規則。

需要重新觀察時,可先記錄必要資訊,再使用介面提供的重設或清除功能。清除統計與變更伺服器參數是兩回事,也不會自動修正錯誤規則。測試期間盡量減少其他應用程式的背景活動,以免更新、同步等流量混入累計資料,影響判斷。

Data 中的數據增加,只代表記錄範圍內有資料傳輸,不代表目標服務已成功運作;應用程式可能仍在重試,或正在下載其他資源。反之,某次測試沒有明顯變化,也可能與連線狀態、目前模式或統計範圍有關。排查時應一併確認 Home、Global Routing 與實際存取結果,不要只根據統計數字下結論。

Settings:常用選項的設定範圍

Settings 主要提供應用程式層級的選項、測試偏好、同步與輔助工具;Config 中也可能保存與解析、連線相關的設定。修改前先判斷參數屬於應用程式層級或設定檔層級,記下原值並保留目前啟用的檔案。介面未顯示的項目,不要依照其他教學的描述硬找,請以裝置實際提供的入口為準。

DNS:先確認解析設定來源

DNS 會將網域名稱轉換為位址,是建立連線前的重要環節。先在 Settings 查看相關入口,再檢查目前 Config 是否指定 DNS;不要假設修改一處就會套用到所有設定。請使用已確認可用的解析服務及應用程式支援的格式,儲存後重新測試相同網域。若剛變更解析設定,也應考慮快取影響,必要時依照介面提供的方式清除後再測試。

網域解析成功不代表後續連線也成功。若網域連線失敗、改用位址後情況不同,可將 DNS 列為排查方向;但直接換成目標位址可能改變 TLS 驗證與請求行為,不能把這種比對方式當作長期解決方案。也不建議在同一次測試中同時調整 DNS、Global Routing 與協定欄位。

Test Method:使用一致的測試方式進行比較

Test Method 決定 Connectivity Test 使用的測試方式。進入 Settings 找到此選項,依照目前介面提供的選項設定,並確認相關測試目標。不同方式檢查的連線階段不同,因此結果不能直接放在一起比較。變更方式後,應重新測試需要比對的記錄,而不要直接將新結果與舊清單中的結果排序比較。

測試目標有回應,只能證明所選方法對應的連線環節有回應,不能保證所有應用程式與網站都正常。排查時請記錄「方法、目標、網路環境」三項條件,並透過實際服務存取補充驗證;不要將單一回應數值視為服務品質或穩定性的保證。

Today Widget:方便查看與操作

Today Widget 提供與系統小工具相關的便捷入口。先在 Settings 檢查應用程式提供的相關選項,再前往系統的小工具編輯介面,確認是否可以加入,以及目前裝置支援哪些操作。系統版本與小工具支援狀況可能影響顯示內容,請以裝置介面為準。

小工具可減少開啟應用程式的操作步驟,但不能取代設定檢查。透過小工具執行連線操作後,若顯示狀態與預期不符,請返回 Home 確認,並檢查 On Demand 是否正在觸發連線。不要只憑小工具先前顯示的狀態,判斷目前連線已建立。

iCloud:同步前先備份設定檔

iCloud 相關選項可在符合條件的裝置間同步應用程式支援的內容。進入 Settings 查看 iCloud 設定,並確認系統已允許 Shadowrocket 使用 iCloud。首次啟用前,先備份重要的 Config,並記下目前選取的伺服器與模式;同步範圍請以介面說明為準,不要假設所有暫存狀態、統計資料與憑證都會完整同步。

更換裝置後,先等待內容同步完成,再逐項確認檔案、伺服器與策略引用。同步不等於連線驗證,也不代表歷史記錄已完整還原。若兩台裝置同時編輯同一份設定檔,請檢查儲存結果,避免以較舊的內容覆蓋已調整的規則。遷移順序可參閱設定檔備份與移轉說明。

Diagnostics:針對明確故障蒐集診斷資訊

Diagnostics 可用來取得應用程式提供的診斷資訊。進入 Settings 尋找此入口,依照實際介面選擇所需的診斷方式。先記下故障發生時的網路、Global Routing、所選伺服器與操作步驟,再重現一次問題;相較於長時間蒐集混合多種操作的記錄,這樣通常更容易找出問題。

診斷結果是分析線索,不會自動修復問題。分享前請檢查內容是否包含訂閱 URL、伺服器位址、帳戶資訊或存取目標,並先去識別化;不要直接公開完整記錄。排查完成後,請還原暫時調整的記錄選項,並視需要清除不再使用的診斷資料。

常用設定檢查順序

設定項目較多時,依固定順序檢查有助於減少重複變更。建議先保留可還原的基準設定,接著每次只變更一個變數;每次儲存後,都用相同目標驗證並記錄結果。這樣較容易區分參數錯誤、規則去向與自動觸發條件之間的差異。

  1. 確認輸入內容。在 Home 檢查目前的伺服器,確認既有訂閱已完成更新,並核對手動輸入的 Type、Address、Port 與驗證參數是否一致。
  2. 確認處理模式。在 Global Routing 查看目前選項;使用 Config 時,進入 Config 確認實際啟用的檔案,再檢查策略引用與 FINAL。
  3. 完成手動驗證。啟用連線並存取明確指定的目標;搭配 Data 與可用記錄檢視結果,不要只以 Connectivity Test 判定成功。
  4. 接著調整輔助設定。有需要時逐項檢查 DNS、Test Method 與 Diagnostics,保留原始值,避免同時變更多個連線環節。
  5. 最後啟用自動功能。手動連線驗證完成後,再設定 On Demand、Today Widget 與 iCloud,並分別測試觸發、操作及同步結果。

若仍無法判斷問題出在哪個環節,請先閱讀疑難排解;首次使用且尚未完成匯入與授權時,請從快速入門開始,不要先調整大量進階選項。保留一份已驗證可用的設定,通常比不斷疊加暫時變更更方便後續維護。