Shadowrocket 小火箭節點連結格式:ss://、vmess://、vless://、trojan:// 與訂閱連結差異

認識常見分享連結的組成與編碼方式,了解單一節點連結和訂閱網址在匯入及更新上的差異。範例均使用 example.com 虛構資料。

本文摘要

本文適合已備有服務商提供的設定或訂閱,並準備在 iPad 或 iPhone 上匯入 Shadowrocket(小火箭)的使用者。先從連結前綴分辨單一節點與訂閱,再逐項確認位址、連接埠、認證資訊及傳輸參數,最後說明匯入、更新與故障檢查方式。所有範例皆為無法實際連線的虛構資料;本站不提供、銷售或推薦節點、訂閱及其他連線服務。

一、單一分享連結與訂閱網址的差異

單一分享連結描述一筆連線設定,通常包含協定、伺服器位址、連接埠及認證資訊。訂閱網址則是取得設定內容的入口:Shadowrocket 會向該網址發出請求,再將回傳內容解析為一筆或多筆項目。因此,複製一條 ss:// 連結和儲存一個訂閱網址,匯入的內容及後續更新方式並不相同。

輸入格式主要內容更新方式
ss://Shadowsocks 連線參數通常需重新匯入或手動編輯
vmess://VMess 編碼設定,常見格式為經 Base64 編碼的 JSON通常需重新匯入或手動編輯
vless://VLESS 的 UUID、端點及查詢參數通常需重新匯入或手動編輯
trojan://Trojan 的密碼、端點及查詢參數通常需重新匯入或手動編輯
https://example.com/sub?token=xxxx用來取得設定內容的範例網址透過更新訂閱重新取得

不能只憑 https:// 就判定網址是訂閱。一般網頁、帳戶頁面和訂閱入口都可能使用 HTTPS;只有服務商明確提供的訂閱網址,且回應內容可由目前的用戶端解析,才適合透過 Subscribe 匯入。訂閱回應也不一定包含多筆節點,即使只有一筆,仍可保留遠端更新機制。

判斷方式:需要同步變更,就保留訂閱入口

如果同時持有訂閱網址和從中複製的單一連結,請依需求選擇:需要同步項目變更時,儲存訂閱;只需獨立保留一筆設定時,匯入單一連結。單獨複製的項目不會因此自動連結到原訂閱。

二、先看懂連結的通用結構

多數 URI 格式的分享連結可拆分為 scheme、認證資訊、主機與連接埠、查詢參數及備註。各協定對這些部分的定義不同,不能把某個協定中的使用者名稱位置直接當成另一個協定的密碼位置。以下以 Trojan 說明結構,密碼和位址皆為虛構資料。

trojan://[email protected]:443?security=tls&sni=example.com#Demo-Trojan
8388
下文 Shadowsocks 範例使用的連接埠,並非固定要求
443
本文 TLS 範例使用的連接埠,實際設定請以現有設定為準
1–65535
連線設定可填寫的一般目標連接埠範圍

百分比編碼和 Base64 是兩回事。例如,備註中的空格可寫成 %20;Base64 則是將一段位元組轉換為可傳遞的字元文字。兩者都不是憑據加密。分享連結、QR Code 和訂閱 URL 可能直接包含存取憑據,不宜貼到公開留言區,也不要貼入來源不明的線上解碼頁面。

三、ss://:辨識加密方法與編碼範圍

Shadowsocks 常見的 SIP002 分享格式為 ss://userinfo@host:port#remark。對於常見的 AEAD 設定,userinfo 通常是以 URL-safe Base64 編碼的 method:password。以下編碼部分解碼後為 aes-128-gcm:demo-password。

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

解碼後的認證欄位:
aes-128-gcm:demo-password

伺服器:example.com
連接埠:8388
加密方法:aes-128-gcm
密碼:demo-password

也可能遇到將 method:password@host:port 整體編碼的舊式連結。這兩種格式都不能用「固定擷取前幾個字元」的方式解析。Base64 文字末尾的 = 填充有時會省略;URL-safe 格式也可能使用 - 和 _,不能只因缺少填充就判定連結已損毀。

四、vmess://:外層 Base64 與內層 JSON

常見的 VMess 分享格式會在 vmess:// 後方放置經 Base64 編碼的 JSON。表面上看不到 @host:port,不代表缺少位址;位址和連接埠是放在 JSON 欄位中。以下僅展示一種常見格式解碼後的內容,並非可直接貼上匯入的完整 URI。

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

此範例中的 add 是連線位址,id 是明顯虛構的 UUID,net 表示 WebSocket 傳輸,path 是 WebSocket 路徑。host 與 sni 可能分別用於 HTTP Host 和 TLS SNI,不一定等同於連線位址。欄位 v 描述這種分享結構,並非 Shadowrocket 的 App 版本號。

五、vless:// 與 trojan://:結構相似,憑據不同

