訂閱更新失敗不代表所有節點都失效。用戶端更新訂閱時,至少必須完成網域解析、建立連線、接收 HTTP 回應、讀取本文、辨識編碼、解析分享連結並寫入本機設定。任何一步中斷,介面都可能只顯示「更新失敗」、「解析錯誤」或「找不到有效伺服器」。

排查時不要先刪除既有節點,也不要反覆重新安裝用戶端。先保留目前的設定與記錄,再確認失敗發生在網路請求階段還是內容解析階段。這項區分能把檢查範圍從幾十項縮小到兩三項。

本文速覽

本文適合使用 v2rayN、v2rayNG 或 v2flyNG 更新 VMess、VLESS 等訂閱時,遇到逾時、清單空白、格式錯誤或 HTTP 狀態異常的使用者。依照「連結有效性 → 網址完整性 → 回應格式 → 用戶端版本 → 網路路徑 → 回應本文」的順序檢查,通常能在不修改現有節點的情況下確認故障位置。

先判斷失敗階段:請求、回應還是解析

一次訂閱更新可分成三個階段。第一階段是請求:用戶端解析訂閱網域並連線至伺服器。第二階段是回應:伺服器回傳狀態碼、回應標頭與本文。第三階段是解析:用戶端從本文辨識 VMess、VLESS 等分享連結,再將有效項目寫入訂閱群組。

「逾時」、「無法解析主機名稱」、「連線被拒絕」通常屬於請求階段。「401」、「403」、「404」、「500」屬於回應階段。「沒有有效伺服器」、「不支援此格式」、「Base64 解碼失敗」則屬於解析階段。先抄下原始提示,不要只記住彈出視窗標題。

  • 請求階段:檢查 DNS、網路可達性、系統時間,以及是否需要透過目前的代理伺服器更新。
  • 回應階段:檢查連結是否過期、存取權限是否變更、伺服器是否發生重新導向或暫時故障。
  • 解析階段:檢查回傳本文是否為目標訂閱格式,以及用戶端是否支援其中的協定欄位。
  • 寫入階段:檢查訂閱群組是否啟用、同名節點是否遭到篩選,以及更新後是否切換到正確的群組。
200
正常 HTTP 狀態碼
10 秒
首次連線觀察時間
10808
常見本機 SOCKS 連接埠
10809
常見本機 HTTP 連接埠

原因一與二:連結過期網址抄錯

最常見的情況是連結本身已失效。訂閱網址通常包含用於辨識帳戶或設定集合的長字串。伺服器更換網址、撤銷舊連結或調整存取期限後,舊網址可能回傳 401、403、404,也可能重新導向至說明頁面。此時用戶端雖能建立連線,卻取得不到可解析的節點資料。

第二類是複製不完整。聊天視窗自動換行、瀏覽器只選取部分文字、結尾多出句號,以及參數中的 & 被轉義,都會改變實際請求網址。尤其是包含 ?token=&type= 或百分比編碼的長連結,少一個字元也可能得到完全不同的回應。

錯誤:Response status code does not indicate success: 401

原因與解法:伺服器拒絕目前的憑證——確認訂閱是否仍在有效期內,並從原始管理頁面重新複製完整網址。

錯誤:The remote server returned an error: 403 Forbidden

原因與解法:網址有效但不符合存取條件——檢查連結是否已更換,避免繼續使用瀏覽器歷史紀錄中的舊網址。

錯誤:Response status code does not indicate success: 404

原因與解法:請求路徑不存在——重點檢查網域後的路徑、斜線、查詢參數,以及複製時遺漏的結尾字元。

  1. 在訂閱設定中開啟編輯介面,逐字比對來源,確認網址開頭、網域、路徑與查詢參數。
  2. 刪除連結首尾的空格、換行與中文標點,不要修改連結中原本存在的百分比編碼。
  3. 若來源提供新的訂閱網址,請建立新的訂閱群組進行測試,不要立即覆寫仍可還原的舊群組。
  4. 收到 401、403 或 404 時,繼續切換 DNS、連接埠或核心通常無效,應先處理網址與存取權限。

原因三:回傳內容編碼與用戶端預期不符

訂閱並非單一標準檔案。常見形式包括以 Base64 包裝的多行分享連結、直接回傳的純文字連結清單,以及由伺服器依用戶端類型產生的專用結構。VMess 分享項目通常包含經過編碼的 JSON 資料;VLESS 通常採用 URI 形式,並透過查詢參數表達傳輸方式、安全層與服務名稱等資訊。

問題常出在「請求成功但內容類型不正確」。例如伺服器依請求參數回傳另一種用戶端設定;連結實際指向登入頁面;反向代理以 HTTP 200 回傳錯誤頁面;或本文只包含提示文字。狀態碼正常只能證明伺服器回應了請求,不能證明回應就是可用訂閱。

