REALITY 公鑰不相符為何失敗?密鑰對應、憑證與用戶認證區分

REALITY 公鑰不相符為何失敗?密鑰對應、憑證與用戶認證區分

Ryan Foster
2026年9月12日· 8 分鐘讀完

REALITY 公鑰不相符會失敗,因為客戶端需要使用與伺服器 privateKey 對應的公鑰資料。目前 Project X 客戶端設定把該資料放在 password 欄位;舊版設定和介面或會把相同角色稱為 publicKey。若兩者不屬同一密鑰對,客戶端與伺服器便不能完成預期的 REALITY 認證計算。[1]

完整 VPN 指南介紹端到端路徑。本文只回答密鑰分別在哪一端、無關公鑰為何失敗,以及這類失敗不能說明哪些 TLS 證書或 VLESS 用戶問題。

關鍵要點

  • 伺服器必須保護 privateKey;客戶端只接收與它對應的公鑰資料。
  • 目前客戶端語法使用 password;publicKey 是舊欄位名,不是要再設定第二把密鑰。
  • 格式正確但來自另一密鑰對的公鑰仍會失敗。
  • 網站證書、serverName、短 ID 和 VLESS UUID 是不同檢查。
  • 輪換時應產生並安全分發新密鑰對,絕不能把伺服器私鑰複製到客戶端。

REALITY 公鑰不相符是甚麼?

Project X 文件規定伺服器使用 X25519 privateKey,客戶端 password 保存相應公鑰,並說明該客戶端欄位舊稱 publicKey。[1] 客戶端若保存另一台伺服器的公鑰、複製內容不完整、被匯入工具按錯誤結構解析,或伺服器輪換後仍保留舊值,就會出現不相符。

私鑰必須留在伺服器。客戶端既不需要也不應取得它。公鑰亦不能因長度相同便隨意取代:格式解析只回答「是否像有效密鑰資料」,認證計算還須回答「是否對應這台伺服器正在使用的私鑰」。

圖例:1 是目前客戶端 password 中的公鑰資料;2 表示 X25519 配對關係;3 是只保存在伺服器的 privateKey。連線表示設定對應,不表示私鑰會傳送到客戶端,也不是完整封包時序。

為甚麼密鑰對必須對應?

公鑰密碼系統的目的之一,是讓持有公鑰的人不能由此還原私鑰。REALITY 使用密鑰資料參與預期握手的認證和保護。伺服器私鑰與客戶端對應公鑰可讓兩端算出兼容結果,而毋須在網絡傳送私鑰。REALITY 項目把設計描述為經修改的 TLS,並為獲准客戶端提供不依賴一般證書的伺服器認證。[2]

若客戶端持有伺服器 B 的公鑰卻連接伺服器 A,即使兩台伺服器都正常,計算結果亦不一致。重試不會令無關密鑰突然配對;修改 SNI、目標網站、UUID 或瀏覽器設定亦不能修復這個數學關係。

備份還原可造成隱蔽故障:伺服器地址和大部分設定已還原,但 REALITY 私鑰重新產生,舊客戶端仍保存先前公鑰。管理面板亦可能顯示新派生公鑰,而訂閱快取繼續輸出舊值。兩項單獨看都像有效字串,只有配對關係錯誤。

為甚麼客戶端欄位稱為 password?

這是目前設定結構的名稱,不表示它是可記憶密碼、帳戶口令、共享秘密或伺服器私鑰。應以實際安裝版本的文件為準。有些介面仍顯示「public key」,但產生的 JSON 已採用 password。

遷移期間不要盲目同時填入新舊欄位。不同版本可能拒絕、忽略或轉換未知欄位,匯入層亦可能顯示新值但實際保留舊值。應在遮蔽資料後檢查程式最終解析或匯出的有效設定。

