Shadowrocket 分享連結格式與訂閱連結差異:ss://、vmess://、vless://、trojan://

單一分享連結包含一台伺服器的設定;訂閱連結則是可更新的伺服器清單。本文整理各種連結前綴的編碼結構,以及匯入 Shadowrocket 後的顯示差異。

本文重點

本文適合已取得服務設定,卻不確定該匯入哪種連結的 iPhone 與 iPad 使用者。內容將說明分享連結、訂閱網址與規則設定的差異,帶你辨識四種常見前綴中的驗證與傳輸欄位,最後在 Home 確認匯入結果與更新方式。所有範例皆為無法實際連線的示意資料;本站不提供、不販售也不推薦伺服器或訂閱。

1. 先分清單一分享連結、訂閱網址與規則設定

Shadowrocket(小火箭)中的伺服器參數、訂閱來源與分流規則屬於不同層次。分享連結包含一台伺服器的連線參數;訂閱網址指向可再次取得內容的遠端位置;規則設定則決定連線請求如何分流。即使它們都以文字或 URL 呈現,也不能互相取代。

內容類型通常包含內容匯入後的確認項目
單一分享連結協定、伺服器位址、連接埠、驗證資訊與選用的傳輸參數Home 中對應伺服器的編輯內容
伺服器訂閱網址遠端網址與存取憑證;回應內容包含伺服器清單Home 中的訂閱來源及其項目
規則設定分流規則、策略及其他設定內容,依檔案而異Config 中實際選用的設定與規則

https:// 網址不一定是伺服器訂閱,也可能指向登入頁面、說明網頁或規則設定。判斷依據應是既有服務提供的用途說明與回應內容,而不是網址看起來有多長。伺服器清單訂閱也不保證同時設定 DNS 或分流規則;匯入成功後,仍須檢查目前的 Global Routing。

2. ss:// 與 vmess://:Base64 編碼的內容並不相同

ss://:先確認加密方式與密碼,再找位址和連接埠

ss:// 代表 Shadowsocks 分享連結。常見的 SIP002 格式會將「加密方式:密碼」放在 Base64 編碼的 userinfo 中,伺服器位址與連接埠則保留在外部;較早期的格式也可能將整段連線資訊一併編碼。因此,不能一律用相同位置切分每一條 ss:// 連結。

解碼後的 userinfo 示意:
aes-256-gcm:demo-password

對應的伺服器資訊示意:
Server: example.com
Port: 8388
Method: aes-256-gcm
Password: demo-password

此處的 8388 僅為示意連接埠,並非 Shadowsocks 的固定連接埠。實際連接埠必須與既有服務設定一致。連結也可能包含 plugin 查詢參數,以及 # 後方的備註。備註僅供辨識項目,不能取代位址;若服務要求額外的外掛程式參數,只保留位址、密碼與連接埠可能無法連線。

vmess://:常見格式是以 Base64 編碼的 JSON

常見的 vmess:// 分享格式會將 JSON 物件編碼後放在前綴之後。下方是解碼後的閱讀範例,並非可直接貼入匯入欄位的完整連結。實際分享格式可能有所不同,請以匯入後顯示的欄位為準。

{
  "v": "2",
  "ps": "Demo VMess",
  "add": "example.com",
  "port": "443",
  "id": "00000000-0000-4000-8000-000000000001",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "example.com",
  "path": "/demo",
  "tls": "tls",
  "sni": "example.com"
}

判讀方式:能解碼,只代表文字結構可讀

Base64 是編碼方式,不是保護憑證的加密措施。辨識結構時,請在本機處理;不要將完整分享連結貼到線上解碼網站。匯入後先逐項確認協定、連接埠與傳輸參數,再測試連線。

3. vless:// 與 trojan://:URI 中不可缺少的欄位

vless:// 與 trojan:// 通常採用較易閱讀的 URI 結構:前綴後方是驗證資訊,@ 後方是伺服器位址與連接埠,? 後方是查詢參數,# 後方則是備註。內容可讀不代表不敏感,驗證資訊仍應視同密碼妥善保管。

