已有自己的服務商與訂閱時,先確認取得的是單一節點分享連結,還是可更新的訂閱網址,再選擇匯入入口。本文說明四種連結的欄位、編碼方式與常見誤解,並列出透過 Home 匯入後的檢查步驟,區分節點參數、Config 規則與 Global Routing 的用途。所有範例僅供辨識結構,不能用於連線。
先看連結開頭:連線參數與訂閱網址並不相同
在 Shadowrocket(小火箭)中,單一節點分享連結通常描述一筆連線設定:使用哪種協定、連接哪台伺服器、使用哪些憑證,以及是否啟用 TLS 或特定傳輸方式。ss://、vmess://、vless://、trojan:// 是本文討論的四種 scheme;開頭相似,不代表內部欄位可以互換。
訂閱連結通常是 HTTPS 網址。Shadowrocket 連線至該網址後,會讀取伺服器回傳的節點清單,再依回傳內容建立或更新項目。連結本身未必會顯示伺服器位址與連接埠,這些資訊往往包含在回應本文中。並非所有 HTTPS 網址都能作為訂閱;帳戶管理頁面、登入頁面和說明頁面都不等於訂閱介面。
一次訂閱可能回傳多個節點,也可能只回傳一個,因此不能只憑匯入後的項目數量判斷類型。更可靠的判斷依據是:匯入時是否選用 Subscribe 類型、是否保留訂閱來源,以及能否再次向該來源請求更新。客戶端買斷 ≠ 線路方案;應分別管理應用程式與既有服務的連線憑證。
ss://:Shadowsocks 的認證資訊與編碼界線
Shadowsocks 分享連結常見的結構包括:編碼後的認證資訊、伺服器位址、連接埠,以及選用的查詢參數與備註。認證資訊通常包含加密方法和密碼。以下以 BASE64URL 表示一種編碼操作,並非可直接貼上匯入的實際內容。
ss://BASE64URL(method:password)@server.example:8388#Office
認證資訊範例:aes-128-gcm:demo-password
伺服器範例:server.example
連接埠範例:8388
method指 Shadowsocks 的加密方法,必須與伺服器端設定一致;不可只因名稱相似就自行替換。password是連線憑證。Base64 或 Base64URL 只是編碼,並非加密保護;即使內容可以解碼,仍應視為敏感資訊妥善處理。@後方通常是伺服器位址與連接埠。主機部分若使用 IPv6 位址,須加上方括號,避免位址中的冒號與連接埠分隔符混淆。#Office是備註片段,主要用來辨識項目。修改備註無法修正伺服器位址、密碼或連接埠錯誤。- 含有
plugin=的連結也可能帶有外掛參數;能讀取基本欄位,不代表目前環境一定支援所有擴充功能。
較舊的分享格式也可能將較長的連線資訊整段編碼,因此不能只憑「是否看得到 @」來判斷。請保留服務商提供的原始連結,交由匯入器解析,再到 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
此網址為明顯的虛構值,僅用來示意「網址 + 查詢憑證」的結構。
- 匯入單一節點:從可信來源複製完整連結,返回 Home,使用應用程式提供的剪貼簿匯入入口;若出現剪貼簿讀取要求,僅在本次確實需要匯入時允許。若未顯示入口,可點選 Home 右上角的新增入口,依既有參數建立項目。
- 匯入訂閱:前往 Home → 右上角
+,在Type中選擇Subscribe,將自己的訂閱網址填入URL,新增備註後儲存。請勿將帳戶登入頁面填入 URL。 - 檢查結果:確認訂閱群組、節點類型和項目數量是否符合既有服務說明;進入項目編輯頁檢查位址、連接埠與傳輸設定,不要只看備註名稱。
- 後續更新:在 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 欄位;既有參數與實際支援情況應分別確認。