开启 3 天免费试用
注册即可免费体验全部高级功能。
*仅限新用户;每位用户只能获得一次试用。


REALITY 公钥不匹配会失败,是因为客户端需要使用与服务端 privateKey 对应的公钥材料。当前 Project X 客户端配置把该材料放在 password 字段;旧版配置和界面可能把同一角色称为 publicKey。若两者不属于同一密钥对,客户端与服务端就无法完成预期的 REALITY 认证计算。[1]
完整 VPN 指南介绍端到端路径。本文只回答密钥分别在哪一端、无关公钥为何失败,以及这种失败不能说明哪些 TLS 证书或 VLESS 用户问题。
关键要点
- 服务端必须保护
privateKey;客户端只接收与之对应的公钥材料。- 当前客户端语法使用
password;publicKey是旧字段名,并非要再配置第二把密钥。- 格式正确但来自另一密钥对的公钥仍会失败。
- 网站证书、
serverName、短 ID 和 VLESS UUID 是不同检查。- 轮换时应生成并安全分发新密钥对,绝不能把服务端私钥复制给客户端。
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 服务端 | privateKey | privateKey | 保密的 X25519 私钥材料 |
| REALITY 客户端 | password | publicKey | 与该服务端私钥对应的公钥材料 |
| TLS 名称 | serverName | SNI 相关标签 | 获准且与配置协调的名称 |
| REALITY 选择值 | shortId | 短 ID | 服务端列表中可接受的一项 |
| VLESS 用户 | id | UUID | 获准的代理用户身份 |
字段名称并不能证明每个产品都开放这些字段。订阅 URI 或二维码也可能隐藏真实映射,所以应比较获准配置真源与导入结果,而不是凭标签直觉编辑。
网站 TLS 证书通过 Web PKI 绑定域名和公钥;REALITY 配置密钥对是另一项认证输入。目标站和 serverNames 会影响面向 TLS 的行为,但目标网站证书不是客户端 REALITY password。把证书指纹或网站公钥复制到此字段,无法得到服务端 REALITY 公钥。
两类错误都可能发生在握手阶段,表面症状会重叠。应先确认预期监听器收到请求,再核对服务端密钥生成记录和客户端配置修订号,最后检查服务器名称与目标站兼容性。REALITY 目标站为何重要说明后一项独立契约。
网络设备也可能在 REALITY 处理密钥前终止路径。服务端没有请求记录时,公钥假设仍过早;密钥轮换后服务端立即拒绝获准请求,会增强该假设,但仍需关联日志或受控对照才能确认。
公钥、短 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 连接失败清单给出完整层次。
绝不能为了“测试”把服务端私钥发给客户端或支援工单,也不能关闭认证看看流量是否通过。这会破坏正在诊断的安全边界,并把配置错误升级为凭据泄露。
如果你维护 REALITY 密钥对只是为了获得一条普通的加密连接,不妨考虑托管服务是否更合适。AethoVPN 账户使用邮箱验证码,文档说明的设置流程是安装客户端并在应用中选择位置,并不涉及导入或比对密钥。在 REALITY 客户端失败的设备上,如果 AethoVPN 能连上,说明这台设备可以经加密隧道正常上网,排查重点就应留在密钥对上,而不是基础连通性。它的文档既没有提到 REALITY 或导入 X25519 密钥,也没有列出所用协议,所以你自己服务器的预期公钥仍只能由获授权的配置所有者提供。可用邮箱创建账户来试试托管方式。
privateKey。password,旧资料可能写作 publicKey。password 是普通密码吗?不是。在当前 REALITY 配置中,它保存服务端对应的公钥材料,不是账户口令或服务端私钥。
privateKey 复制给客户端吗?不可以。私钥必须留在服务端。应使用文档规定工具派生公钥,只分发客户端需要的值。
publicKey?那是历史客户端字段名。应检查安装版本的当前结构和最终导入配置,不要同时盲填两个字段。
不是。网站证书验证和 REALITY 配置认证互相独立,目标站证书和获准的服务器名称都不能替代 REALITY 密钥对。
不能。VLESS UUID 属于更后的用户认证层,无法修复先发生的 REALITY 密钥关系错误。
不能。DNS、路由、地址族、防火墙、端口或监听器问题都可能在处理密钥之前发生。必须关联两端证据,找出第一个出错的阶段。
在公开诊断中需要。它虽不是私钥,但会标识服务端配置,应只经获准渠道分享。
免责声明:本文仅提供获准系统的一般技术信息。请保护私钥、使用认证分发渠道,排障时不要削弱验证。
来源:
Sources checked 2026 年 9 月 12 日。
延伸阅读:
注册即可免费体验全部高级功能。
*仅限新用户;每位用户只能获得一次试用。