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

解析四種分享連結的結構與編碼,說明單筆連結和訂閱連結在匯入、更新上的差異,並整理無法辨識時的檢查方式。

本文速覽

Shadowrocket(小火箭)的單筆分享連結包含一組連線參數;訂閱連結則指向可更新的遠端清單。本文適合已從自己的服務商取得連線資料,準備匯入或排查辨識問題的使用者:先依連結前綴判斷類型,再檢查編碼、位址、憑證與傳輸參數,最後分別確認「成功匯入」與「成功連線」。

一、先辨別單筆分享連結與訂閱網址

ss://、vmess://、vless:// 和 trojan:// 是常見的單筆連線資料協定前綴,內容包含伺服器位址、連接埠、身分憑證,以及可能設定的傳輸參數。將文字轉成 QR Code 只是改變傳遞方式,不會讓單筆連結自動變成訂閱連結。

訂閱通常是 https:// 網址。Shadowrocket 會向該網址發出請求,取得伺服器回傳的清單,再解析其中的項目。清單內容可以更新,但網址本身不一定會變。不能只因網址以 HTTPS 開頭,就認定它一定是訂閱連結;一般網頁、登入頁面和錯誤提示頁都不是連線清單。

4 種
本文解析的前綴:ss / vmess / vless / trojan
1 筆
一般單筆分享連結描述一組連線參數
443
下文 TLS 範例使用的連接埠,並非所有服務的固定連接埠

二、ss://:先確認 Base64 編碼範圍

Shadowsocks 常見的 SIP002 分享格式,是在 ss:// 後放入經 Base64 編碼的 method:password,再以 @ 接上伺服器位址與連接埠。以下範例的編碼部分 YWVzLTEyOC1nY206dGVzdA 解碼後為 aes-128-gcm:test。

ss://[email protected]:8388#Demo%20SS

另一種舊式寫法會將整段 method:password@host:port 編碼,因此看到 Base64 時,不能一概只解碼 @ 前的部分。部分連結也包含 plugin 查詢參數;外掛名稱及其選項都是連線資料的一部分,複製時不可截掉問號後的內容。

Base64 與 URL 百分比編碼是不同層次。Base64 可能包含 +、/,並以 = 結尾;URL-safe Base64 使用的字元則有所不同。不要手動將所有 + 換成空格,也不要為每個連結一律補上固定數量的等號。請優先取得完整原文,交由匯入器處理相應格式。

三、vmess://:編碼內容通常是 JSON

常見的 VMess 分享格式是 vmess:// 加上經 Base64 編碼的 JSON。與前一節不同的是,解碼結果通常不是一行「密碼加位址」,而是一組帶有欄位名稱的資料。以下是解碼結果範例,不能直接貼上作為分享連結。

{
  "v": "2",
  "ps": "Demo VMess",
  "add": "example.com",
  "port": "443",
  "id": "11111111-1111-4111-8111-111111111111",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "example.com",
  "path": "/demo",
  "tls": "tls",
  "sni": "example.com"
}
欄位檢查內容
add / port實際連線使用的伺服器與連接埠;連接埠必須是有效數字,不能混入全形冒號。
id / aidUUID 與 Alter ID;依伺服器端資料填寫,不要把 UUID 當成一般密碼任意修改。
net / host / path傳輸方式及其附加參數;WebSocket 路徑中的斜線與大小寫都應保留。
tls / sniTLS 設定與伺服器名稱;不能只因連接埠是 443,就推定所有設定值。

範例中的 v 是分享格式欄位,不是 Shadowrocket 的應用程式版本。不同產生器可能輸出不同的欄位組合,不要假設缺少的欄位都能使用相同預設值。匯入後應開啟項目詳細資料,對照原始資料核對 UUID、傳輸方式、TLS 與路徑;備註和位址正確,並不足以證明其他參數也正確。

四、vless:// 與 trojan://:結構相似,憑證不同

這兩種常見分享格式都能直接看到 @ 後方的位址與連接埠,並透過問號後的查詢參數設定安全層或傳輸方式。但外觀相似不代表協定相同,尤其不可互換 VLESS 的 UUID 與 Trojan 的密碼。

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

trojan://[email protected]:443?security=tls&type=tcp&sni=example.com#Demo%20Trojan

這些範例只涵蓋常見格式,並非所有傳輸組合的完整範本。若原始連結帶有額外參數,請保留原文並確認目前的用戶端是否能對應到相關選項。不要只因「匯入沒有錯誤」就刪除不理解的參數,也不要用關閉憑證驗證來取代對 SNI、系統時間與憑證設定的檢查。

五、在 Home 匯入後,分開管理清單與規則