位置目前欄位舊稱正確角色
REALITY 伺服器privateKeyprivateKey保密的 X25519 私鑰資料
REALITY 客戶端passwordpublicKey與該伺服器私鑰對應的公鑰資料
TLS 名稱serverNameSNI 相關標籤獲准並與設定協調的名稱
REALITY 選擇值shortId短 ID伺服器清單內可接受的一項
VLESS 用戶idUUID獲准的代理用戶身份

欄位名稱並不能證明每個產品都開放這些欄位。訂閱 URI 或二維碼亦可能隱藏實際映射,所以應比較獲准設定真源與匯入結果,不要憑標籤直覺編輯。

它與 TLS 證書問題有何分別?

網站 TLS 證書透過 Web PKI 綁定域名和公鑰;REALITY 設定密鑰對是另一項認證輸入。目標網站和 serverNames 會影響面向 TLS 的行為,但目標網站證書不是客戶端 REALITY password。把證書指紋或網站公鑰複製到這個欄位,不能取得伺服器 REALITY 公鑰。

兩類錯誤都可能在握手階段出現,表面徵狀會重疊。應先確認預期監聽器收到請求,再核對伺服器密鑰產生記錄和客戶端設定修訂號,最後檢查伺服器名稱與目標網站兼容性。REALITY 目標網站為何重要說明後者的獨立契約。

網絡設備也可能在 REALITY 處理密鑰前中止路徑。伺服器沒有請求記錄時,公鑰假設仍然太早;密鑰輪換後伺服器立即拒絕獲准請求,會令該假設較可信,但仍需關聯記錄或受控比較才可確認。

它與短 ID、VLESS UUID 失敗有何分別?

公鑰、短 ID 和 UUID 都可被籠統稱作憑證,但回答的問題不同。[3]公鑰對應 REALITY 伺服器身份資料;短 ID 必須命中 REALITY 可接受清單;UUID 則在外層處理到達 VLESS 後配對獲准用戶。

因此一項設定可以通過前一檢查再在後一檢查失敗。公鑰正確但短 ID 錯誤仍會被拒;REALITY 成功但 VLESS UUID 錯誤,可在較後階段失敗。UUID 正確不能補償公鑰不相符,因為請求不能形成可用的已認證 VLESS 連線。

REALITY 短 ID 的作用解釋成員配對;VLESS、REALITY 與 XTLS Vision 分層指南說明排障為何要保留檢查次序,而不是一次過替換所有值。

應怎樣產生和輪換密鑰?

在可信管理環境使用實作文件指定的 X25519 產生命令。私鑰只寫入受保護伺服器密鑰儲存,派生公鑰寫入獲准客戶端分發系統。避免有共享歷史記錄的終端機、聊天、公開貼文服務、截圖,以及保留命令參數或輸出的監察欄位。

計劃輪換前,列出受影響端點、客戶端和回復時限。按實作支援方式,把新私鑰和對應公鑰當作一項受控改動部署。若軟件不支援兩組密鑰重疊,應安排協調切換,不要自行發明雙密鑰結構。

部署後,在不顯示私鑰的情況下回讀伺服器有效設定,核對派生公鑰指紋和客戶端修訂號。先驗證一個獲准客戶端,再擴大範圍。回復期結束而證據保留規則容許後,停止分發舊設定並移除舊的儲存資料。 只有一個客戶端連上,並不代表輪換已經完成。還要確認舊設定會按預期失敗、目前設定能到達預期的後續階段,而且監察記錄中沒有出現明文密鑰。記錄負責人、版本、時間戳記和指紋,而不是密鑰值本身。

怎樣安全診斷公鑰不相符?

凍結一次失敗,不要批量修改。記錄端點、連接埠、兩端版本、時間、有效設定修訂號及第一個錯誤階段。先證明基礎網絡可達,而且預期 REALITY 監聽器處理了請求。

透過文件指定工具派生或取得目前伺服器私鑰的獲准公鑰,以安全指紋與客戶端實際 password 比較。檢查空白、截斷、過期二維碼或訂閱快取、舊 publicKey 匯入、連錯環境,以及誤用另一伺服器的值。

