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

解析單一節點分享連結的結構,比較 ss://、vmess://、vless://、trojan:// 所含欄位,並說明與訂閱連結在匯入方式和更新機制上的差異。

本文重點

已有自己的服務商與訂閱時,先確認取得的是單一節點分享連結,還是可更新的訂閱網址,再選擇匯入入口。本文說明四種連結的欄位、編碼方式與常見誤解,並列出透過 Home 匯入後的檢查步驟,區分節點參數、Config 規則與 Global Routing 的用途。所有範例僅供辨識結構,不能用於連線。

先看連結開頭:連線參數與訂閱網址並不相同

在 Shadowrocket(小火箭)中,單一節點分享連結通常描述一筆連線設定:使用哪種協定、連接哪台伺服器、使用哪些憑證,以及是否啟用 TLS 或特定傳輸方式。ss://、vmess://、vless://、trojan:// 是本文討論的四種 scheme;開頭相似,不代表內部欄位可以互換。

訂閱連結通常是 HTTPS 網址。Shadowrocket 連線至該網址後,會讀取伺服器回傳的節點清單,再依回傳內容建立或更新項目。連結本身未必會顯示伺服器位址與連接埠,這些資訊往往包含在回應本文中。並非所有 HTTPS 網址都能作為訂閱;帳戶管理頁面、登入頁面和說明頁面都不等於訂閱介面。

4 種
本文辨識的 scheme:ss / vmess / vless / trojan
1 筆
單一節點連結通常描述一筆連線設定
443
以下範例的連接埠,並非所有節點的預設值

一次訂閱可能回傳多個節點,也可能只回傳一個,因此不能只憑匯入後的項目數量判斷類型。更可靠的判斷依據是:匯入時是否選用 Subscribe 類型、是否保留訂閱來源,以及能否再次向該來源請求更新。客戶端買斷 ≠ 線路方案;應分別管理應用程式與既有服務的連線憑證。

ss://:Shadowsocks 的認證資訊與編碼界線

Shadowsocks 分享連結常見的結構包括:編碼後的認證資訊、伺服器位址、連接埠,以及選用的查詢參數與備註。認證資訊通常包含加密方法和密碼。以下以 BASE64URL 表示一種編碼操作,並非可直接貼上匯入的實際內容。

ss://BASE64URL(method:password)@server.example:8388#Office
認證資訊範例:aes-128-gcm:demo-password
伺服器範例:server.example
連接埠範例:8388

較舊的分享格式也可能將較長的連線資訊整段編碼,因此不能只憑「是否看得到 @」來判斷。請保留服務商提供的原始連結,交由匯入器解析,再到 Home 的項目編輯頁檢查結果。若解碼後的認證資訊明顯遭截斷,請重新複製原文,不要猜測缺少的密碼。

vmess://:常見內容是 Base64 編碼的 JSON

常見的 VMess 分享連結以 vmess:// 開頭,後方接著一段 Base64 編碼的 JSON。它不像常見的 VLESS URI,會直接顯示 使用者資訊@主機:連接埠。以下僅示意解碼後的欄位,使用保留範例網域與示範 UUID,並不對應實際服務。

{
  "v": "2",
  "ps": "Office",
  "add": "server.example",
  "port": "443",
  "id": "00000000-0000-4000-8000-000000000000",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "edge.example",
  "path": "/demo",
  "tls": "tls",
  "sni": "edge.example"
}
欄位用途檢查重點
add / port連線位址與連接埠決定連線的網路目的地
id / aid使用者識別碼與舊版相容參數保留來源提供的值,勿任意修改
net / path傳輸方式與相關路徑ws 情境須檢查路徑
host / sni傳輸 Host 與 TLS 服務名稱用途不同,且可能與連線位址不同
ps / v備註與分享格式識別碼v 不是應用程式版本號

不可將 add、host 與 sni 視為可互換的伺服器位址。前者負責連線目的地;在此範例的 WebSocket 情境中,host 用於請求 Host,sni 則用於 TLS 名稱協商。實際服務中,三者可能相同,也可能不同。匯入後若只保留位址和 UUID,卻遺失傳輸路徑或 TLS 設定,雖然能儲存項目,仍可能無法建立連線。