vless://[email protected]:443?encryption=none&security=tls&type=ws&host=example.com&path=%2Fdemo&sni=example.com#Demo-VLESS

trojan://[email protected]:443?security=tls&sni=example.com#Demo-Trojan
欄位或位置意義確認方式
@ 之前VLESS 範例使用 UUID;Trojan 範例使用密碼請勿互換這兩種驗證資訊
example.com:443伺服器位址與連接埠連接埠請以既有服務參數為準
security=tls分享格式中的 TLS 設定確認匯入後的 TLS 設定與憑證名稱
sniTLS 握手使用的伺服器名稱須與服務提供的名稱一致,勿任意改成位址
type=ws、host、pathWebSocket 傳輸及其請求參數路徑大小寫、斜線與 Host 都須完整無誤
#Demo-VLESS顯示備註修改備註無法修正驗證或傳輸錯誤

VLESS 範例中的 encryption=none 描述的是協定相關參數,不能據此判定整條連線未使用 TLS;是否啟用 TLS,還須確認 security 與匯入後的實際設定。同樣地,看到 443 只能確認連接埠數字,不能證明憑證驗證、SNI 或 WebSocket 路徑正確。

URL 中的特殊字元可能需要百分比編碼。範例中的 %2Fdemo 解碼後是 /demo。手動處理時,請勿反覆解碼後再重新組成連結,也不要將原本屬於密碼的 @ 或 # 誤認為結構分隔符。若 IPv6 位址位於 URI 的主機欄位,通常須加上方括號,以免位址中的冒號與連接埠分隔符混淆。

4. 訂閱網址:保留遠端來源,更新伺服器清單

伺服器訂閱通常是一個 HTTPS 網址,例如下方的明顯虛構網址。匯入時,Shadowrocket 必須連線至該網址並解析回應,才能建立可選用的伺服器項目。回應可能是包含多條分享連結的文字,也可能經過整體編碼;不能只憑訂閱 URL 推測其中使用的是 Shadowsocks、VMess、VLESS 還是 Trojan。

https://example.com/sub?token=xxxx

匯入方式:依現有資料類型選擇入口

已有單一分享連結
  • 複製完整的 ss://、vmess://、vless:// 或 trojan:// 內容。
  • 在 Home 使用新增入口匯入,或掃描包含該文字的 QR Code 匯入。
  • 開啟新增項目,確認 Type、位址、連接埠與驗證欄位。
  • 參數變更後,須重新匯入或手動修正對應項目。
已有伺服器訂閱網址
  • 前往 Home → + 的新增頁面,將 Type 設為 Subscribe。
  • 在 URL 欄位填入完整網址,保留路徑、查詢參數與 token。
  • 儲存並取得清單,確認來源下方是否出現預期的伺服器。
  • 需要同步遠端變更時,請更新該訂閱,不要重複新增相同來源。

掃描 QR Code 與使用剪貼簿只是輸入方式;QR Code 中裝的是單一分享連結還是訂閱網址,才會決定匯入後的管理方式。

更新訂閱代表再次取得遠端來源,項目數量、名稱、位址與憑證都可能改變。更新成功不代表目前選取的伺服器一定能連線,也不代表流量規則已設定正確。更新前請記下目前使用的項目;不要假設對訂閱項目所做的本機修改會永久保留,下次更新時相關欄位可能會重新建立。

5. 匯入後,分別檢查 Home、Config 與 Settings

Home 用於查看與選取伺服器,是確認匯入結果的起點;Config 用於管理規則設定;Settings 則包含 App 設定。不要因分享連結中有 type=ws,就把它當成 Config 中的分流規則。協定傳輸方式決定如何連線至伺服器;規則則決定哪些請求採用哪種策略,兩者屬於不同層次。

  1. 先在 Home 開啟新增項目的編輯頁面,確認 Type 與原始前綴相符,再檢查伺服器位址、連接埠、驗證資訊及 TLS、傳輸參數。
  2. 若匯入的是訂閱,請確認該項目確實隸屬於預期來源,而不是先前新增的同名獨立項目。
  3. 確認 Global Routing。日常使用規則分流時,請確認 Config 已選取,並在 Config 頁面選好預期的設定。
  4. 選取自己有權使用的伺服器,開啟連線並完成系統 VPN 設定授權,再實際測試網路請求。
  5. 若要確認自動重新連線行為,再檢查 Settings → On Demand;這不是訂閱更新開關,也不會補上缺少的伺服器參數。