回傳內容特徵 用戶端表現 優先檢查
多行 vmess://vless:// 通常可直接辨識 連結是否完整,以及協定欄位是否受目前核心支援
長段連續的字母、數字與編碼字元 用戶端嘗試進行 Base64 解碼 本文是否遭截斷,以及前後是否混入提示文字
<html 或網頁標題開頭 提示解析失敗或沒有有效節點 是否重新導向至登入頁、錯誤頁或存取說明頁
結構化設定但沒有分享連結 清單為空或不支援此格式 訂閱類型參數是否選錯,以及回傳格式是否適用於目前的用戶端
本文長度為 0 更新完成但節點數為 0 伺服器端產生工作、快取與上游資料來源

結論:HTTP 200 不是訂閱有效的證明

若請求成功但新增節點數為 0,下一步應檢查本文類型與前幾十個字元,而不是繼續更換本機監聽連接埠。

原因四:用戶端版本過舊或核心能力不相容

訂閱解析由用戶端完成,節點連線則由 V2Ray 或 Xray 核心執行。用戶端版本過舊時,可能無法辨識新增的查詢參數、傳輸組合或訂閱欄位;核心版本落後時,節點可能成功匯入清單,但啟動時回報未知欄位、無效設定或不支援的傳輸設定。

v2rayN 用於桌面環境,可管理不同核心與訂閱群組。v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心。三者的介面、預設值與協定支援範圍並不完全相同。同一份訂閱能在某個用戶端匯入,不代表其中每個節點都能由另一套核心啟動。

v2rayN 7.x
桌面介面排查基準
v2rayNG 1.10.x
Android Xray 用戶端基準
2 層
用戶端解析與核心執行
  • 完全無法匯入:先更新用戶端主程式,再重新建立訂閱群組。
  • 可以匯入但無法啟動:開啟核心記錄,檢查 unknown fieldinvalid config 等關鍵字。
  • 只有部分節點消失:比較消失節點使用的協定、傳輸方式與安全參數,確認是否遭用戶端篩選。
  • 更新後仍顯示舊清單:確認更新的是目前的訂閱群組,並檢查是否啟用了依備註去重或篩選規則。

升級前記錄目前的版本號與訂閱群組名稱。升級後先更新一個測試群組,確認節點數量、備註與協定類型符合預期,再處理主要群組。如此可區分版本變更與訂閱來源變更。

原因五:目前網路無法直連訂閱伺服器

訂閱伺服器與節點伺服器是兩個不同的目標。既有節點能夠連線,不代表訂閱網域一定能直連;反過來,訂閱更新成功也不表示每個節點都可用。DNS 污染、網域解析失敗、網路出口限制、憑證時間錯誤與連線逾時,都可能讓訂閱請求卡在解析或交握階段。

如果本機已有可用節點,可以比較「直連更新」與「透過代理伺服器更新」的結果。v2rayN 的訂閱群組選單通常提供兩種更新入口。只有透過代理伺服器更新成功時,問題多半出在目前的直連網路路徑,而不是訂閱格式。

  1. 保留現有連線

    不要先清空伺服器清單。選擇一個已確認可連線的節點,確認核心正在執行並記下本機連接埠。

  2. 測試直連更新

    在 v2rayN 主介面開啟「訂閱群組」→「更新全部訂閱(不透過代理伺服器)」,觀察 10 秒內的第一則記錄與 HTTP 狀態。

  3. 改用代理伺服器更新

    保持可用節點連線,再執行「訂閱群組」→「更新全部訂閱(透過代理伺服器)」。若此時成功,繼續檢查本機 DNS 與直連路由。

  4. 核對代理伺服器連接埠

    進入「設定」→「參數設定」,確認本機監聽連接埠與目前核心一致。常見 SOCKS 連接埠為 10808,HTTP 連接埠為 10809,但應以介面實際顯示值為準。

  5. 檢查系統時間

    將日期、時區與自動校時恢復正確。系統時間偏差較大時,TLS 憑證驗證可能失敗,記錄中會出現憑證尚未生效或已經過期的提示。

錯誤:The operation has timed out

原因與解法:請求未能在限定時間內完成——比較直連更新與透過代理伺服器更新,並檢查 DNS、路由與訂閱伺服器的可達性。

錯誤:No such host is known

原因與解法:訂閱網域解析失敗——清除系統 DNS 快取,切換至可信任的 DNS 後重新啟動用戶端再測試。

錯誤:The SSL connection could not be established

原因與解法:TLS 交握未完成——先校準系統時間,再檢查網路中間設備是否替換憑證或中斷連線。

原因六:伺服器回傳空白本文空節點集合

空白回應與格式錯誤不同。格式錯誤表示用戶端收到了內容,但無法理解;空白回應表示本文長度為 0,或伺服器產生的節點集合本身沒有項目。用戶端可能提示「更新成功」,卻沒有新增節點,也可能明確回報找不到有效伺服器。

