字里行间

curl 报错 35 怎样查?先定位失败的 TLS 握手

浏览器能打开页面,curl 却报告 35,并不能直接证明机场节点坏了。两个程序可能采用不同代理来源、TLS 后端和连接条件,先找出失败的是哪一次握手。

本文以 Windows PowerShell 调用 curl.exe 为例,只对你有权限的小型公开页面做检查,不携带账号、订阅链接或认证请求。

设备经代理连接目标网站时逐段核对 TLS 握手对象的示意

示意图:先找出握手发生在哪段连接,再核对错误和单项对照。

35 与 60 分别说明什么

curl 官方手册将 35 定义为 SSL/TLS 握手失败;60 则表示对端证书无法通过已知 CA 认证。这些是错误类别,不是足以唯一确定故障来源的诊断结果。

先保存错误原文和发生时间。不要仅凭数字,就把所有问题都按“缺少根证书”处理,也不要用 -k 作为通用修复。

第一步:确认正在使用哪个程序

在 PowerShell 中执行:

curl.exe --version

记录版本输出中实际的 TLS 后端及支持能力。不要把另一台电脑的结果当成本机配置,也不要因网上示例使用某个后端就临时混装多个程序。

核对命令是否明确写了 --proxy,以及当前代理地址的协议和端口是否与客户端说明一致。HTTP 代理、HTTPS 代理和 SOCKS 入口不能仅凭端口号互换名称。

第二步:在日志里找握手对象

可先对一个公开小页面运行如下诊断示例;这不是本机实测结果:

curl.exe -q --retry 0 --connect-timeout 10 --max-time 20 --verbose --output NUL https://example.com/

-q 放在前面用于排除默认配置文件干扰。这条命令没有指定本地代理,仍须核对环境变量或系统接管条件;若要对照某个代理,只使用客户端明确给出的入口另做一轮。

阅读日志时标记:连接到哪个主机、是否先连接代理、是否已经建立代理隧道、错误出现在哪里。使用 HTTPS 代理时还可能存在到代理本身的 TLS 连接,不能把每一条 TLS 提示都当成目标网站握手。

日志可能包含地址和请求信息。公开求助前遮盖内部域名、账号、Cookie、Authorization 和带令牌的 URL;不提交未经检查的完整日志。

第三步:只改变一个条件

对照条件 记录重点
同一目标、同一代理入口,换候选节点 握手阶段和错误是否改变
同一目标、同一程序,换可用网络 本地网络路径是否相关
同一设备,核对浏览器实际代理来源 是否原本在比较不同路径

不同时更换节点、DNS、证书库和 TLS 参数。没有官方兼容要求时,不随意降级 TLS 或放宽加密配置;单位管理的电脑应先核对管理要求。

怎样算排查有结果

你能说明实际程序、代理入口、失败握手对象和单项对照结果,就可以提交有用的记录。若握手恢复,继续确认 HTTPS 验证和原任务都成功;仅错误数字消失仍不足以证明完成使用。机场推荐中的客户端体验,也应说明所用环境而非泛称“所有设备都正常”。

来源与核验日期

官方资料核验日期:2026-10-08。本文提供自行操作与记录的方法,不代表本站对某家机场的实测结论。

评论

搜索文章

正在加载搜索…