vless:// 與 trojan://:外觀相似,認證欄位不同

VLESS 與 Trojan 常見的分享格式都接近標準 URI:認證資訊位於 @ 前方,伺服器位址與連接埠在後方,問號後是擴充參數,井字號後則是備註。外觀相似,不代表只要更換前綴就能轉換協定。

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

trojan://[email protected]:443?security=tls&type=tcp&sni=edge.example#Office

欄位檢查方式:依認證方式分別確認

VLESS 分享連結
  • @ 前方通常是 UUID。
  • encryption=none 不代表停用 TLS。
  • security、type、flow 等參數須依來源資訊核對。
  • WebSocket 情境另須檢查 host 與 path。
Trojan 分享連結
  • @ 前方通常是密碼。
  • 常見部署會使用 TLS,須確認服務名稱與憑證。
  • 密碼若含特殊字元,必須正確進行 URI 編碼。
  • 傳輸擴充功能須依來源參數及實際支援情況確認。

協定、認證資訊、傳輸方式與 TLS 參數是一組完整設定;請勿只更換 scheme 或連接埠來嘗試轉換。

範例中的 %2Fdemo 解碼後為 /demo。百分比編碼可避免保留字元改變 URI 結構:例如密碼中的 # 若直接寫入,可能會被當成備註起點。複製時應保留原始編碼,匯入器通常會依欄位處理;反覆手動解碼再貼上,反而可能破壞分隔結構。

連接埠 443 只是伺服器可選用的監聽連接埠之一。不能從連接埠號碼推斷協定,也不能把所有 TLS 連線都改成 443。若憑證驗證失敗,應先檢查裝置時間、SNI 與來源參數,不應把停用憑證驗證當成一般修復方式。

單一節點與訂閱:分別確認匯入入口和更新方式

匯入單一節點連結後,通常會建立一份本機連線參數副本。伺服器之後若更換密碼、位址或傳輸參數,舊項目不會只因名稱相同就自動取得新設定。訂閱則會保留可再次請求的來源,更新時可重新取得清單;但這不保證每次請求都成功,也不能取代服務效期與帳戶狀態檢查。

訂閱網址結構範例:
https://example.com/sub?token=xxxx

此網址為明顯的虛構值,僅用來示意「網址 + 查詢憑證」的結構。
  1. 匯入單一節點:從可信來源複製完整連結,返回 Home,使用應用程式提供的剪貼簿匯入入口;若出現剪貼簿讀取要求,僅在本次確實需要匯入時允許。若未顯示入口,可點選 Home 右上角的新增入口,依既有參數建立項目。
  2. 匯入訂閱:前往 Home → 右上角 +,在 Type 中選擇 Subscribe,將自己的訂閱網址填入 URL,新增備註後儲存。請勿將帳戶登入頁面填入 URL。
  3. 檢查結果:確認訂閱群組、節點類型和項目數量是否符合既有服務說明;進入項目編輯頁檢查位址、連接埠與傳輸設定,不要只看備註名稱。
  4. 後續更新:在 Home 的訂閱項目操作中執行更新;如需自動更新,請前往 Settings → Subscribe 檢查更新設定。開啟應用程式時更新,不代表系統會持續定時擷取;單一節點項目也不會因此變成訂閱。
先保留來源,再調整本機項目

訂閱更新可能會取代由訂閱管理的節點資訊,也可能變更清單順序與名稱。修改訂閱節點的本機設定前,應記錄修改原因並保留原始參數;重要的自訂項目宜分開管理,避免將一次更新誤認為手動設定遺失。

HTTPS 只表示傳輸採用了相應的保護措施,不代表回傳內容一定是節點清單。若更新後取得的是登入頁面、錯誤頁面或格式不相容的文字,請檢查原始訂閱網址、有效期限與回應內容。訂閱 token 等同存取憑證,排除問題時不要將完整 URL 傳到公開聊天或放進截圖。

匯入成功後:先測試節點,再檢查 Global Routing 與 Config

