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

認識四種分享連結的結構與編碼,了解單一連結和訂閱連結在匯入、更新及管理上的差異。範例皆為虛構資料。

本文重點

本文適合已持有自己的服務商設定與訂閱,並需要在 Shadowrocket 中辨識及匯入連結的使用者。先分清單一連線參數與訂閱網址,再核對編碼、驗證及傳輸欄位,最後區分匯入失敗、訂閱更新失敗與連線失敗。文中的網域、密碼、UUID 和 token 均為示範用虛構資料,無法用於實際連線。

一、先釐清:分享連結提供連線參數,訂閱連結則是更新入口

Shadowrocket(小火箭)可以將分享連結中的參數解析為連線項目。以 ss://、vmess://、vless:// 或 trojan:// 開頭的文字,通常描述伺服器的協定、位址、連接埠及驗證資訊;部分格式還包含 TLS、傳輸方式與備註。這不是要在瀏覽器中開啟的一般網頁網址。

訂閱連結通常是 HTTPS 網址。用戶端會向該網址取得內容,再將回應中支援的連線項目加入相應訂閱。它的用途是提供可重複取得清單的入口,而非將所有連線資訊寫在網址列中。只看 https:// 前綴,無法確認這是訂閱連結:它也可能指向登入頁面、錯誤頁面或一般說明頁。

4 種
本文解析的分享連結前綴:ss / vmess / vless / trojan
443
本文 TLS 範例連接埠,並非所有服務都固定使用此連接埠
8388
本文 Shadowsocks 範例連接埠,實際設定請以現有資料為準
檢查項目單一分享連結訂閱連結
主要內容單一連線項目的參數取得連線清單的遠端網址
匯入方式主要在本機解析文字需要連線至網址並解析回應
後續變化原始分享文字不會自行變更更新時可取得遠端清單的變動
敏感資訊密碼、UUID、伺服器資訊網址中的 token 及回傳的設定

單一分享連結也不等於完整的 .conf 設定檔。匯入一台伺服器,通常不會一併取代 Config 中的 [Rule]、[Host] 等內容。伺服器決定連線目的地,規則則決定各項請求採用何種策略,兩者應分開核對。

二、ss://:辨識 Shadowsocks 的驗證資訊編碼

ss:// 是常見的 Shadowsocks 分享連結前綴。常見的 SIP002 格式會將加密方法與密碼組成 method:password,再以 Base64URL 編碼並放在 @ 前;伺服器位址與連接埠仍可直接讀取。下方範例的驗證資訊解碼後為 aes-128-gcm:password,密碼僅供示範。

ss://[email protected]:8388#Demo-SS

另一種較舊的分享格式會將包含伺服器位址在內的較長內容整段以 Base64 編碼,因此不能只靠「是否含有 @」判斷格式。含外掛參數的連結也可能帶有查詢字串;若來源設定需要外掛或額外傳輸參數,不可為了縮短文字而自行刪除。

三、vmess://:先還原 JSON,再核對欄位含義

常見的 vmess:// 分享格式會先將 JSON 文字以 Base64 編碼,再接在前綴後方。解碼結果應是結構完整的 JSON,而非網頁 HTML。以下是用來說明欄位的解碼內容,不是可直接貼上匯入的完整連結。

{
  "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"
}
欄位範例含義檢查重點
add / port伺服器位址與連接埠請勿與 HTTP Host 或 SNI 混淆
id / aidUUID 與 alterId驗證參數應與現有伺服器設定一致
net / pathWebSocket 傳輸與請求路徑/demo 的大小寫及斜線都是設定內容的一部分
host / sniHTTP Host 與 TLS Server Name兩者可能相同,但用途不同
ps / v備註與分享格式識別欄位v 不是 Shadowrocket 的版本號

不同來源產生的 VMess 分享內容可能有欄位差異,不能只憑某個欄位是否存在,就推斷服務一定可用。匯入後請開啟該項目的編輯頁面,核對驗證、傳輸方式及 TLS 參數是否正確辨識。成功顯示名稱只代表用戶端讀取到部分資訊,不表示伺服器接受這些參數。

四、vless:// 與 trojan://:URI 欄位可讀,不代表傳輸內容未加密

這兩種連結常採用容易辨識的 URI 結構:驗證資訊位於 @ 前,伺服器資訊則在後方,查詢參數用來描述傳輸或安全設定。連結欄位是否容易閱讀,與實際連線是否使用 TLS,是兩回事。以下兩個範例皆使用虛構驗證資訊及保留作示範用途的網域。

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&type=tcp&sni=example.com#Demo-Trojan

如果密碼包含 @、#、? 等分隔符號,產生連結的一方應正確進行百分比編碼。手動組合時若漏掉編碼,用戶端可能會將部分密碼誤判為伺服器、查詢參數或備註。也不要將已編碼的 %2F 再編碼成 %252F,否則路徑可能不再是原本的值。

判斷方式:匯入後核對欄位,不要只靠前綴猜測相容性

先檢查伺服器、連接埠與驗證資訊,再檢查傳輸及 TLS。尤其是連結含有額外安全參數或特定傳輸選項時,應以用戶端實際解析結果和伺服器端要求為準;不要刪除不明欄位或關閉憑證驗證來嘗試「修復」連結。

五、匯入與更新訂閱:保留來源,勿將本機修改當成遠端設定

以下是明顯虛構的訂閱網址,僅用來說明網址格式:路徑用於定位訂閱介面,查詢參數中的 token 通常用來識別存取權限。真實訂閱的路徑、參數名稱與回應格式,取決於使用者現有的服務商。

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