若密鑰對應,依次檢查 serverName、短 ID、時鐘、指紋選項、版本兼容性,其後才是 VLESS 身份和 flow。若不對應,只經受保護渠道修正這一項並重複相同有限測試。VLESS Reality 連線失敗清單提供完整層次。

絕不能為了「測試」把伺服器私鑰傳給客戶端或支援個案,也不能關閉認證看看流量是否通過。這會破壞正在診斷的安全邊界,並把設定錯誤升級為憑證外洩。

託管 VPN App 能否取代自管密鑰對?

如果你維護 REALITY 密鑰對只是為了取得一條普通的加密連線,不妨考慮託管服務是否更合適。AethoVPN 帳戶使用電郵驗證碼,文件說明的設定流程是安裝客戶端並在 App 內選擇位置,並不涉及匯入或比對密鑰。在 REALITY 客戶端失敗的裝置上,如果 AethoVPN 能連上,即表示這部裝置可以經加密隧道正常上網,排查重點便應留在密鑰對上,而不是基本連線能力。它的文件既沒有提到 REALITY 或匯入 X25519 密鑰,亦沒有列出所用協議,所以你自己伺服器的預期公鑰仍只能由獲授權的設定擁有者提供。可用電郵建立帳戶來試用託管方式。

總結

  • 客戶端公鑰資料必須對應目前伺服器 privateKey。
  • 目前客戶端欄位名為 password,舊資料可能寫作 publicKey。
  • 看似有效但來自另一密鑰對的值仍會失敗。
  • REALITY 密鑰、網站證書、短 ID 和 VLESS UUID 是不同輸入。
  • 應以有效設定指紋排查,並經受保護且兼容版本的渠道輪換。

常見問題

客戶端 password 是一般密碼嗎?

不是。在目前 REALITY 設定中,它保存伺服器對應的公鑰資料,不是帳戶口令或伺服器私鑰。

可以把伺服器 privateKey 複製到客戶端嗎?

不可以。私鑰必須留在伺服器。應使用文件指定工具派生公鑰,只分發客戶端所需的值。

為甚麼舊設定寫 publicKey?

那是舊有客戶端欄位名。應檢查安裝版本的目前結構和最終匯入設定,不要盲目同時填入兩個欄位。

REALITY 密鑰是目標網站證書密鑰嗎?

不是。網站證書驗證和 REALITY 設定認證彼此獨立,目標網站證書和獲准的伺服器名稱都不能取代 REALITY 密鑰對。

正確 UUID 能修復公鑰不相符嗎?

不能。VLESS UUID 屬較後的用戶認證層,不能修復先發生的 REALITY 密鑰關係錯誤。

逾時能證明公鑰錯誤嗎?

不能。DNS、路由、地址類型、防火牆、連接埠或監聽器問題都可能在處理密鑰之前出現。必須關聯兩端證據,找出第一個出錯的階段。

公鑰資料需要遮蔽嗎?

在公開診斷中需要。它雖不是私鑰,但可識別伺服器設定,應只經獲准渠道分享。

免責聲明:本文只提供獲准系統的一般技術資訊。請保護私鑰、使用認證分發渠道,排障時不要削弱驗證。

來源:

  1. Project X, "REALITY configuration": https://xtls.github.io/en/config/transports/reality.html
  2. XTLS, "REALITY README": https://github.com/XTLS/REALITY/blob/main/README.en.md
  3. Project X, "VLESS inbound configuration": https://xtls.github.io/en/config/inbounds/vless.html

Sources checked 2026 年 9 月 12 日。


延伸閱讀:

開啟 3 天免費試用

註冊即可免費體驗全部高級功能。

*只限新用戶;每位用戶只可獲得一次試用。

REALITY 公鑰不相符為何失敗?密鑰對應、憑證與用戶認證區分 | AethoVPN