字里行间

访问 HTTPS 网站,代理为什么填 http://?本地代理地址的协议检查

把网页地址里的 https:// 复制到本地代理地址前面,是一种容易发生的配置混淆。目标网站使用 HTTPS,与本地代理端口是否接受 TLS 连接,是两个独立问题。

本文适用于 Windows PowerShell 中的 curl.exe,以及提供本地 HTTP 或混合端口的代理客户端。先查看客户端当前监听配置,文中的端口不能直接当作你的配置。

本地 HTTP 代理入口与目标 HTTPS 连接分开标注的两段示意

示意图:入口协议与目标协议分别核对,图中不表示真实线路或测量结果。

先读懂两个地址

假设客户端明确提供本机 HTTP 代理入口,代理参数的 http:// 描述 curl 与该入口交谈的方式;目标 URL 的 https:// 描述要访问的网站。两者同时出现并不冲突。

curl 官方 HTTP 代理说明解释了 HTTPS 请求可以通过 HTTP 代理的 CONNECT 隧道传输。保留目标站点的证书验证时,不能因为本地代理地址以 http:// 开头,就认定目标 HTTPS 正文变成了普通明文请求。

HTTPS 代理则要求 curl 与代理本身建立 TLS 连接。把一个只接受普通 HTTP 的本地端口改写成 https://,不会自动为它增加 TLS 功能。

操作前核对三项

字段 查看哪里 正确判断方式
监听类型 客户端本地端口说明 HTTP、SOCKS 或混合入口分别确认
地址 当前监听地址 本机使用时确认是否为回环地址
端口 客户端实际配置 使用当前值,不凭教程记忆填写

混合入口具体支持哪些协议,仍以客户端说明为准;“混合”这个名字本身不承诺支持 HTTPS 代理。

用一次小请求验收

在 PowerShell 中,先替换下面的示例端口为已经确认的 HTTP 代理端口。example.com 只是公开网页示例,不是性能测试目标。

$proxyPort = 7890 # 示例值,先按客户端实际 HTTP 端口修改
curl.exe -q --noproxy 'localhost' --proxy "http://127.0.0.1:$proxyPort" --connect-timeout 10 --max-time 20 -sS -o NUL -w 'HTTP=%{http_code}
' 'https://example.com/'
$LASTEXITCODE

保留两行结果:网站 HTTP 状态与 curl 退出码。请求收到响应后,再结合客户端连接记录确认这次请求使用了预期入口。示例将绕过列表限定为 localhost;目标 example.com 不匹配该项,避免环境里其他绕过规则改变这次对照。

如果客户端只提供 SOCKS 入口,就按它的说明使用对应 SOCKS 参数,不能把 HTTP 字符串原样套进去。连接失败时先回查监听类型和端口,继续保存错误文字;一个失败编号并不能直接证明机场线路有问题。

验收后保留什么

记录实际入口类型、端口、请求时间与结果即可,不要把代理认证密码写进截图。既不要为修复协议填写错误关闭证书验证,也不要为了本机测试把监听地址扩大到所有网卡。

完成标准是:你能分别说明代理地址协议和目标网页协议,参数与实际入口一致,并得到可复查的请求结果。阅读机场推荐教程时,也应先核对自己的客户端提供什么接口。

来源与核验日期

官方资料核验日期:2026-10-06。文中的表格和流程用于自行检查,不代表本站对某家机场的实测结论。

评论

搜索文章

正在加载搜索…