官方手冊 · 功能與設定

Shadowrocket
代理模式與設定

先用 Global Routing 選擇路由方式,再檢查規則與伺服器;On Demand 控制連線觸發條件,Data 與 Diagnostics 則用來核對實際結果。這些設定各有用途,不能互相取代。

Global Routing:三種模式

設定 / 代理 / 直連,對應介面中的 Config / Proxy / Direct。

Global Routing 決定連線流量採用哪種路由方式,不會建立伺服器,也不等於連線開關。在 Home 找到 Global Routing 後,選擇 Config、Proxy 或 Direct,再確認目前的 SERVER 與連線狀態。初次使用時,建議先核對既有伺服器參數,透過短時間測試確認連線是否可用,最後再回到 Config 驗證規則。切換模式後,請重新建立一次連線;已建立的長連線不適合作為模式切換是否生效的唯一判斷依據。

模式與介面用語路由行為適用情境注意事項
設定 · Config依目前啟用的設定檔處理連線,並由 [Rule] 比對策略。日常分流,或確認某個網域應使用 DIRECT、PROXY 還是 REJECT。先確認啟用的是哪個 Config,再檢查規則順序與 FINAL。
代理 · Proxy主要連線交由目前選取的代理伺服器處理,不會依一般規則逐項分流。短時間測試伺服器能否處理目標連線,縮小規則排查範圍。仍會受系統路由、必要的略過項目及網路環境影響,不應視為裝置上所有流量都必然經過代理的保證。
直連 · Direct主要連線採用直接連線方式,不透過代理伺服器轉送。對照本地網路的連線狀況,區分直連問題與代理連線問題。Direct 不等於關閉 VPN 連線;若要中斷連線,請使用 Home 的連線開關。

以相同目標進行比較,一次只更改一項設定

如果 Proxy 可以連線,但 Config 不行,請優先檢查 Config 中的命中規則、策略與 DNS 設定;問題可能出在分流路徑,而非所有伺服器參數都失效。如果 Proxy 和 Config 都失敗,再檢查伺服器、本地網路與協定參數。Direct 的結果只能反映直接連線路徑,不能據此判定代理伺服器正常或異常。

測試時記下目前模式、選取的伺服器與目標網域,完成後恢復原設定。排查問題時,避免長時間停留在不符合預期的模式;尤其更換設定檔後,請再次檢查 Global Routing,不要只確認 Home 的連線開關是否已開啟。

規則類型與策略

類型說明比對條件,策略則說明命中後如何處理。

在 Config 檢查 [Rule]

規則分流是在 Config 模式下,依設定中的條件為連線選擇路徑。在 Config 開啟目前的設定檔,找到 [Rule],依照由上而下的順序閱讀。一般規則通常在命中後就會停止比對,因此較具體的條件應排在較廣泛的條件前面,並將 FINAL 放在最後,處理未命中的請求。

DOMAIN 比對完整網域;DOMAIN-SUFFIX 比對網域及其子網域;DOMAIN-KEYWORD 依網域中的關鍵字比對。IP-CIDR 和 IP-CIDR6 分別表示 IPv4、IPv6 網段;GEOIP 依 IP 地理位置資料庫判斷;USER-AGENT 用於比對可取得的 User-Agent 資訊,不能假設所有連線都能藉此識別應用程式。

策略 PROXY 表示透過代理路徑連線,DIRECT 表示直接連線,REJECT 則表示拒絕連線。策略名稱不代表伺服器的健康狀態,也不會提供新的伺服器參數。先確認請求命中了哪條規則,再判斷後續連線是否成功。

檢查規則優先順序,而不只是關鍵字

即使兩條規則語法都正確,仍可能導致相反結果。例如,若較廣泛的 DOMAIN-SUFFIX 排在特定 DOMAIN 前面,後者便沒有比對機會。修改前先備份目前的設定,只調整相關規則的位置或策略,再以新連線驗證。IP 規則也會受到可用解析結果影響;GEOIP 判斷仰賴資料庫,不適合用來精確證明服務實際部署位置。完整語法與設定段落請參閱規則與設定參考。

Subscribe 與伺服器管理

伺服器參數解決「如何連線」,設定規則則決定「何時使用」。

使用 Add Server 新增既有資訊

在 Home 使用 Add Server,依照已有資訊選擇相應的 Type,再填入位址、連接埠、驗證與傳輸參數。Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2 等類型的欄位並不通用;不要只因位址相同,就照抄其他類型的參數。TLS、伺服器名稱與傳輸選項也應符合既有伺服器的要求,不要以關閉驗證來掩蓋填寫錯誤。

