Shadowrocket(小火箭)的單一節點分享連結會直接帶有連線參數;訂閱網址則指向需要取得的設定內容。本文適合已備有自用連線設定的使用者,逐一說明如何從前綴、編碼、欄位與匯入入口辨識連結。看完即可判斷應使用連結匯入、Type → Subscribe,或透過 Add Server 手動填寫,也能了解為什麼成功匯入不代表連線成功。文中的網址、密碼、UUID 與連接埠皆為示範用虛構資料,無法用於實際連線。
先看前綴,再確認網址用途
連結開頭的 scheme 會決定解析方式。ss:// 對應 Shadowsocks 參數,vmess:// 對應 VMess 參數,vless:// 對應 VLESS 參數,trojan:// 對應 Trojan 參數。這類連結通常各自代表一筆伺服器項目;即使把多條連結排成多行,也不會自動變成可持續更新的訂閱網址。
以 https:// 開頭的網址只能表示透過 HTTPS 取得內容,不能只看前綴就認定它是訂閱網址。網頁、帳戶管理頁面和訂閱端點都可能使用 HTTPS。只有在設定提供者明確標示為訂閱,且回應內容可供用戶端辨識時,才應將網址填入 Subscribe。
| 外觀 | 通常包含的內容 | 優先檢查項目 |
|---|---|---|
ss://… | Shadowsocks 的加密方式、密碼、位址與連接埠 | 編碼內容是否完整,以及是否帶有 plugin 參數 |
vmess://… | 常見格式為 Base64 編碼的 JSON 參數 | 位址、UUID、傳輸方式與 TLS 是否齊全 |
vless://… | UUID、位址、連接埠與查詢參數 | type、security、flow 等欄位 |
trojan://… | 密碼、位址、連接埠與 TLS、傳輸參數 | 密碼編碼、SNI 與憑證驗證條件 |
https://example.com/sub?token=xxxx | 訂閱端點示意;實際內容須送出請求後讀取 | 確認是否為訂閱網址,而非登入頁面或錯誤頁面 |
ss://:辨識 Base64 內容與伺服器位址
Shadowsocks 分享連結常見格式為 ss://使用者資訊@主機:連接埠#名稱,其中使用者資訊可能是以 Base64 表示的 method:password。以下範例的使用者資訊解碼後為 aes-128-gcm:demo-pass;example.com 是示範主機,8388 是示範連接埠,Demo-SS 則是名稱。
ss://[email protected]:8388#Demo-SS
部分較早期的格式會將包含主機與連接埠的整段內容一併編碼。因此,不是每一條 ss:// 連結都能直接看到 @。Base64 與 URL-safe Base64 的呈現方式可能不同,結尾的 = 也可能省略;不要只憑這些外觀差異就判定參數失效。
- method:必須與伺服器設定一致。更改顯示名稱不會影響驗證;任意更改加密方式則可能直接造成連線失敗。
- password:不是應用程式的購買憑證,而是這筆伺服器設定的驗證參數,切勿隨連結公開。
- plugin:部分連結會透過查詢參數帶入額外的傳輸設定。匯入後應確認是否正確辨識,不要只檢查位址與連接埠。
- 名稱:
#後方通常是備註;空格與中文可能以百分比編碼表示,不會參與伺服器身分驗證。
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 是 UUID,aid 對應 alterId。net 用來描述傳輸方式;若值為 ws,才需依 WebSocket 參數解讀 host 和 path。tls 和 sni 用於核對 TLS 設定。這些欄位彼此相關,不是只填 UUID 就足夠。
aid: "0"是常見的 VMess AEAD 設定表示方式。請以現有設定為準,不要為了「相容」而擅自填入非零數值。scy涉及 VMess 的資料加密設定,與外層 TLS 不屬於同一層。v: "2"是此類分享 JSON 的格式標記,不是 Shadowrocket 的版本號。- 這類 JSON 中的
type不能直接套用 VLESS URI 查詢參數的意義;須搭配分享格式與net一併判讀。
如果解碼結果不是預期的 JSON,也不要立刻改寫原始內容。分享格式可能有不同變體,或文字已遭截斷。請先重新取得原始連結,再核對用戶端匯入後顯示的欄位;比起反覆修改編碼內容,這樣更容易找出問題。
vless:// 與 trojan://:重點查看查詢參數
VLESS 與 Trojan 常以可直接閱讀的 URI 格式分享。@ 前方分別放置 UUID 或密碼,後方接主機與連接埠;? 後方是查詢參數,多個參數以 & 分隔。以下兩條連結僅示範格式,不代表可連線的伺服器。
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
| 欄位 | 判讀方式 | 常見誤判 |
|---|---|---|
encryption=none | 此處表示 VLESS 本身不提供這一層的資料加密 | 不能因此判定沒有 TLS |
security=tls | 連線要求使用 TLS,仍須核對相關參數 | 連接埠為 443,不代表 TLS 已正確設定 |
type=ws | 使用 WebSocket 傳輸,請核對 host 與 path | 不能只把 ws 改成 tcp,卻保留原密碼 |
sni | TLS 交握時使用的伺服器名稱 | 不一定等同連線位址,也不等同 WebSocket Host |
flow | 部分 VLESS 設定會使用的流量控制參數 | 不是每條 VLESS 連結都需要加入此欄位 |
%2F | 百分比編碼後,解碼結果是斜線 | 手動填寫 path 時,不要重複編碼成 %252F |
如果 Trojan 密碼包含 @、# 或 & 等保留字元,必須正確進行 URI 編碼。複製後若擅自將這些字元「還原得更好看」,可能會改變解析邊界。手動填寫時,應輸入欄位所需的實際值,而不是把整條 URI 填進 Password。
結論:依欄位核對,不要靠連接埠猜協定
如果位址與連接埠相同,連線結果卻不同,請繼續比對 UUID 或密碼、type、SNI、path 和 flow。連接埠 443 可供不同協定使用,不能據此將 VLESS 改成 Trojan。
訂閱網址:取得的是內容,不是固定的一筆節點
訂閱網址是一個可重複送出請求的端點。用戶端取得回應後,會再解析其中的伺服器項目;回應可能是多條分享連結組成的文字、上述內容的 Base64 表示,或用戶端支援的其他格式。能否辨識取決於回傳內容,不能依網址長短判斷。
例如 https://example.com/sub?token=xxxx 中的 token 只是示範用的參數名稱。實際網址可能將憑證放在路徑中,也可能使用其他查詢參數。刪除看似無關的參數、修改大小寫,或漏掉 & 後方的內容,都可能讓請求回傳錯誤頁面,而不是節點清單。
Type → Subscribe
建議做法儲存自己已有的訂閱網址,並透過更新重新取得項目。此處建議僅適用於已確認持有訂閱網址的情況,不代表推薦任何連線服務。
適用情況:已有明確標示的訂閱端點,且需要日後同步項目
Type → 對應協定
在 Add Server 中選擇 Shadowsocks、VMess、VLESS 或 Trojan 等相應類型,逐項儲存連線參數。手動新增的獨立項目不會只因原訂閱有所變更,就自動取得新參數。
適用情況:已有完整參數清單,需要逐欄核對單一伺服器
從訂閱中分享單一節點,通常只會取得該節點當下的參數快照,無法據此還原完整訂閱網址。反過來說,持有訂閱網址也不代表只有一個節點;更新時可能新增、移除或修改項目。手動修改訂閱產生的項目之前,建議先記錄差異,因為後續更新可能會覆寫這些修改。
在 Shadowrocket 中辨識並匯入
先保留一份自己的原始文字,再選擇匯入入口。Home 主要用於管理伺服器與連線狀態;Config 用於管理規則設定,不應將任意規則檔網址當成節點訂閱。掃描 QR Code 和從剪貼簿貼上只是讀取文字的方式,最後建立哪種類型的項目仍取決於文字內容。
-
確認原始內容
檢查開頭是 ss://、vmess://、vless://、trojan://,還是用途已明確說明的 HTTPS 訂閱網址。移除通訊軟體附加的引號與說明文字,但不要刪除連結內的參數。
-
新增訂閱
訂閱網址請依序前往 Home → 右上角「+」→ Add Server → Type → Subscribe,在 URL 欄位輸入自己的完整網址,儲存後更新該訂閱。請勿將整條 HTTPS 網址填入一般伺服器的 Address 欄位。
-
匯入單一連結
完整複製單一節點連結後,切回 Shadowrocket,依提示匯入;若系統詢問剪貼簿存取權限,請按需要允許。使用 Home 頂部的掃描入口讀取 QR Code,確認辨識結果後再儲存;不要直接覆寫尚未核對的項目。
-
核對參數
開啟已匯入項目的編輯頁,檢查 Type、Address、Port,以及相應的 UUID 或 Password,再核對 TLS 與傳輸參數。若無法自動辨識,可從 Home →「+」→ Add Server 選擇對應 Type,依據現有參數手動填寫。
-
測試連線
返回 Home,選取目標伺服器並連線。首次新增 VPN 設定時,請依系統提示授權,再使用 Connectivity Test 輔助檢查;同時確認 Global Routing 目前的選擇符合測試目的。
如果已複製完整連結,卻沒有出現匯入提示,請先檢查系統是否允許讀取剪貼簿,以及文字是否遭換行、空格或富文字標點截斷。不要反覆將相同內容加入 Subscribe;可解析的單一 URI 不會因此變成可更新的訂閱端點。
分別排查匯入失敗、更新結果為空與連線失敗
這三類問題發生在不同階段。匯入失敗表示文字未正確解析;更新結果為空表示取得或解析訂閱內容時,未能取得預期項目;連線失敗則發生在伺服器項目已建立之後。依階段排查,能避免在錯誤的位置反覆修改設定。
- 無法辨識連結:檢查 scheme 是否完整,有沒有多出全形冒號、前後引號或訊息說明。不要自行替 Base64 內容換行,也不要將 URI 中的加號誤改成空格。
- 訂閱更新後沒有項目:核對 URL 路徑與所有參數,確認貼上的不是帳戶頁面。若出現 HTTP 401 或 403,請檢查訂閱憑證或存取權限;這不代表密碼欄位填錯。
- 項目存在但連線逾時:檢查 Address、Port、目前網路的連線能力與服務狀態。範例連接埠 443、8388 都不是可任意替換的通用修正值。
- TLS 發生錯誤:核對裝置時間、SNI、憑證與伺服器設定,不應將關閉憑證驗證當成一般處理方式。
- 測試結果與實際存取不同:Connectivity Test 的結果只反映測試條件,不保證每個目標都能存取;也請檢查目標請求實際使用的路由與策略。
- 中斷後又自動連線:檢查 Settings → On Demand 中現有的設定。按需連線可能影響連線觸發方式,但無法修正錯誤的分享格式、密碼或訂閱 token。
Global Routing 中的 Proxy、Direct、Config、Scene 會決定流量如何選擇路徑,無法將錯誤連結轉換成正確參數。尤其在 Direct 模式下,目標可正常存取並不能證明剛匯入的伺服器可用;在 Config 模式下,請求也可能符合 DIRECT 規則。驗證伺服器時,應同時確認選取的項目與目前的路由方式,不要只看瀏覽器能否開啟頁面。
結論:保留原始內容,每次只修改一項
依照「辨識文字 → 取得內容 → 核對欄位 → 測試連線」的順序檢查。記錄具體錯誤與修改項目,先還原為現有設定的原始參數,再逐項排除問題;不要同時更改協定、連接埠和 TLS 設定,否則無法判斷是哪項變更影響結果。