第一層
伺服器與訂閱
確認 Home 中已選取自己的伺服器項目,並檢查位址、連接埠、協定與驗證資訊是否完整。Subscribe 用於更新現有訂閱內容,不會改變 Global Routing 的選擇。
功能與常用設定
從 Global Routing 到 Diagnostics,依介面位置了解各項設定的用途。
本頁以 iPhone 與 iPad 上常用的 Shadowrocket 功能為主,依序說明「是什麼、在哪裡、如何設定、需要注意什麼」。開始調整前,建議先確認已有伺服器資訊或訂閱已匯入,並保留一份目前可用的 Config,方便連線出現差異時逐項還原。
閱讀方式
Shadowrocket 的設定並不是彼此獨立的開關。目前的伺服器決定連線出口,Global Routing 決定流量如何選擇策略,Config 中的規則決定哪些請求使用 PROXY、DIRECT 或 REJECT,DNS 與 On Demand 則會影響解析與觸發時機。依這個順序理解,排查時更容易找出真正發生變化的環節。
第一層
確認 Home 中已選取自己的伺服器項目,並檢查位址、連接埠、協定與驗證資訊是否完整。Subscribe 用於更新現有訂閱內容,不會改變 Global Routing 的選擇。
第二層
Config 儲存規則及相關設定。使用 Config 模式時,請求會由上到下比對 DOMAIN、GEOIP、IP-CIDR 等規則,第一個符合的結果會決定策略。
第三層
DNS、Test Method、On Demand 與 Diagnostics 用於控制解析、測試方式、自動觸發與問題定位。修改後應一次只驗證一個變數。
Global Routing
Global Routing 是 Home 中最先需要確認的總開關之一。繁體中文說明常將三種模式稱為設定檔、代理、直連,對應介面詞分別是 Config、Proxy、Direct。它們控制的是整體選路方式,而不是伺服器協定類型。
Config 會依目前設定檔中的規則逐條比對,讓不同請求套用不同策略;Proxy 讓連線統一使用目前選取的代理策略,適合暫時確認伺服器本身是否正常;Direct 讓請求直接連線,適合暫停規則處理並檢查本地網路狀況。切換三種模式後會影響之後建立的新連線,已建立的連線可能需要重新開啟對應的 App 或頁面才能看到變化。
進入 Home,找到 Global Routing 對應的選擇項目。介面的具體排列可能隨裝置尺寸變化,但名稱仍會顯示為 Config、Proxy、Direct。選擇前也要確認 Home 中目前的伺服器項目,避免將「選錯伺服器」與「選錯分流模式」混在一起排查。
日常需要依網域、IP 位址或地理條件進行分流時,通常使用 Config;剛匯入伺服器、希望排除規則因素時,可短暫切換 Proxy 進行連線測試;只想確認目前 Wi-Fi 或行動網路是否正常時,可切換 Direct 進行對照。驗證完成後,再切回符合實際使用目標的模式。
| 中文說明 | 介面詞 | 處理方式 | 適用情境 | 注意事項 |
|---|---|---|---|---|
| 設定檔 | Config |
依目前設定檔中的規則由上到下比對 | 日常規則分流,依網域或 IP 條件選擇策略 | 規則順序、最終規則與策略名稱都會影響結果 |
| 代理 | Proxy |
新連線統一使用目前的代理策略 | 驗證伺服器可用性,暫時排除規則影響 | 不適合用來判斷某一條 Config 規則是否正確 |
| 直連 | Direct |
新連線直接存取目標 | 檢查本地網路,對照連線差異 | 切換後應重新發出請求,再觀察結果 |
Config
規則分流由「比對條件」與「執行策略」組成。條件用來識別請求,策略決定符合後如何處理。Shadowrocket 會依設定中的先後順序檢查規則,因此較具體的條件通常應放在較寬泛的條件之前。
DOMAIN 用於比對完整網域,適合精確指定單一主機;DOMAIN-SUFFIX 依網域後綴比對,可涵蓋一個網域及其子網域;DOMAIN-KEYWORD 依網域是否包含關鍵字進行比對,範圍較廣,使用時要留意誤判。GEOIP 依目標 IP 的地理資料庫結果比對,IP-CIDR 與 IP-CIDR6 分別依 IPv4、IPv6 位址範圍比對,USER-AGENT 則依請求中的 User-Agent 條件處理。
進入 Config,選取目前的設定檔後查看規則內容。規則通常由關鍵字、比對值與策略三部分組成,例如:
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY
第一行表示網域後綴為 example.com 時使用 PROXY;第二行表示符合相應 GEOIP 條件時使用 DIRECT;最後的 FINAL 接收前面未命中的請求。範例僅用於說明語法,不代表可以直接套用到所有網路環境。
先撰寫精確規則,再撰寫範圍較大的規則,最後保留清楚的最終處理策略。例如,單一網域的 DOMAIN 應放在可能涵蓋它的 DOMAIN-SUFFIX 或 DOMAIN-KEYWORD 之前。IP 規則需要留意目標位址是 IPv4 還是 IPv6;如果實際存取經網域解析後得到不同位址,只觀察網域不足以解釋最後命中的規則。
常見策略包括 PROXY、DIRECT 與 REJECT。PROXY 表示交由代理策略處理,DIRECT 表示直接連線,REJECT 表示拒絕請求。設定中也可能引用自訂策略群組名稱,此時名稱必須與設定檔中既有的定義一致。大小寫、標點與逗號位置都應保持正確,避免手動編輯時加入多餘空格或全形符號。
規則不是越多越好。兩條規則的涵蓋範圍重疊時,前面的規則會先命中,後面的規則不會再參與這次判斷。遇到「某個網域沒有依預期處理」時,應依序檢查:實際存取的網域、DNS 回傳的位址、規則順序、策略名稱,以及目前 Global Routing 是否確實為 Config。排查完成後再合併重複項目,維持設定檔易讀。
DOMAIN 精確比對完整網域;DOMAIN-SUFFIX 涵蓋指定後綴。需要細緻控制時,先寫 DOMAIN。
分別處理 IPv4 與 IPv6 位址範圍。位址範圍格式與前綴長度必須正確,避免涵蓋超出預期的範圍。
條件命中後執行對應策略。自訂策略群組應使用設定檔中已存在的名稱。
處理先前未命中的請求。FINAL 的策略會明顯影響整體行為,修改前應確認使用目的。
Add Server · Subscribe
Shadowrocket 可透過 Add Server 手動輸入伺服器資訊,也可透過 Subscribe 更新使用者現有的訂閱。兩種方式最後都會形成可在 Home 中選取的伺服器項目,但維護方式不同。
Add Server 適合輸入一筆明確的伺服器資訊,常見協定包括 Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard 與 Hysteria2。各協定需要的欄位不同,通常包括 Address、Port、Password 或其他驗證參數。Subscribe 適合管理由使用者自己的服務商提供並持續維護的一組項目,更新時用戶端會重新讀取訂閱內容。
在 Home 中進入伺服器新增入口,可選擇 Add Server、Scan QR Code 或 Import from Cloud JSON 等方式;訂閱入口通常顯示為 Subscribe。介面中出現的協定類型、欄位與傳輸參數應與現有伺服器資訊逐項對應,不要將一種協定的參數填入另一種協定頁面。
手動新增時,先選擇協定,再輸入 Address 與 Port,接著補齊驗證與傳輸欄位,儲存後回到 Home 選取該項目。透過 Subscribe 匯入時,貼上使用者現有的訂閱網址,儲存後執行更新,再從回傳的項目中選擇要使用的伺服器。透過 Scan QR Code 匯入前,應先確認 QR Code 確實來自使用者自己的伺服器資料;Import from Cloud JSON 適合匯入已準備好的 JSON 設定。
如果訂閱更新後項目發生變化,應以服務商回傳的目前內容為準。手動修改由 Subscribe 管理的項目,可能在下次更新時被取代。若希望長期保留個別參數,可先記錄原始資訊,再決定使用手動項目或訂閱維護方式。
伺服器名稱只是方便辨識的標籤,不能證明連線品質。測試時應分別觀察項目能否完成 Connectivity Test、實際網頁能否開啟、Global Routing 是否正確,以及 DNS 是否能夠解析。延遲結果只反映某種測試條件下的回應,不等同於完整存取速度。驗證資訊屬於敏感資料,應只儲存在使用者自己的裝置與可信任的備份中。
On Demand
On Demand 用於依目前網路條件觸發或停止連線,適合需要在特定 Wi-Fi、行動網路或網域存取條件下自動切換的情境。它影響的是連線時機,不會取代 Global Routing 與 Config 規則。
手動連線需要使用者進入 Home 操作開關;On Demand 則按照預先設定的條件,在網路環境變化時由系統判斷是否觸發。常見判斷面向包括目前網路類型、Wi-Fi 資訊與網域條件。觸發連線後,請求仍會依當時選取的伺服器、Global Routing 模式與 Config 規則處理。
進入 Settings,找到 On Demand 相關入口。首次啟用連線功能時,系統可能要求確認 VPN 設定權限。On Demand 規則由上到下判斷時,應保持條件名稱清楚,並避免建立意義相反但範圍重疊的條件。
先從單一條件開始,例如只針對一種網路環境啟用,觀察切換 Wi-Fi 與行動網路時的行為。確認觸發穩定後,再增加網域或網路例外。每次修改後,鎖定螢幕再解鎖、切換網路或重新發出請求,都可能幫助系統重新評估條件;測試時應記錄目前網路名稱、Global Routing 模式及選取的伺服器。
On Demand 開啟後,如果出現連線頻繁切換,通常先檢查條件是否過於寬泛、多個條件是否重疊,以及網路是否在 Wi-Fi 與行動網路之間反覆變化。若要判斷問題是否來自自動觸發,可暫時關閉 On Demand,改用 Home 手動連線進行對照。完成驗證後,再恢復已簡化的規則。
先建立可觀察的基本行為。
分別觀察 Wi-Fi 與行動網路。
一次只增加一項判斷條件。
Data
Data 用於查看 Shadowrocket 處理過的流量記錄,適合比較不同 App 或連線階段的使用情況。它是用戶端側的統計檢視,閱讀時需要搭配統計期間與目前連線狀態。
Data 彙整用戶端執行期間觀察到的上傳與下載資料,可用於了解某段時間內的流量變化。統計值能幫助判斷某個操作是否產生大量傳輸,也能在排查時確認請求是否經過用戶端,但不能直接說明規則命中了哪一條,也不能單獨證明伺服器速度。
從底部導覽進入 Data。不同裝置尺寸下的清單密度可能不同,重點查看統計範圍、App 或連線項目,以及上傳與下載方向。若剛切換設定檔,應從切換後的新請求開始觀察,避免將先前累積的資料算入本次判斷。
Data 主要用於查看,不需要頻繁調整。進行對照測試時,可以先記下目前數值或重設統計,再執行一個明確動作,例如開啟頁面、播放一段內容或執行一次更新,然後返回 Data 查看增量。重複測試時應盡量維持相同網路、相同伺服器與相同 Global Routing 模式。
用戶端統計、系統統計與服務商側統計可能採用不同的計算方式與更新時間,數值不一定完全一致。Data 中出現流量只表示請求經過相應的處理流程;要確認策略,應搭配 Log 或 Diagnostics。若統計突然增加,應先檢查前景與背景中正在傳輸的 App,再判斷是否與目前測試相關。
Settings
Settings 集中放置解析、測試、元件與同步相關選項。這裡的變更可能影響所有設定,因此比起單一規則,更適合採用「記錄原值、單項修改、立即驗證」的方法。
是什麼:DNS 會將網域轉換為連線所需的位址。解析失敗時,伺服器測試可能正常,但網頁仍可能無法開啟。
在哪裡:進入 Settings 中的 DNS 相關項目,查看目前的解析設定與可用選項。
如何設定:優先保留目前可用的設定。確需調整時,一次只更換一項,並分別測試網域存取與直接 IP 存取,以判斷問題是否位於解析環節。
注意事項:DNS 與規則可能互相影響,尤其是 GEOIP、IP-CIDR、IP-CIDR6 依賴解析結果的情況。修改後應重新建立連線,不要只查看舊頁面的快取。
是什麼:Test Method 決定用戶端以哪種方式測試伺服器回應。不同方式觀察的是不同網路環節,因此結果可能有所差異。
在哪裡:進入 Settings,找到 Test Method,再查看目前介面提供的測試方式。
如何設定:用於日常比較時,應維持使用同一種方式;只有在排查特定網路限制時才切換,並重新執行 Connectivity Test。
注意事項:測試值較低不代表實際傳輸一定更快。網頁載入還會受到 DNS、線路、目標伺服器與傳輸參數影響,應結合實際存取結果判斷。
是什麼:Today Widget 提供系統元件入口,方便查看狀態或執行用戶端支援的快速操作。
在哪裡:先在 Shadowrocket 的 Settings 查看相關選項,再透過系統的小工具編輯介面新增。
如何設定:新增後檢查元件顯示的設定檔與目前連線是否一致;若系統未立即更新,可開啟 Shadowrocket 確認狀態後再查看元件。
注意事項:元件顯示取決於系統更新排程,短時間內可能與 App 內狀態有所延遲。重要操作仍應返回 Home 核對。
是什麼:iCloud 同步用於在同一使用者的 Apple 裝置環境中同步用戶端支援的資料項目。
在哪裡:進入 Settings 查看 iCloud 相關開關,同時確認裝置系統設定中的 iCloud 狀態。
如何設定:啟用前先保留目前可用的設定,接著在另一台裝置上等待同步完成並逐項核對,不要在兩端同時大量修改。
注意事項:同步不等於即時鏡像,網路狀態、系統排程與項目類型都會影響同步出現的時間。重要驗證資料仍應由使用者妥善管理。
| 設定項目 | 主要用途 | 修改後的驗證方式 |
|---|---|---|
| DNS | 控制網域解析相關行為 | 重新存取網域,並與直接 IP 連線的現象對照 |
| Test Method | 決定 Connectivity Test 的測試方式 | 固定伺服器,使用相同方式重複測試 |
| Today Widget | 提供系統元件中的狀態或快速入口 | 返回 Home 核對元件顯示與實際狀態 |
| iCloud | 同步用戶端支援的資料項目 | 等待同步後逐項比較兩台裝置的內容 |
Diagnostics · Connectivity Test
Diagnostics 用於將「無法存取」拆分為更具體的問題:本地網路是否正常、伺服器是否回應、DNS 是否完成解析、規則選擇了哪項策略,以及目標連線在哪個步驟停止。
Connectivity Test 偏向快速確認伺服器回應;Log 記錄用戶端處理請求時的事件;Diagnostics 則用於彙整或執行更具針對性的檢查。三者適合搭配使用:先進行快速測試,再重現一次問題,最後查看與該次請求時間相符的記錄。
Connectivity Test 通常可從伺服器清單或相關操作入口執行;Log 與 Diagnostics 位於用戶端相應頁面或 Settings 的診斷區域。介面位置可能隨裝置版面變化,尋找時以英文名稱為準。
分享診斷內容前,應先檢查其中是否包含伺服器位址、驗證資訊、訂閱網址或個人網路名稱。用於自行排查時,保留發生時間、目標網域、目前模式與修改動作即可。若 Proxy 可存取而 Config 無法存取,重點檢查規則;若兩者都無法存取而 Direct 正常,重點檢查伺服器與協定參數;若伺服器測試有回應但網域存取失敗,則優先檢查 DNS 與目標網域記錄。
檢查規則順序、FINAL 策略、自訂策略群組名稱,以及目前是否選取正確的 Config。
檢查目前伺服器、協定欄位、驗證參數與 Connectivity Test 結果。
檢查 DNS、網域實際解析結果,以及 DOMAIN 類規則是否符合預期目標。
建議順序
遇到問題時,依固定順序排查比反覆切換開關更有效。以下流程適合首次設定,也適合設定更新後的回歸檢查。
在 Home 選取一個參數完整的伺服器,先執行 Connectivity Test。若透過 Subscribe 匯入,先確認更新已完成。
短暫將 Global Routing 切換為 Proxy,重新發出一個明確請求。此步驟只用於驗證連線鏈路,不代表最終使用模式。
確認目標網域符合的 DOMAIN、DOMAIN-SUFFIX 或其他條件,並檢查最終策略是否為預期的 PROXY、DIRECT 或 REJECT。
確認伺服器與規則後,再處理解析問題。修改 DNS 後重新建立請求,並同時觀察 IPv4 與 IPv6 條件。
先確保手動連線穩定,再加入自動觸發條件。如此可將連線本身的問題與觸發時機問題分開。
App 與裝置
Shadowrocket 主要使用於 iPhone 與 iPad;Mac、Apple TV 與 Apple Vision 的相容性可在同一 App Store 產品頁查看,系統需求以 App Store 頁面標示為準。不同裝置的排列與可見選項可能不同,本頁一律以英文介面詞辨識功能。