协议与身份验证 · 词汇表

HTTP CONNECT

HTTP CONNECT 是客户端发送给 HTTP 代理的请求方法,用于请求建立通往某个主机和端口(通常为 443 端口)的 TCP 隧道。代理返回 200 后,客户端便通过该隧道直接与目标通信并协商端到端 TLS,因此代理只能看到目标名称和加密字节。所有 HTTPS 请求都是以这种方式通过 HTTP 代理传输的。

阅读约 2 分钟 又称 CONNECT 隧道、HTTPS 隧道传输 更新于

通信过程#

客户端先连接代理,再通过隧道通信
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic dXNlcjpwYXNz

HTTP/1.1 200 Connection established

<随后向 example.com 发送 TLS ClientHello>

由此产生的影响#

  • 证书由目标网站自行提供,不会经过重新签名。通过代理时出现证书警告,说明流量遭到拦截,并非正常行为。
  • 定位参数必须包含在代理凭据中,因为代理不会读取加密请求。
  • 隧道打开前出现的错误(407、400、502)来自代理;打开后出现的错误来自目标网站。

连接其他端口#

CONNECT 可以为任何 TCP 端口建立隧道,因此 HTTP 代理也能承载 HTTPS 以外的协议。为防止滥用,提供商会限制部分目标端口(邮件使用的 25 端口是最典型的禁用项)。

在 ProxShift 中如何运作#

ProxShift 网关通过 9000 端口、独享地址通过 8000 端口接受 CONNECT,可连接除 25 以外的任何 TCP 端口;隧道内容会原样透传,TLS 绝不会在代理处终止。

准备好即可开始

在真实请求中亲自验证。

创建账户,充值 $20,然后针对你自己的目标运行快速入门示例。已购买的流量永不过期。