單筆連結與訂閱的維護方式不同:前者通常會建立獨立項目,後者則保留遠端清單的來源關聯。更新訂閱時,項目可能同步新增、刪除或重新建立,因此不應將訂閱項目的本機修改視為永久保留的伺服器端參數。

  1. 向你的服務商取得完整原文。先判斷內容是單筆協定連結、QR Code,還是訂閱網址;不要複製說明文字、引號或聊天訊息中的省略號。
  2. 單筆連結請使用用戶端的剪貼簿匯入入口,QR Code 則使用掃描入口;完成匯入後,返回 Home 檢查新增項目。
  3. 請在 Home → + → Type → Subscribe 新增訂閱網址,並填入完整 URL 與容易辨識的備註。不同平台的入口排列可能不同,請選擇名稱相同的訂閱類型。
  4. 執行訂閱更新後,檢查項目數量與錯誤提示。範例網址 https://example.com/sub?token=xxxx 僅用來說明 URL 結構,不會提供實際清單。
  5. 開啟項目詳細資料核對參數,再選取要使用的項目並啟用連線;規則設定需在 Config 中另外管理,不要將一般節點清單誤認為完整的規則設定。

測試連線時,也要檢查 Global Routing。此設定會影響請求是否使用已選取的項目,但無法將錯誤的分享連結修正為正確參數。下方比較的是 Shadowrocket 本身的路由模式;「建議」標記適用於日常已設定規則的情境。

Config

建議

依目前設定的規則決定流量路徑。是否符合 PROXY,應以請求記錄中的實際比對結果為準。

適用情境:已設定規則,需確認日常分流狀況的使用者

Proxy

讓用戶端接管的流量使用代理路徑,方便暫時排除規則未命中所造成的影響。

適用情境:單獨檢查已匯入項目的連線能力

Direct

使用直連路徑。此時網頁能開啟,並不能證明已匯入項目的代理連線可用。

適用情境:比對本機網路的直接連線狀況

結論:每次只驗證一個環節

先確認項目參數完整,再暫時使用 Proxy 測試連線,最後切回 Config 檢查規則命中情況。如此可區分解析錯誤、連線錯誤與分流結果,避免同時修改多處而無法定位原因。

六、無法辨識時,依序檢查文字、編碼與回應

「無法辨識連結」與「連線逾時」發生在不同階段。前者出現在解析文字或訂閱內容時;後者通常是在取得參數並開始連線後發生。先記下錯誤出現的步驟,再判斷要重新複製資料,還是檢查網路與伺服器設定。

已複製連結,為什麼沒有出現可匯入的項目?

將原文貼到本機純文字編輯器檢查,確認開頭是完整的協定前綴,結尾沒有聊天訊息中的標點,內文也沒有因換行或空格而遭截斷。若拿到的只有 QR Code 截圖,請掃描 QR Code,而不是複製圖片檔名。

vmess:// 解碼後看起來是亂碼,應該修改哪裡?

先確認複製的是完整 Base64 字串,並分辨標準 Base64 與 URL-safe Base64;不要反覆對整串內容執行 URL 解碼。常見的 JSON 格式解碼後應能看到 add、port、id 等欄位;若內容不完整,請重新取得原始連結,不要猜測 UUID 並自行補齊。

訂閱網址能在瀏覽器開啟,為什麼更新仍然失敗?

瀏覽器開啟後可能顯示登入頁、驗證頁或錯誤頁,不代表回傳的是清單。請確認完整查詢參數都有保留;若回應顯示 401 或 403,請向你的服務商確認存取憑證與權限;若顯示 404,則確認路徑是否有效。不要將網頁內文當成節點清單貼上。

匯入成功但連線失敗,是編碼有問題嗎?

先核對伺服器位址、連接埠、密碼或 UUID,再檢查 TLS 的 SNI、WebSocket 的 Host 與路徑。若出現憑證相關錯誤,請檢查系統時間與憑證名稱;若連線逾時,請檢查網路連通性與服務狀態。編碼可以解析,不代表伺服器一定接受這些參數。

更新訂閱後,手動修改的備註或參數為什麼變了?

更新時可能會依伺服器清單重新建立項目。請先對照服務商提供的最新參數,確認變更是否來自遠端內容;若需要保留本機調整,請明確區分獨立項目與訂閱項目,避免在多個副本中誤選舊資料。

完成排查後,回報問題時只提供協定名稱、失敗階段與已去識別化的錯誤資訊。伺服器位址、UUID、密碼、訂閱 token 與 QR Code 都可能涉及存取權限;需要展示結構時,可像本文一樣保留欄位名稱並替換實際值。完整資料只應透過必要且受控的管道提供。

下載 Shadowrocket