先分清訂閱網址、訂閱回傳內容與單一節點分享連結,再以 VLESS over TCP + TLS 為例說明欄位對應。適合訂閱更新後沒有節點、JSON 無法從剪貼簿匯入,或節點匯入後仍無法連線時參考。文中的網址、UUID 與連接埠僅用於說明格式,並非可連線的服務。
三種格式:網址、節點清單與完整設定
「V2Ray 訂閱」並非單一檔案規格。平常收到的訂閱網址通常是 HTTPS URL,用戶端存取後才會取得節點清單。回傳內容可能是逐行排列的分享連結,也可能是將這份清單以 Base64 編碼後的文字。網址用於取得與更新,內容則用來描述節點,兩者不能互相取代。
| 形式 | 常見結構 | 匯入方式 | 保留內容 |
|---|---|---|---|
| Base64 訂閱 | 解碼後為多行分享連結 | 訂閱群組中的 URL | 主要包含節點連線參數 |
| VLESS 分享連結 | vless://UUID@主機:連接埠?參數#名稱 | 從剪貼簿匯入 | 通常描述單一節點 |
| 原生 JSON | 包含 inbounds、outbounds 等鍵 | 自訂設定功能 | 可包含入站、DNS、路由與多個出站 |
Base64 是編碼,不是加密;能解碼的人通常也能看到伺服器位址與身分憑證。請勿將訂閱網址、解碼後的節點清單或完整設定貼到公開討論區。訂閱網址中的權杖也可能讓他人持續取得更新內容,別因為它看起來不像密碼就公開。
判斷方式:先看解碼後的第一層內容
若出現多行協定連結,就視為節點清單;若出現含入站、出站的物件,就視為完整設定。不要依檔案副檔名或文字長度判斷格式。
v2rayN 與 v2rayNG:選對匯入方式
v2rayN 是桌面用戶端,v2rayNG 則是使用 Xray 核心的 Android 用戶端。兩者常見的訂閱流程都是匯入節點清單;可解析的協定與參數,還取決於用戶端和核心版本。支援 JSON 不代表訂閱更新功能可以直接接受任意 JSON。
訂閱 URL
建議將服務提供者給的訂閱網址存入訂閱群組。之後更新時仍會存取這個網址,適合節點會變動的服務。
適用情境:需要定期更新的節點清單
單一分享連結
複製完整的 vless:// 或 vmess:// 連結,再透過剪貼簿匯入。匯入一次不代表建立了可更新的訂閱。
適用情境:測試單一節點與核對參數
自訂 JSON
使用用戶端提供的自訂設定功能,並確認設定適用於所選核心。完整設定可能會接管 DNS 與路由,不能只檢查伺服器位址。
適用情境:需要保留完整路由或特殊出站的設定
建立訂閱群組
在 v2rayN 主畫面前往「訂閱分組」→「訂閱分組設定」,新增群組並填入訂閱 URL。這裡要填的是網址,不是整段 Base64 內容。
更新節點
返回「訂閱分組」選單,選擇「更新全部訂閱(不通過代理)」;若網址需要透過現有代理才能存取,再試試相應的「通過代理」更新選項。不同版本的標點與項目名稱可能略有差異。
測試單一連結
在 v2rayN 選擇「伺服器」→「從剪貼簿匯入批次 URL」。在 v2rayNG 開啟主畫面的「+」→「從剪貼簿匯入」,只複製協定連結本身,不要包含引號或說明文字。
Android 訂閱
在 v2rayNG 主畫面點選右上角選單,進入「訂閱分組設定」,按「+」新增網址並儲存,再返回主畫面選單執行「更新訂閱」。如果使用的版本選單名稱不同,請以訂閱群組與更新功能為準。
v2flyNG 使用 v2fly 核心,不應直接套用所有適用於 Xray 的擴充參數。尤其是 REALITY、特定流控等功能,必須先確認核心是否支援;本文的欄位轉換範例以 Xray 為準,不保證可跨核心相容。
Base64 解碼與重新編碼:只轉換外層包裝
常見 Base64 訂閱的產生方式是:將每條節點連結各自放在一行,再把整份 UTF-8 文字編碼。因此,正確解碼後通常仍會看到連結,而不是 JSON。有些服務提供者會直接回傳明文連結清單,這種情況不必再解碼。
在 Mac 上,可以先複製 Base64 訂閱內容,再於終端機執行以下指令。指令會讀取剪貼簿並將結果輸出到目前的終端機,不會代你存取訂閱網址。輸出內容包含憑證,操作時請避免分享終端機畫面。
pbpaste | base64 -D
反向操作時,先將分享連結逐行存入本機純文字檔,再對檔案進行編碼。以下指令假設目前目錄已有 nodes.txt;產生的是靜態文字檔,並不會自動建立可供用戶端更新的訂閱 URL。
base64 -i nodes.txt -o subscription.txt
- 解碼失敗時,先確認是否誤複製了引號、程式碼圍欄或網頁提示文字;HTTP 錯誤頁面也不是訂閱內容。
- 標準 Base64 與 URL 安全變體使用不同字元表;後者可能使用
-、_,並省略結尾的填補字元。不要一律當成標準 Base64 直接處理。 - 常見的
vmess://分享格式本身還包含一層經編碼的 JSON。整份訂閱解碼後看到這種內容很正常,不代表每一行都要再整體解碼。 vless://通常直接使用 URI 欄位與查詢參數。解析 VLESS 連結時,不要照搬 VMess 的內部 JSON 結構。
vless:// 轉 JSON:逐欄位對應
以下以 TCP + TLS 示範最基本的欄位對應。伺服器網域是文件範例,UUID 也僅供說明格式,兩者都無法直接連線。實際使用時,必須取得服務提供者提供的相符位址、連接埠、UUID 與 TLS 參數;不能只替換網域就假設可以使用。
vless://[email protected]:443?encryption=none&security=tls&type=tcp&sni=node.example.com#Example-TLS
這些數字是用來解說設定,不是速度測試結果,也不是所有用戶端的預設值。遠端連接埠與本機監聽連接埠位於連線兩端,不必相同。以下是用來說明欄位的 Xray 設定,監聽位址限定為本機回送位址。
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"tag": "local-socks",
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true
}
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "node.example.com",
"port": 443,
"users": [
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "node.example.com"
}
}
}
]
}
| 連結欄位 | JSON 位置 | 注意事項 |
|---|---|---|
| UUID | settings.vnext[0].users[0].id | 身分憑證,不可任意修改 |
| 主機與連接埠 | settings.vnext[0].address 與 port | JSON 中的連接埠使用數字 |
encryption=none | users[0].encryption | VLESS 欄位,不代表停用 TLS |
type=tcp | streamSettings.network | 傳輸類型,須與伺服器端一致 |
security=tls | streamSettings.security | 此處選擇 TLS 傳輸安全層 |
sni | tlsSettings.serverName | 可能與連線位址不同 |
#Example-TLS | 用戶端節點備註 | 不參與協定交握 |
使用 WebSocket、gRPC、REALITY 或 Vision 時,還需要對應路徑、服務名稱、公鑰、短 ID、指紋或 flow 等欄位。不要在 TCP 範例中隨手加入 flow=xtls-rprx-vision 就以為轉換完成;傳輸方式、伺服器設定與核心支援情況都必須一併確認。
JSON 轉分享連結:哪些內容會遺失
反向轉換時,先找出目標出站,再讀取其協定、伺服器、使用者與傳輸設定。上方的 JSON 只有一個 VLESS 出站,因此可還原成對應連結;若設定包含多台伺服器或多位使用者,就必須分別產生連結,無法用單一 URI 表示所有物件。
- 確認目標為
protocol: "vless",再讀取vnext中的位址、連接埠與使用者 UUID。 - 將傳輸網路與安全類型分別填入
type和security,再補上協定所需的查詢參數。 - 將查詢參數值與備註進行百分比編碼。例如路徑
/edge?x=1應寫成%2Fedge%3Fx%3D1,避免問號被誤判為分隔符號。 - 若伺服器位址是 IPv6,URI 中的位址必須加上方括號;不要直接用冒號拆分整個位址。
- 重新匯入目標用戶端後,逐項核對節點編輯頁面,再實際測試連線。
結論:節點互轉不等於設定遷移
若要保留 DNS、路由分流、多個出站之間的選擇關係或本機入站,請保存原始 JSON。分享連結只適合移轉其中能表示的節點參數。
即使連結匯入成功,用戶端仍會使用自己的系統代理、TUN、DNS 與路由設定。原始 JSON 中「中國大陸直連,其餘流量走代理」的規則,不會隨著單一 VLESS 節點自動遷移。系統代理決定哪些應用程式將請求交給用戶端,路由規則則決定請求接手後走哪個出站,兩者屬於不同層面。
匯入失敗與連線失敗:分階段排查
先確認問題發生在哪個階段:訂閱請求失敗、內容解析失敗,或節點已出現在清單中卻無法連線。節點出現代表至少通過部分格式解析,不代表 UUID、TLS 參數或遠端服務一定正確。
訂閱更新成功,為什麼還是沒有節點?
確認目前選取的訂閱群組與清單篩選條件,再查看更新記錄是否顯示有效節點數為零。如果回傳內容其實是登入頁面、到期通知或完整 JSON,請先向服務提供者確認適用於該用戶端的訂閱格式,不要反覆編碼同一份內容。
貼上 JSON 後,為什麼顯示沒有有效設定?
一般的剪貼簿節點匯入功能通常會依分享連結格式解析。完整 JSON 應透過自訂設定功能匯入;同時檢查逗號、雙引號與頂層結構。JSON 不允許註解或結尾多餘的逗號;語法正確後,仍須確認設定符合所選核心。
連結可以匯入,卻顯示 TLS 交握失敗?
先確認遠端連接埠、security、SNI 與系統時間,再對照伺服器端要求檢查傳輸類型。不要把停用憑證驗證當成一般修復方式;位址能解析與憑證名稱相符,是兩項不同的檢查。
訂閱網址逾時,需要先啟用 TUN 嗎?
不必先調整 TUN。若已有可用節點,可以試試用戶端提供的透過代理更新選項;若沒有可用節點,先確認目前網路能否連上訂閱網址。若記錄顯示本機連接埠已被占用,請先關閉重複執行的用戶端,或調整監聽連接埠。
轉換後節點可以連線,為什麼應用程式仍無法連線?
確認應用程式是否使用系統代理,以及實際代理連接埠是否與用戶端設定一致。命令列工具不一定會讀取系統代理,不能只靠瀏覽器測試判斷所有應用程式。啟用 TUN 前,先確認權限、路由與 DNS;避免同時變更多項設定,導致排查失去線索。