儲存後回到 Home,在 SERVER 確認目前選取的項目。清單中有某台伺服器,不代表連線正在使用它。手動輸入時,建議為項目設定容易辨識的名稱,但不要將密碼、金鑰或完整訂閱網址放進名稱,以免在顯示清單或分享診斷資訊時外洩。

Subscribe 用來更新既有訂閱內容

既有訂閱通常可透過 Add Server 中的 Subscribe 類型新增。填入自己的訂閱 URL 並儲存後,使用該項目的更新功能取得內容,再確認伺服器項目是否出現,以及目前選取項目是否符合預期。Subscribe 中的存取憑證應視為敏感資訊,不要貼到公開頁面,也不要提交給無關的檢測工具。

訂閱更新失敗與伺服器連線失敗是不同問題:前者涉及訂閱網址是否有效、目前網路能否連線至該網址,以及回傳內容能否識別;後者則涉及實際伺服器的協定、驗證與傳輸。更新成功不代表每台伺服器都能連線。刪除訂閱前,先確認是否會一併移除關聯項目;手動修改由訂閱產生的項目,也可能在下次更新時被覆蓋。

Connectivity Test 只會在特定測試條件下進行驗證

在 Home 使用 Connectivity Test 前,先到 Settings 確認 Test Method。不同方法可能只測試連接埠回應,也可能進一步向指定目標送出請求。測試通過不代表所有網站和應用程式都能使用;測試失敗時,也應先排除測試目標與方法的影響。將測試結果與實際目標連線一併檢視,比只依賴清單中的測試結果更可靠。

On Demand 按需連線

控制連線何時觸發,不能取代 Global Routing 與 [Rule]。

先確認手動連線正常,再啟用條件

On Demand 可讓系統依據已設定的條件觸發或維持 VPN 連線。先在 Home 手動連線,確認伺服器與 Config 運作正常,再到 Settings 的 On Demand 檢查開關及可設定條件。實際條件項目請以應用程式目前顯示為準;若涉及 Wi-Fi 或行動網路,請逐項確認適用範圍,避免將「自動連線」誤解為「自動選擇最快的伺服器」。

設定完成後,在預期的網路條件下重新測試,並查看 Home 的連線狀態。切換 Wi-Fi 與行動網路可能導致既有連線重新建立;短暫中斷不應直接歸因於規則語法。先確認觸發條件是否成立,再檢查連線建立後的路由。

暫停連線時也要檢查 On Demand

如果手動中斷後連線又重新建立,請先確認 On Demand 是否仍啟用,以及系統是否依據既有條件再次觸發。需要暫停時,先調整 On Demand,再操作連線開關,最後確認狀態沒有再次變更。不要在多個位置反覆操作,卻沒有記錄操作順序。

On Demand 無法修復過期憑證、錯誤連接埠或失效的設定。自動觸發後仍無法連線,請回到手動連線流程找出原因。工作網路若有特定連線要求,請先確認網路管理規範與本地資源的存取方式,再決定是否啟用自動觸發。

Data 流量統計

觀察計數變化以輔助驗證,不能取代網路帳單。

Data 用來查看應用程式可記錄的流量資訊。進入 Data 後,先確認目前頁面的統計範圍與計數說明,再觀察連線前後上傳、下載等數值的變化。不同檢視畫面的統計範圍可能不同,不要直接將單次連線、個別項目與長期累計數值相加比較。統計資料有更新時間,短時間內沒有明顯變化,也不能單獨證明請求沒有送出。

透過可重複的操作觀察變化

先關閉無關的背景網路活動,記下 Data 目前的計數,再開啟固定頁面或執行一次已知請求,接著回到 Data 比對新增數值。若要清除計數,先保存排查所需的紀錄,再使用頁面提供的重設功能。比較兩次測試時,應使用相同目標、相近的測試時間與相同統計範圍,避免將不同實驗條件造成的差異解讀為模式效能差異。

Data 中的計數不等於行動電信業者計費的流量,也不等於既有連線服務的用量紀錄。協定封裝、重傳、統計位置與計費週期都可能影響數值。判斷某個網域是否命中 PROXY 或 DIRECT,應搭配連線紀錄與目前規則檢查;只看到流量增加,無法確認所有請求都走同一條路徑。

Settings 常用項目

項目位置與欄位請以應用程式目前顯示為準,每次只修改一個變數。

Settings 中的功能可能與 Config 檔案共同影響連線。尋找以下項目時,先確認自己調整的是全域偏好設定、目前設定檔,還是系統權限;不要只因名稱相似,就認定它們屬於同一層。介面位置可能隨應用程式調整,以下以英文項目名稱協助辨識,不以固定列號描述選單。

DNS:先區分解析失敗與連線失敗