這兩種分享連結常採用可直接閱讀的 URI 結構。VLESS 通常在 @ 前放置 UUID,Trojan 則放置密碼。兩者都可能帶有傳輸和 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&sni=example.com#Demo-Trojan
檢查項目VLESS 範例Trojan 範例
認證資訊UUID密碼
傳輸方式type=ws 表示 WebSocket本例未指定額外的傳輸封裝
TLSsecurity=tlssecurity=tls
名稱驗證相關欄位sni=example.comsni=example.com

VLESS 的 encryption=none 不能解讀為「整個連線沒有 TLS」。它和 security=tls 是不同層次的設定。也不能因為連接埠是 443,就推斷憑證一定有效;憑證、SNI 和實際服務設定必須相符。遇到驗證錯誤時,應檢查現有設定,不應把停用憑證驗證當成一般修復方式。

本文列出的四種前綴並非完整的協定清單。Hysteria2、WireGuard 等協定有各自的參數格式和匯入要求,不能直接套用本文的欄位表。即使是同一種協定,分享格式也可能有所擴充;成功解析成項目只代表匯入完成,不代表所有參數都與伺服器設定相符。

六、在 iPad 和 iPhone 上匯入與更新

Shadowrocket 的 Home 用於查看連線狀態和伺服器項目,Config 用於管理設定檔,Settings 用於調整 App 設定。訂閱 URL 不應當作伺服器網域填寫,也不能只憑副檔名就認定是 Config 檔案。請先確認手上的內容是單一連結、訂閱入口還是完整設定,再選擇對應的匯入方式。

  1. 確認 App

    請從 App Store 取得 Shadowrocket,並核對開發者是否為 Shadow Launch Technology Limited。此 App 為一次買斷的閉源商業軟體;買斷用戶端 ≠ 連線服務方案。iPhone、iPad 的系統需求請以 App Store 頁面標示為準。

  2. 匯入單一連結

    複製自己持有的完整分享連結,回到 Home;出現剪貼簿匯入提示時,確認內容後再新增。若沒有提示,可點選 Home 右上角的「+」,選擇對應的 Type,依原始設定逐項填寫,不要將整條 URI 填入伺服器位址欄。

  3. 新增訂閱

    Home 右上角「+」→ Type → Subscribe,在 URL 欄貼上自己的訂閱網址並儲存。範例網址為 https://example.com/sub?token=xxxx,僅用來說明格式。

  4. 檢查更新

    回到 Home,下拉以重新整理訂閱,並確認該訂閱群組是否已載入項目。更新可能新增、移除或修改項目;若有需要保留的手動設定,請先另行記錄再執行更新。

  5. 測試連線

    選擇一筆現有項目,連線時依系統提示允許加入 VPN 設定,再使用 Home → Connectivity Test 檢查。同時確認 Home → Global Routing;匯入節點不會讓 Direct 自動變成 Proxy 或 Config。

訂閱主要用來取得及同步項目,不代表已完成完整的規則分流設定。使用 Global Routing → Config 時,也應檢查 Config 中目前使用的設定與目標策略。DOMAIN-SUFFIX、GEOIP、IP-CIDR 和 FINAL 是規則關鍵字,不是節點分享協定;訂閱更新成功,也不能證明規則已依預期比對。

七、分別檢查匯入失敗、更新失敗與連線失敗

請依發生階段逐一排查:儲存前出現格式錯誤,優先檢查連結文字;訂閱請求失敗,檢查訂閱入口與網路路徑;項目已顯示但無法連線,則檢查認證、傳輸和路由。混淆這三個階段,容易反覆修改原本正確的設定。

複製後沒有辨識出來,代表連結壞了嗎?

先確認前綴完整,移除文字外層的引號、說明文字和程式碼圍欄,並確認整條連結中的 & 沒有變成字面文字 &。如果只是沒有出現剪貼簿提示,可從 Home →「+」手動確認對應的 Type,不要因此修改協定前綴。

訂閱更新逾時,要先更換協定嗎?

先確認 Subscribe 的 URL 仍有效、token 完整,並檢查目前網路是否能連到訂閱入口。只有在已有可用代理,且訂閱入口必須透過代理存取時,才到 Settings → Subscribe 檢查 Update via Proxy;這個選項無法修復失效的憑據或錯誤網址。

項目可以匯入,為什麼還是無法連線?

開啟項目,核對位址、連接埠、密碼或 UUID,再確認 TLS、SNI、傳輸類型和路徑。接著在 Home 使用 Connectivity Test,並檢查 Global Routing。匯入成功只表示文字已完成解析,不代表認證資訊有效,也不代表目標伺服器可連線。

修改名稱後,為什麼更新訂閱又變回去了?

訂閱更新可能依據遠端內容重建或覆寫項目,不能把訂閱群組中的手動修改視為永久保存。若要獨立管理,請先另存現有項目的完整參數;之後分別管理獨立項目和原訂閱,避免將兩者當成同一份設定。

App Store 正版確認與匯入教學

先確認 Shadowrocket 在 App Store 的 App 身分與購買資訊,再依教學匯入自己已有的訂閱或設定。唯一取得管道是 App Store;購買用戶端不包含連線服務,相容性與系統需求請以 App Store 頁面標示為準。

前往正版確認頁 查看教學
App Store 正版確認