訂閱回應可能是由支援的分享連結組成的文字清單,也可能是這些文字經 Base64 編碼後的內容。網址即使回應狀態正常,若回傳的是登入頁面,也無法作為有效的連線清單匯入。QR Code 只是承載文字的另一種方式:掃描後取得的是單一分享連結還是訂閱網址,取決於其中實際編碼的內容。

  1. 複製完整的現有訂閱網址,避免連同聊天文字中的句號、引號或換行一起複製。保留原始 token,不要自行補上或刪改。
  2. 在 Home 點選右上角的 +,進入新增項目頁面,選擇 Type → Subscribe,在 URL 填入網址,並以 Remarks 標示來源後儲存。
  3. 首次取得完成後,回到 Home 檢查對應的訂閱及其項目。開啟其中一個項目的編輯頁面,確認類型、位址、連接埠及驗證欄位都有內容。
  4. 需要重新整理時,使用 Home 中對應訂閱的更新功能。更新後先檢查項目清單是否有變化,再測試實際連線;「更新成功」不代表清單中的每台伺服器都可使用。

管理方式:分開管理遠端訂閱與本機測試副本

保留遠端訂閱
  • 儲存原始 URL 與來源備註。
  • 透過更新功能取得清單項目的新增、刪除及參數變更。
  • 更新前先記下需要保留的自訂修改。
另外維護測試項目
  • 需要測試修改時,另建備註清楚的項目。
  • 一次只修改一項參數,方便比較結果。
  • 測試結束後,確認 Home 目前選取的項目。

訂閱更新可能覆蓋或重建來源項目,請勿依賴訂閱中的暫時修改長期保留。

六、匯入後:透過 Global Routing 區分連線與規則問題

Home 用來管理連線項目及目前選取項目,Config 用於設定檔,Settings 則是用戶端設定。匯入單一連結後,若網頁仍無法存取,不要立刻認定連結格式有誤:請求也可能沒有使用剛匯入的項目,或被目前規則分配到其他策略。先記下 Home 目前的選取項目,再查看 Global Routing。

Config

建議

依照目前設定中的規則決定策略。日常使用已有規則設定時,應一併核對命中的規則及其引用的策略,而不只查看 Home 中的選取項目。

適用情況:已準備好規則設定,並需要依規則處理請求。

Proxy

將由用戶端處理的請求以代理方式處理,可用來暫時對照目前連線狀況。這不代表裝置上的所有通訊都一定會經過代理;測試後請恢復原本設定。

適用情況:短時間排查規則分流是否影響測試結果。

Direct

採用直連方式,不適合用來驗證剛匯入的代理伺服器。此時網頁能開啟,也無法證明分享連結中的驗證參數正確。

適用情況:對照目前網路的直連狀況。

Global Routing 也包含用於切換情境的 Scene,相關行為須配合現有情境設定檢查。它不是新的協定,也不能取代伺服器驗證。若已設定自動連線條件,也請檢查 Settings → On Demand,避免將自動重新連線誤認為匯入操作未儲存。

七、常見問題:依失敗階段排查,別反覆改寫連結

複製了 ss://,為什麼匯入失敗?

先確認文字是否以 ss:// 開頭,以及通訊軟體是否插入換行、空格或省略號,再核對編碼內容是否完整。不要只複製畫面上遭截斷的預覽文字。若匯入後已出現項目但連線失敗,應檢查驗證資訊與網路,而不是反覆嘗試不同次數的 Base64 解碼。

訂閱網址在瀏覽器中可以開啟,為什麼清單仍是空的?

能開啟只代表取得了某種回應。請確認這是現有服務商提供的訂閱入口,而非帳戶管理頁面;並檢查 token 是否完整、是否需要重新取得授權。若回應內容是登入頁面或錯誤訊息,應先處理網址及權限問題,不可將網頁內容改成分享連結前綴後強行匯入。

訂閱更新顯示逾時,需要重新新增所有項目嗎?

先保留現有設定,確認目前網路能否存取訂閱網址。若該網址確實需要透過現有可用連線才能存取,可在 Settings → Subscribe 檢查 Update via Proxy,再回到 Home 重試更新。驗證錯誤或 token 失效並非網路逾時,切換存取路徑也無法取代重新取得有效授權。

把 vmess:// 改成 vless:// 就能轉換協定嗎?

不能。VMess 常見分享內容是經編碼的 JSON,VLESS 常見分享結構則直接包含 UUID、伺服器及查詢參數;兩者的驗證方式與協定行為也不同。請向現有服務商取得對應協定的完整設定,再於 Home 新增並核對參數,不能只替換開頭幾個字元。

傳連結截圖請別人協助排查,只遮住密碼就夠了嗎?

不夠。UUID、訂閱 token、QR Code 及編碼後的驗證字串都可能提供存取權限。回報問題時請改用文字描述協定、連接埠、傳輸方式及錯誤階段,並移除完整連結。若真實憑證已外洩,應透過原服務的管理管道更換或撤銷相應憑證,再更新用戶端儲存的內容。

排查時請依明確順序進行:原始文字是否完整、格式是否正確解析、遠端請求是否成功、驗證資訊是否相符,以及規則是否採用預期策略。每次只變更一個條件,並記錄變更前後的現象;比起同時重建訂閱、切換協定及修改規則,這樣更容易找出原因。

App Store 正版查核