TCP 端口开放,并不能证明代理可用
端口检查成功只说明连接建立了,还要检查代理握手与目标返回的预期响应。
TCP 端口开放说明监听端接受了连接。它可能是代理、普通 Web 服务器或其他服务;8080 端口本身不能识别协议。
对于文档明确标为 HTTP 代理的端点,请将真实地址用于有时间限制的 HTTPS 请求:
curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/
必须将文档示例地址换成自己的 HTTP 端点,或HTTP 代理列表中的候选节点。若使用 SOCKS,请选择对应的 SOCKS 客户端模式并完成协商。握手错误可能在 TCP 接受连接后立即导致失败。
| 观测阶段 | 能够说明什么 |
|---|---|
| TCP 连接被接受 | 监听端可以连通。 |
| 代理握手被接受 | 监听端接受了此次代理操作。 |
| 目标 TLS 验证通过 | 客户端按自身信任设置完成了预期的安全连接。 |
| 收到预期状态和内容 | 应用请求得到了预期结果。 |
通过 HTTP 代理访问 HTTPS 时,必须允许 CONNECT 到目标端口。即使CONNECT 返回 200,也只是中间阶段:在 TLS 或最终请求成功之前,隧道仍可能关闭。明文 HTTP 成功并不能证明这种隧道能力。
选择内容可预期的目标,最好由自己控制;如能取得请求记录,也应检查。明文 HTTP 监听端可能根本没有联系目标,就返回状态为 200 的固定页面。收到某个成功状态,证据力度弱于响应符合预期;HTTPS 身份验证还能提供额外保护。
记下最后一个成功阶段。“端口开放,SOCKS 协商被拒绝”能为下一步排查提供有用起点。