造成空集合的常見情況包括訂閱產生工作尚未完成、帳戶下沒有可用節點、伺服器端篩選條件排除了所有項目、上游資料暫時為空,以及快取回傳了舊的空結果。此時反覆切換本機核心不會產生缺少的資料。

錯誤:Failed to parse subscription content

原因與解法:本文存在但不符合用戶端可辨識的格式——檢查是否回傳網頁、提示文字或不相符的設定類型。

錯誤:No valid server was found

原因與解法:解析完成後沒有取得有效節點——檢查回應是否為空、節點協定是否受支援,以及篩選規則是否排除了所有項目。

錯誤:Subscription content is empty

原因與解法:伺服器回傳空白本文——等待伺服器重新產生訂閱,或向來源確認帳戶下是否仍有可用設定。

  • 記錄更新前後的節點數量。如果始終為 0,優先檢查伺服器端的產生結果。
  • 暫時停用備註關鍵字篩選、協定篩選與去重規則,再更新測試群組。
  • 如果回傳的是說明文字,請依其中的狀態資訊處理,不要繼續將說明頁當作訂閱匯入。
  • 若同一網址在不同網路下都回傳空內容,故障更可能位於伺服器端,而不是本機 DNS。

結論:清單為空先查資料來源,不要先換核心

節點數從正常值突然變為 0,且請求狀態仍為 200 時,應先建立測試群組並核對回應本文,避免空結果覆蓋仍可使用的本機清單。

完整自查順序:從低成本項目開始

有效的排查順序應先處理最常見、最容易驗證、最少改變本機狀態的項目。不要同時更換訂閱網址、用戶端版本、DNS 與核心,否則即使恢復,也無法確認真正原因。

  1. 抄錄原始錯誤

    開啟更新記錄,記下第一次失敗對應的錯誤原文、時間、HTTP 狀態碼與更新方式。區分逾時、拒絕存取與解析失敗。

  2. 核對完整網址

    進入「訂閱群組」→「訂閱群組設定」,檢查網址首尾空格、網域、路徑與參數,並逐項與原始來源比對。

  3. 建立測試群組

    新增獨立群組並貼上網址,暫時不要啟用篩選規則。更新後記錄節點總數,以及 VMess、VLESS 等協定的分布。

  4. 比較網路路徑

    分別執行直連更新與透過代理伺服器更新。只有後者成功時,再轉向檢查 DNS、系統時間與直連路由。

  5. 更新用戶端

    確認目前使用的是仍受維護的 v2rayN、v2rayNG 或 v2flyNG 版本,再檢查對應核心能否辨識訂閱中的協定與傳輸欄位。

  6. 核對回應內容

    確認伺服器回傳的是分享連結清單或用戶端可辨識的編碼內容,而不是登入頁、錯誤頁、說明文字或空白本文。

訂閱更新失敗並提示逾時,要先重新安裝用戶端嗎?

不需要。先在記錄中確認逾時發生於網域解析、TCP 連線還是 TLS 交握,再比較「更新全部訂閱(不透過代理伺服器)」與「更新全部訂閱(透過代理伺服器)」的結果。

瀏覽器能開啟訂閱網址,為什麼用戶端仍說解析失敗?

瀏覽器能開啟只代表伺服器回傳了內容。請檢查頁面本文是否為登入頁、錯誤說明或其他設定格式;HTTP 200 本身不能證明內容可被 v2rayN、v2rayNG 或 v2flyNG 辨識。

更新完成後節點數量變成零,舊節點還能保留嗎?

先不要覆寫原有群組。建立測試群組進行更新,並關閉篩選規則。如果測試群組仍為零,請檢查回應本文與伺服器端節點集合,再決定是否替換舊設定。

同一份訂閱在 v2rayNG 能匯入,在 v2flyNG 中卻有部分節點消失?

比較消失節點使用的協定欄位、傳輸方式與安全參數。兩款用戶端採用不同核心,支援範圍與預設處理方式可能不一致,應以對應核心記錄為準。

透過代理伺服器可以更新,關閉代理就失敗,應該更換訂閱嗎?

通常不必先更換訂閱。這項結果表示網址與格式大致有效,應檢查直連 DNS、系統時間、網路路由,以及訂閱網域在目前網路中的可達性。

最後再做一次最小驗證:保留舊群組,建立測試群組;使用完整網址;關閉篩選;先直連更新,再透過代理伺服器更新;記錄第一則記錄與節點數量。如此取得的結果足以將問題歸入連結、網路、格式、版本或伺服器端資料五個範圍之一。

訂閱恢復後,再刪除失效群組並重新選擇目前使用中的節點。若排查期間曾修改路由模式、系統代理或 TUN 設定,應恢復原有設定並重新連線,讓目前的核心程序載入最終規則。