Config:依目前設定分流

建議

須先有有效的規則設定才能使用。請求會依目前設定比對處理,不能簡單認定未命中的請求都會直連;最終處理方式取決於設定中的預設策略。

適用情況:已確認規則,需要依網域或 IP 分流的日常使用

Proxy:暫時排除規則影響

將可透過 Proxy 處理的請求交由目前選取的代理處理,用來對照 Config 下的結果。這無法修正伺服器密碼、TLS 或傳輸參數,也不能取代完整的網路測試。

適用情況:使用同一台伺服器,暫時確認問題是否與分流規則有關

Direct:直連對照

以直連方式處理請求。此時網頁能開啟,不能證明剛匯入的伺服器可用,因為該請求可能根本沒有經過它。

適用情況:確認本機網路基本連線,作為短時間的排查對照

規則設定中的 DOMAIN-SUFFIX 用來比對網域後綴,GEOIP 與 IP-CIDR 用於比對相應的 IP 條件;FINAL 則負責處理未符合前序規則的請求。這些不是四種分享連結的查詢參數,也不會因匯入伺服器而自動依使用需求產生設定。想進一步了解規則設定,可參閱使用教學或疑難手冊。

6. 匯入與更新常見問題

複製連結後沒有出現伺服器,是協定不正確嗎?

先確認複製的內容從協定前綴開始,沒有混入「點擊匯入」等說明文字,也沒有被通訊 App 插入換行。回到 Home → + 確認新增類型;單一分享連結應作為伺服器內容處理,HTTPS 訂閱則選擇 Subscribe。若仍無法辨識,請檢查原始完整連結,不要自行替換前綴。

QR Code 掃描成功,為什麼仍然無法連線?

掃描成功只表示 QR Code 文字可讀取。先開啟 Home 中的項目,確認連接埠完整,再檢查 UUID 或密碼、SNI、WebSocket 路徑等欄位。QR Code 內容可能已過期,也可能只是某個網頁網址;掃描提示不代表伺服器可正常使用。

延遲測得數值,但網頁仍無法開啟,怎麼辦?

延遲結果無法涵蓋驗證、DNS、TLS 與目標網站的完整存取流程。先確認選取的是剛核對過的伺服器,再暫時比較 Global Routing → Proxy 與 Config 的結果。若只有 Config 異常,請檢查規則比對結果;若兩者都失敗,繼續檢查驗證、TLS 與傳輸參數,不要只修改顯示名稱。

更新訂閱後出現同名項目,該刪除哪一個?

先在 Home 區分獨立項目與訂閱來源下的項目,再比較位址、連接埠與協定。名稱相同不代表連線參數相同。確認不再需要舊的獨立項目後再移除;若只是重複新增同一訂閱,請保留已確認有效的來源,避免日後兩份清單分別更新。

訂閱網址逾時,可以把連接埠改成 443 嗎?

不要用猜測的連接埠取代原有參數。HTTPS 訂閱網址的存取連接埠,與清單中伺服器的連線連接埠是兩回事。先檢查目前網路是否能連到該來源、URL 是否完整,以及 token 是否有效;即使網頁有回應,若回傳的是登入頁面,也不能視為訂閱更新成功。

7. 最後確認:結構正確、來源有效、請求符合預期

匯入完成後,應分別確認「文字已成功辨識」、「伺服器參數正確」以及「請求確實依預期路徑完成」。這三項結果不能互相取代。成功匯入只是建立本機記錄;成功更新只是取得遠端內容;實際存取仍取決於伺服器狀態、目前網路、DNS 與路由設定。

下一步:一次只調整一個層面

先保留原始連結並核對匯入欄位;確認欄位正確後再檢查連線;連線確認後才調整規則。不要同時變更連接埠、TLS 與 Global Routing,否則即使恢復存取,也難以判斷是哪項調整生效。

App Store 正版入口先確認,再購買