本文適合已取得自有服務設定與訂閱連結,並需要辨識連結格式的使用者。先區分單一伺服器參數與遠端訂閱網址,再核對四種分享格式中的驗證、傳輸及 TLS 欄位,最後依匯入、更新、連線三個階段排查問題。所有範例均為無法用於實際連線的示意資料,不提供任何服務資源。
一、前綴決定解析方式,不代表連線品質
Shadowrocket(小火箭)收到連結後,會先判斷內容是伺服器參數,還是用來取得設定的遠端網址。ss://、vmess://、vless://、trojan://通常包含一筆伺服器記錄;以 https:// 開頭的訂閱網址則指向遠端內容,必須由用戶端發出請求並取得回應,才能解析其中的記錄。
| 連結類型 | 主要內容 | 後續變更來源 |
|---|---|---|
ss:// | Shadowsocks 加密方法、密碼、位址、連接埠等 | 重新匯入或手動編輯 |
vmess:// | 常見為 Base64 編碼的 VMess JSON 參數 | 重新匯入或手動編輯 |
vless:// | VLESS UUID、位址、傳輸與安全參數 | 重新匯入或手動編輯 |
trojan:// | Trojan 密碼、位址、TLS 與傳輸參數 | 重新匯入或手動編輯 |
| HTTPS 訂閱網址 | 遠端設定入口及可能包含的存取 token | 更新訂閱後讀取遠端內容 |
HTTPS 網址也可能回傳網頁、登入頁或其他檔案,因此「能在瀏覽器開啟」不代表「可以作為訂閱匯入」。反過來說,分享連結中的連接埠即使是 443,也不能單憑連接埠判斷一定啟用了 TLS。協定、連接埠與傳輸安全是不同欄位,必須一併核對。
二、ss://:先解碼加密方法與密碼
Shadowsocks 分享連結常見格式遵循 SIP002 的基本結構:驗證資訊位於 @ 前方,伺服器位址與連接埠位於後方,# 後方可附上名稱。驗證資訊通常是 method:password 的 URL-safe Base64 編碼。舊格式也可能將更長的內容整段編碼,不能只憑字串外觀判斷格式是否有效。
ss://[email protected]:8388#Demo-SS
YWVzLTEyOC1nY206dGVzdA解碼後為aes-128-gcm:test,其中加密方法是aes-128-gcm,示範密碼為test。example.com是示範伺服器位址,8388是示範服務連接埠,並非所有 Shadowsocks 服務都使用的固定連接埠。Demo-SS是顯示名稱;修改名稱無法修正位址、密碼或加密方法錯誤。- 若原始連結包含
plugin查詢參數,可能代表外掛設定;不要為了縮短連結任意刪除,也應確認對應功能是否受支援。
Base64 是編碼方式,不是保護憑證的安全措施。取得完整連結的人通常能還原其中的密碼。請勿將原始連結貼到公開解碼網站;需要核對時,優先查看 Shadowrocket 匯入後的編輯欄位,並逐項比對自有設定。
三、vmess://:分開檢視外層編碼與內層 JSON
常見的 VMess 分享格式會在 vmess:// 後放入一段以 Base64 編碼的 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"
}
add、port和id分別代表伺服器位址、連接埠與 UUID。此處的 UUID 為示範值。net: ws代表 WebSocket;host與path是這組傳輸參數的一部分。tls: tls代表此範例啟用 TLS,sni指定交握時使用的伺服器名稱;這與 WebSocket 的 Host 並非同一個協定欄位。aid是舊格式中的 Alter ID 欄位;隨意增減此值無法解決驗證失敗。
範例中的 v 是分享格式欄位,並非 Shadowrocket 版本。匯入後,即使名稱與伺服器位址正確,仍應核對傳輸類型、TLS、Host 與 Path。少一個斜線、路徑大小寫錯誤或 SNI 不符,都可能導致「已新增項目,但交握失敗」。
四、vless:// 與 trojan://:查詢參數不能只複製一部分
VLESS 與 Trojan 常見的分享格式接近一般 URI:先填寫身分憑證,再填位址與連接埠,問號後方則是附加參數。以下兩個範例都使用 TLS,但驗證方式不同,不能只替換前綴就當成另一種協定使用。
vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=example.com#Demo-VLESS
trojan://[email protected]:443?security=tls&type=tcp&sni=example.com#Demo-Trojan
| 欄位 | 說明 | 核對要點 |
|---|---|---|
@ 前方的內容 | VLESS 使用 UUID;Trojan 使用密碼 | 勿將顯示名稱誤認為驗證憑證 |
encryption=none | VLESS 協定層不額外提供此層加密 | 不代表外層 TLS 已停用 |
security=tls | 指定 TLS 安全層 | 一併核對 SNI、憑證與伺服器設定 |
type=tcp | 指定此處使用 TCP 傳輸 | 若實際設定使用 WebSocket,就不能照抄此值 |
sni=example.com | TLS 交握時使用的伺服器名稱 | 位址即使是 IP,也不能逕自省略 |
URL 中的 & 用來分隔不同參數,# 則引出備註。若密碼、路徑或備註包含保留字元,應依其所在的 URI 部分進行百分比編碼。例如,查詢參數中的路徑 /demo?mode=1 可表示為 %2Fdemo%3Fmode%3D1。不要將整條連結重複編碼,也不要連同正文中的換行、中文標點與引號一起複製。
五、單筆匯入與訂閱更新是兩種流程
單筆分享連結相當於某個時間點的伺服器參數副本;訂閱網址則是可再次請求的入口。例如下方網址僅用來說明結構,token=xxxx 是明確的示範假值,並不對應實際服務。訂閱實際回傳的內容可能是編碼後的連結清單,也可能是其他受支援的格式,不能只憑網址副檔名推斷。
https://example.com/sub?token=xxxx
依現有資料選擇匯入流程
已有單筆分享連結
- 完整複製協定前綴、驗證資訊、查詢參數與備註。
- 開啟 Shadowrocket,依剪貼簿匯入提示確認;若系統詢問貼上權限,請依實際操作授權。
- 在 Home 檢查新增的記錄,進入編輯頁核對位址、連接埠、驗證資訊與傳輸欄位。
- 上游參數變更後,重新匯入或手動修改;這筆記錄不會自動取得訂閱更新關係。
已有自用訂閱網址
- 在 Home 點選右上角的
+,將 Type 設為 Subscribe。 - 在 URL 欄位填入完整訂閱網址,設定易於辨識的名稱後儲存。
- 更新該訂閱,再核對訂閱群組中的伺服器記錄。
- 遠端內容變更後,必須再次更新才會反映至本機;更新後仍須測試是否可用。
單筆匯入會儲存參數,訂閱匯入則會儲存遠端入口及其更新關係;兩者都不能取代服務端的有效授權。
訂閱更新可能新增、替換或移除其管理的記錄。請勿將訂閱群組中的手動修改視為永久備份:後續更新可能重新寫入遠端參數。調整前先記錄差異;若要保留獨立設定,應使用明確不受訂閱管理的記錄,並自行維護變更。
訂閱 token 通常具有存取憑證的作用。排查失敗時,只記錄回應狀態、錯誤文字與發生階段,請勿公開完整 URL。若 token 已外洩,請在自有服務管理頁面重設或撤銷該 token,再將新網址儲存至 Shadowrocket。
六、匯入成功後,透過 Global Routing 區分故障階段
分享連結主要描述伺服器的連線方式,並不等於完整的分流規則。Home 用於選擇伺服器與控制連線;Config 用於管理規則設定。檢查 Global Routing 時,應區分「請求未送往所選伺服器」與「請求已送達伺服器但連線失敗」,避免反覆修改原本正確的連結。
Config:核對現有規則的實際流向
建議使用既有且有效的規則設定,依規則決定流量去向。檢查 DOMAIN-SUFFIX、IP-CIDR、GEOIP 等比對項目,以及 FINAL 的處理目標;不要假設所有請求都會使用剛匯入的伺服器。
適用情況:已有分流設定,想確認日常請求是否符合預期策略
Proxy:暫時排除規則影響
讓由用戶端接管的流量依代理模式處理,以便進行對照測試。此模式無法修正錯誤的密碼、UUID、TLS 參數,也不保證系統中的所有流量都會經過代理。
適用情況:懷疑 Config 中的規則將測試請求導向其他位置
Direct:檢查本機網路基準狀態
讓接管的流量直接連線,可用來確認本機網路是否正常。但在此模式下網頁能開啟,並不能證明剛匯入的伺服器可用。
適用情況:對照本機網路狀態,排除基本連線問題
結論:依「解析 → 更新 → 交握 → 分流」逐步定位
未產生項目時,先檢查連結是否完整;未取得訂閱清單時,先檢查 URL 與回應;項目存在但連線失敗時,再檢查驗證資訊與 TLS;連線已建立但特定請求異常時,最後檢查 Global Routing 與規則。每次只變更一個變數,測試後恢復原有模式。
七、常見問題與處理方式
複製連結後,為什麼沒有出現匯入提示?
先確認剪貼簿內容是否從 ss:// 等完整前綴開始,並移除外層引號、聊天軟體附加的說明文字及中間換行。接著確認系統未拒絕此次貼上操作。HTTPS 訂閱可在 Home → + → Type → Subscribe 中手動填寫;不要將單筆伺服器分享連結誤填為訂閱網址。
訂閱顯示更新成功,為什麼伺服器仍然無法連線?
更新成功只表示已取得並解析訂閱內容,不代表其中每筆伺服器都通過連線測試。在 Home 選取對應記錄,核對連接埠、驗證資訊、傳輸與 TLS;同時確認該記錄是否已由遠端停用。成功下載訂閱與成功完成代理交握是兩種不同結果。
訂閱更新回傳 401、403 或網頁內容時怎麼辦?
401 通常表示需要驗證,403 通常表示請求遭拒;具體原因仍應以自有服務端的說明為準。確認 token 是否完整、是否過期,以及是否誤複製管理網頁網址。若回應實際上是 HTML 登入頁,請回到自有管理頁面重新取得訂閱網址,不要反覆修改伺服器連接埠。
將 vless:// 改成 trojan:// 就能直接使用嗎?
不行。VLESS 的 UUID 與 Trojan 的密碼不是可互換的驗證欄位,伺服器端監聽的協定也不同。請還原完整原始連結,依伺服器實際使用的協定重新匯入;不要只因兩者都使用 443 或 TLS 就替換前綴。
可以匯入,但出現憑證錯誤,需要關閉驗證嗎?
先檢查裝置日期與時間,再依原始資料核對 SNI、伺服器名稱及憑證是否有效。位址使用 IP 時,尤其要確認 TLS 伺服器名稱。不要將關閉憑證驗證當成通用修復方式;這會降低身分驗證保障,也無法解決 UUID、密碼或 WebSocket Path 錯誤。