通信过程#
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 绝不会在代理处终止。