DNS 會將網域名稱解析為連線所需的位址。檢查 Settings 中的 DNS 相關選項,同時查看目前 Config 的 [General] 是否已設定 dns-server 等項目,避免只修改一處而漏掉另一處。排查時先保留原值,確認問題是網域無法解析、解析結果不符合預期,還是已有位址卻無法連線,再決定是否調整。

例如 dns-server = system 是一種使用系統解析設定的寫法,不能視為適用於所有網路的建議。變更 DNS 可能影響 IP 規則比對與實際連線目標,但無法修復伺服器驗證錯誤。測試後重新送出請求,並留意既有的解析快取;不要因單次測試成功,就認定所有網域都已恢復正常。

Test Method:確認 Connectivity Test 的測試內容

在 Settings 找到 Test Method,閱讀目前選項的說明後選擇測試方式;若該方式需要指定目標位址,也要確認目標本身可以連線。連接埠層級的回應與完成一次應用程式層級請求,是不同的判斷結果,因此不宜直接比較不同方法的測試結果。修改後回到 Home 重新執行 Connectivity Test,並以相同目標進行實際連線驗證。

測試結果主要用來輔助篩選與定位,不代表持續傳輸能力或所有請求的使用體驗。如果只有測試失敗,但實際使用正常,請先檢查測試方法與目標,而不是立刻重填所有伺服器資訊。

Today Widget:快速入口與系統顯示條件

Today Widget 可在系統支援的小工具位置提供快速檢視或操作入口。先檢查 Settings 中的 Today Widget 相關選項,再到系統的小工具編輯畫面確認是否能加入對應內容;實際可用形式取決於裝置系統與目前應用程式支援的功能。不要假設所有裝置都一定提供相同的小工具樣式。

快速入口仍需使用已儲存的伺服器、設定與連線權限。點選後應回到 Home 確認實際狀態,尤其是裝置剛完成資料回復、應用程式尚未完成初次設定時。小工具不是獨立的連線設定來源,也不能取代對目前 SERVER 的檢查。

iCloud:分開處理資料同步與已購項目

若要在多部裝置間保留設定,請檢查 Settings 中的 iCloud 同步選項,並確認系統允許 Shadowrocket 使用 iCloud。啟用前先備份重要設定,並核對兩部裝置上的既有內容,避免將同步誤認為可隨時回復的歷史封存。請實際檢查項目以確認同步完成,不要只以開關已開啟作為唯一依據。

App Store 的已購項目用於恢復應用程式的取得資格;iCloud 則用於同步應用程式支援的資料,兩者不是同一個步驟。更換裝置後,即使已安裝應用程式,仍需檢查伺服器資訊、Config 選擇與 VPN 授權。同步範圍請以應用程式內說明為準;伺服器憑證與訂閱內容可能屬於敏感資訊,使用前請確認登入帳號與裝置的存取權限。

Diagnostics:保留問題背景,再收集診斷資訊

遇到問題時,在 Settings 尋找 Diagnostics,依照應用程式提供的診斷或紀錄選項收集資訊。先記下故障時間、目前網路、Global Routing、選取的伺服器與失敗目標,再重現一次問題。這些背景資訊有助於區分 DNS 解析、驗證、傳輸或規則比對環節,比只保留一則錯誤訊息更有用。

分享紀錄前,請檢查網域、IP、訂閱網址、驗證欄位與個人存取內容,並移除不必要的敏感資訊。紀錄中出現某個請求失敗,不代表所有連線都無法使用;請依據發生時間與相同目標的重複測試判斷。排查完成後,恢復暫時調整的診斷選項,避免長期保留與日常使用無關的紀錄。

設定後的驗證順序

先確認基本連線,再加入流量分流與自動觸發。

  1. 確認既有輸入資料。在 Home 確認 SERVER;匯入訂閱後檢查項目是否完整,手動新增後檢查協定、位址、連接埠與驗證資訊。
  2. 建立可重複的連線測試。確認 Test Method,短時間使用 Proxy 進行對照,並連線至明確的目標。測試未通過時,先找出基本連線問題。
  3. 回到 Config 驗證規則。確認啟用的設定檔,檢查 [Rule] 的順序與 FINAL,再重新建立目標連線並查看對應紀錄。
  4. 最後啟用 On Demand。確認手動連線正常後,再測試觸發條件;切換網路後重新檢查狀態,不要混淆自動觸發與規則命中。
  5. 保存結果並還原暫時設定。記錄已驗證的設定,備份後再繼續調整;搭配 Data 和 Diagnostics 輔助確認,不要將單次測試結果視為最終結論。

初次設定可接著閱讀Shadowrocket 使用教學;需要逐行了解設定時,請參閱規則與設定參考。尚未購買應用程式時,請先查看開發者、官方圖示與應用程式 ID 的核驗步驟,再透過 App Store 取得。