「連結可解析」、「項目可儲存」、「連線可建立」和「目標請求套用正確策略」是四種不同結果。節點分享連結主要提供連線參數,匯入成功不會自動產生符合個人需求的 Config。Home 用於管理連線項目與連線狀態,Config 用於管理規則設定,Settings 用於調整應用程式行為。

Global Routing → Config

建議

已有並確認規則設定時,請依目前 Config 中的規則決定請求策略。哪些請求經由代理、哪些直接連線,取決於規則內容與順序。

適用情境:已完成節點測試,且已有明確分流規則的日常使用

Global Routing → Proxy

使用代理模式檢查目標請求未經代理,是否由分流規則所致。這有助縮小排查範圍,但無法補上缺少的 UUID、密碼、SNI 或傳輸路徑。

適用情境:短時間排查節點連線能力與規則影響

Global Routing → Direct

以直接連線方式存取目標,適合觀察目前網路本身的連線結果;此時不能據此證明所選代理節點運作正常。

適用情境:比較目前網路與代理連線路徑的差異

Global Routing 也包含 Scene,會依設定的場景條件採用相應策略,不應將其視為固定的 Proxy 或 Config。Settings → On Demand 則控制隨選連線行為,並非節點協定或訂閱更新開關。排查期間請先讓連線觸發條件與測試目標保持一致,避免網路切換和自動觸發同時改變測試條件。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
FINAL,DIRECT

以上僅示意規則語法,並非完整設定。DOMAIN-SUFFIX 比對網域後綴,IP-CIDR 比對 IP 網段,GEOIP 依 IP 地理資料庫分類,FINAL 則處理前面規則都未比對到的請求。規則順序會影響結果;即使節點參數正確,目標請求若符合 DIRECT,也不會經由該代理路徑。查看請求記錄中的比對規則與最終策略,比反覆匯入同一連結更能有效排查。

常見問題:分別處理解析、認證、傳輸與更新

複製了 ss://,為什麼沒有匯入節點?

先確認連結是否完整包含前綴、編碼字串、伺服器位址與連接埠,移除連結外部的引號或說明文字,但不要修改連結內的字元。聊天排版可能插入空格、換行或省略內容;請回到原始來源重新複製完整文字,再於 Home 匯入。若仍然失敗,請確認來源使用的分享格式及擴充功能是否受支援。

VMess 匯入成功,卻一直連線失敗,是 UUID 錯了嗎?

不一定。請依序檢查位址與連接埠、UUID、傳輸方式、WebSocket Host 與 Path、TLS 和 SNI,同時確認裝置的日期與時間。項目能儲存只表示輸入已獲接受,不能證明伺服器端認證與傳輸交握成功。每次只修正一項已確認的差異,避免同時修改多處而無法判斷原因。

VLESS 的 encryption=none 是否代表沒有 TLS?

不是。這兩個參數描述不同層面的設定。請查看同一連結中的 security,並檢查匯入後項目的 TLS 相關選項;不要只看到 encryption=none 就停用 TLS。傳輸與安全參數都必須符合自己的服務設定。

訂閱更新成功,為什麼選取的節點還是不能用?

更新成功表示訂閱內容已取得並完成處理,不代表清單中的每個節點都能建立連線。請先在 Home 確認目前選取的項目與連線狀態,再檢查既有服務的有效期限、節點參數及 Global Routing。若更新失敗,則應先排查 URL、存取憑證、網路連線能力與回應格式,不要將兩種情況混為一談。

可以把連結截圖傳給別人協助檢查嗎?

請先遮蔽密碼、UUID、訂閱 token 與完整 QR Code。QR Code 通常只是原始連結的另一種呈現方式,並未隱藏憑證。排查時可提供協定名稱、已遮蔽敏感資訊的參數名稱、錯誤提示及已採取的步驟;若需核對實際憑證,應透過自己服務商的可信管道處理。

最終檢查順序如下:辨識連結類型 → 保留完整原文 → 選擇相應的匯入入口 → 檢查認證與傳輸欄位 → 驗證連線 → 檢查規則與更新方式。本文介紹的四種 scheme 並非 Shadowrocket 支援能力的完整清單,也不能據此推斷其他協定採用相同的 URI 欄位;既有參數與實際支援情況應分別確認。

App Store 正版確認