适用于 v2rayN、v2rayNG 或 v2flyNG 日志出现 TLS、x509、握手中断的情况。先用原始错误区分连接超时和证书验证失败,再依次核对系统时间、节点地址与 SNI、证书链、指纹和传输参数。普通 TLS 与 REALITY 要分开排查;跳过证书验证不能替代配置修复。
一、先看日志:握手失败不等于证书错误
TLS 位于连接建立与代理协议通信之间。节点地址解析失败、TCP 端口不可达、服务器关闭连接,都可能让客户端最后显示“连接失败”。只有日志明确出现证书有效期、主机名或受信任机构相关错误时,才应优先检查证书。单独一行 EOF 或 context deadline exceeded 不足以判断根因。
在 v2rayN 主界面的日志区域复现一次连接,记录出错时间,并向前寻找同一连接的内层错误;安卓客户端可从菜单中的「日志」查看。不同版本的日志入口位置可能变化,但要取的是内核原始输出,而不是测速列表中一个“失败”结果。分享日志前应遮盖订阅地址、用户标识及认证信息。
报错:x509: certificate has expired or is not yet valid
原因与解法:本机时间不在证书有效区间内,或服务器证书确实过期。先同步设备日期和时间,再核对证书的生效与到期日期。
报错:x509: certificate signed by unknown authority
原因与解法:验证链无法连接到受信任根,可能是中间证书缺失、自签名证书或网络中的证书替换。检查服务端完整证书链及本机信任环境,不要直接关闭验证。
报错:tls: unrecognized name
原因与解法:服务端可能拒绝了客户端发送的 SNI 名称。把节点中的服务器名称与服务端允许的名称逐字对照,并检查是否连到了错误入口。
报错:remote error: tls: handshake failure
原因与解法:对端主动终止握手,可能涉及 TLS 参数、客户端证书要求或服务端入口策略。结合服务端日志与节点参数排查,不能仅凭这一行认定证书过期。
二、同步系统时间:日期、时区与证书有效期
证书验证比较的是当前时间与证书的 notBefore、notAfter。设备年份错了,或者休眠恢复后时钟明显漂移,都可能导致有效证书被判定为尚未生效或已经到期。时区主要影响时间的显示;关键是系统实际时间是否准确,不能只把界面上的时区改正确就结束检查。
-
同步桌面时间
Windows 11 打开「设置」→「时间和语言」→「日期和时间」,启用「自动设置时间」,在同步区域点击「立即同步」。确认日期、年份及所选时区。
-
同步安卓时间
在原生 Android 的「设置」→「系统」→「日期和时间」中启用自动设置时间与时区。厂商系统入口不同时,在设置内搜索「日期和时间」,确认网络授时已生效。
-
重连并核对
断开后重新连接节点,再查看新日志的时间戳。如果仍提示过期,检查远端证书日期;已过期的服务端证书需要由维护者续期并重新加载。
时间同步失败时,先确认设备能够正常联网;公司网络可能限制授时流量。不要为了迁就过期证书而把系统日期调回过去,这会影响其他 HTTPS 连接,也会掩盖服务端续期故障。
三、核对 SNI:服务器地址、证书名称和 Host 分开看
节点的「地址」决定连接哪个主机或 IP,「端口」决定连接哪个服务;SNI 是 TLS 握手中发送的服务器名称。普通 TLS 配置中,显式设置的 serverName 通常也用于证书主机名验证。连接地址可以是 IP,但用于验证的名称必须与证书覆盖的域名匹配,且符合服务端入口要求。
| 字段 | 实际用途 | 常见填写错误 |
|---|---|---|
| 地址与端口 | 确定远端连接入口 | 把 HTTPS 常用端口 443 当成所有节点的端口 |
| SNI / serverName | 选择 TLS 虚拟主机,并参与普通 TLS 名称验证 | 填入 https:// 前缀、路径或错误子域名 |
| WebSocket Host | TLS 建立后 HTTP 请求中的主机字段 | 以为修改 Host 就能修复证书名称不匹配 |
| WebSocket path | 指定 WebSocket 请求路径 | 漏掉前导斜杠,或使用其他节点的路径 |
| gRPC serviceName | 指定 gRPC 服务名称 | 误填为域名,或与服务端名称不一致 |
在 v2rayN 节点列表双击目标节点,进入节点编辑窗口,检查「地址」「端口」以及 TLS 区域的「SNI」或服务器名称字段;在 v2rayNG 中点击节点右侧编辑图标,核对 TLS 与 SNI 项。字段标签随版本变化,以对应节点的编辑页为准,不要在全局路由设置中寻找 SNI。
- SNI 一般填写纯域名,例如
www.example.com这种形式,不带协议、端口或路径;这里的域名仅演示语法,实际值必须使用服务端提供的名称。 - 普通证书中的通配符
*.example.com通常可匹配a.example.com,不能据此认定它也覆盖根域名或多级子域名。 - 服务商口中的“伪装域名”含义可能不明确。应明确询问它指的是 TLS SNI、HTTP Host,还是 REALITY 的服务器名称,不能把三者直接互换。
如果日志明确说明证书对某个名称有效、但对当前名称无效,应先检查是否连接了错误 IP、入口是否返回默认站点证书,再修正 SNI。随机换成知名网站的域名,通常只会造成新的名称不匹配。
四、检查证书链、指纹与 REALITY 参数
根证书受信任,不代表服务端发送的证书链一定完整。普通 TLS 服务端通常应提供叶证书和必要的中间证书;部分浏览器可能借助缓存补齐中间证书,因此“浏览器能打开”不能证明代理内核一定能验证同一条链。也要确认测试的是相同地址、端口与 SNI,而不是域名的另一个入口。
- 证书链错误:由服务端维护者检查完整链文件与续期后的加载状态。本机信任库过旧时,更新系统及客户端后复测。
- 指纹不匹配:支持 uTLS 的内核可通过
fingerprint选择 ClientHello 特征。它不是证书指纹,也不是证书信任开关;先使用节点要求的取值。 - REALITY 节点:需要匹配服务端配置的服务器名称、公钥及 shortId 等参数。不同版本可能使用不同字段标签,应优先导入维护者提供的完整配置。
- 内核能力:v2rayNG 使用 Xray,v2flyNG 使用 V2Fly;两者支持的安全与传输选项并不完全相同。需要 REALITY 的节点不能仅靠在不支持的内核里改一个 TLS 选项来运行。
v2rayN 是客户端界面,实际连接行为还取决于节点所用内核。升级界面后,如果仍运行旧内核,新增参数可能无法按预期生效。确认日志中的内核名称和启动版本,再根据节点要求更新;不要把“换指纹后偶尔成功”当成已经定位了证书故障。
五、allowInsecure 为什么不能作为长期修复
普通 TLS 中,allowInsecure 用于允许不安全的证书验证行为。开启后通常会跳过正常的证书链与主机名校验,但这不表示连接退回明文:加密可能仍然存在,问题是客户端不能按正常验证流程确认对端身份。因此,连接变得可用不等于连接配置已经正确。
现象:开启跳过验证后可以连接
原因与解法:故障可能与证书验证有关,但还不能区分时间偏差、名称错误、链不完整或证书被替换。恢复验证后按日志逐项修复,不能据此认定对端可信。
现象:开启跳过验证后仍然超时
原因与解法:连接可能尚未到达证书验证阶段,或存在传输与入口策略问题。检查地址、端口、网络可达性及服务端日志,不要继续叠加不相关开关。
在经授权的受控测试环境中,维护者有时会短暂改变验证选项来缩小范围,但不应在不可信网络上把这种方式当作日常连通方案。尤其涉及账号登录、订阅获取或敏感请求时,应先建立可验证的连接。使用私有证书体系时,应通过内核支持的信任配置正确建立信任,而不是永久跳过验证。
- 保存原节点配置或截图,记录原先的验证选项,避免测试后忘记恢复。
- 以正常证书验证开启的状态复现一次,保留完整内层错误。
- 只修改一个有依据的字段,例如校准时间或纠正 SNI,然后重新连接。
- 修复完成后确认
allowInsecure为false,或界面的「跳过证书验证」处于关闭状态。
六、复测清单:证书通过后仍打不开怎么办
TLS 握手成功只是其中一层。后续 WebSocket 握手、gRPC 服务匹配、代理协议认证与目标域名解析仍可能失败。若新日志已经不再出现 x509 错误,而变成 HTTP 状态码异常或认证失败,就应进入对应层排查,不要反复修改已经正确的 SNI。
时间已经同步,为什么还说证书过期?
查看新产生的日志,确认不是旧记录;再让维护者核对当前入口实际返回的证书。续期文件已生成但服务没有重新加载,或者负载均衡中的某个入口仍用旧证书,都可能继续报错。
手机能连,电脑不能连,要改 SNI 吗?
先对照两端完整节点参数、实际内核及时间,再比较所在网络。确认电脑没有被安全软件替换证书,也没有连接到不同入口;不能仅凭设备差异判断 SNI 错误。
WebSocket 返回 400 或 404,还是 TLS 问题吗?
收到 HTTP 响应通常说明已进入 HTTP 层,应核对 WebSocket Host、path 和反向代理规则。同时检查响应是否来自预期服务,避免把默认站点的响应误当成节点正常。
更新订阅后,刚改好的参数又变了?
订阅更新可能覆盖节点字段。可先复制节点用于独立测试,记录修正项,再请维护者修正订阅源。不要长期依赖每次更新后手动重填参数。
提交排错信息时,需要提供什么?
提供客户端与内核版本、系统时间、错误时间点、脱敏后的原始日志,以及是否使用 TLS 或 REALITY。说明更换网络后结果是否变化,不要公开完整分享链接和订阅凭据。
最终复测应保持证书验证开启,使用同一节点连续完成连接、目标访问与一次断开重连。只有错误消失且业务请求正常,才算本轮修复完成。更多基础字段可查阅术语手册;需要区分网络、代理接入与内核问题时,可继续查看技术参考。