代理故障排查
根据收到的具体响应诊断代理错误,包括 407、403 Tunnel Failed、503、超时、被拦截的端口以及 IP 意外变化。
首先用 curl 以详细模式(verbose)运行请求。它可以显示问题出在连接代理、代理认证还是访问目标网站。
curl -v -x "http://USERNAME:PASSWORD@HOST:PORT" https://ipinfo.io/jsonCONNECT 之后以 < 开头的行就是代理的响应。200 Connection Established 表示代理已接受你的连接,之后出现的任何错误都来自目标网站。
读懂代理的响应
状态码后面的文字说明了是哪一侧出了问题。Tunnel Failed 表示凭据已通过认证,但到目标的线路没有打开。其他任何文字都表示代理本身拒绝了连接。
| 响应行 | 含义 | 前往 |
|---|---|---|
407 Proxy Authentication Required | 用户名或密码错误。 | 认证错误 |
503 Service Unavailable | 流量额度已用完,或代理已过期或被取消。 | 账户与额度 |
403 Tunnel Failed | 目标端口或网站不被允许。 | 被拦截的端口和网站 |
502 Tunnel Failed | 线路在 15 秒内没有响应,或暂时无法访问。 | 超时 |
503 Tunnel Failed | 该 IP 暂时超出了限制。 | 速率与并发限制 |
同样的错误在常见客户端中的表现如下:
| 客户端 | 认证错误 | 线路错误(Tunnel Failed) |
|---|---|---|
| curl,HTTP 代理 | curl: (56) CONNECT tunnel failed, response 407 | curl: (56) CONNECT tunnel failed, response 403(或 502、503) |
| curl,SOCKS5 | User was rejected by the SOCKS5 server (1 1). | Can't complete SOCKS5 connection to HOST. (5) |
Python requests | Tunnel connection failed: 407 Proxy Authentication Required | Tunnel connection failed: 403 Tunnel Failed |
Node.js undici | Proxy response (407) !== 200 when HTTP Tunneling | Proxy response (403) !== 200 when HTTP Tunneling |
SOCKS5 没有状态码,所有线路故障都会返回回复码 5("connection refused")。要查看具体原因,请通过 HTTP 入口再运行一次同样的请求。
认证错误(407)
代理没有接受你的用户名或密码。常见原因:
- 路由参数被加在了用户名上,它们应该加在密码上。
- 国家/地区代码是小写,或会话 ID 不是恰好 8 位数字。
- 静态 ISP 代理的密码被加了后缀。静态 ISP 代理不接受任何参数。
- 把 Search1API API 密钥当作了密码。
- 密码中的
@、:、#等字符在代理 URL 中没有进行 URL 编码。
请从仪表盘重新复制连接,或使用代理页面快速开始下的代码,它们都已经过编码。格式说明请参阅动态代理参数。
客户端用错误的密码反复重试只会收到更多 407 错误。请先停下来修正凭据。
账户与额度(503)
收到 503 Service Unavailable,或 SOCKS5 连接在任何回复之前就关闭,表示代理正在拒绝该订单的新连接:
- 本计费周期的动态代理流量额度已用完。
- 代理已过期或被取消,其端口已被释放。
请在代理页面查看带宽和状态。流量会在下一个计费周期或续费后恢复。
被拦截的端口和网站(403 Tunnel Failed)
这是最常见的线路错误。你的凭据没有问题,但目标不被允许。
端口。静态 ISP 代理是为网页流量设计的。端口 80 和 443 在所有 IP 上都可用。其他端口可能在部分或全部 IP 上以 403 Tunnel Failed 被拒绝,包括推送通知(5228)、SSH(22)、DNS over TLS(853)、备用 Web 端口(8080、8081、8443)以及游戏或应用端口。邮件发送(SMTP,25 端口)不可用。
网站。部分类别的网站受到限制:银行与支付、加密货币交易所以及部分政府网站。
要确认原因,请测试 https://ipinfo.io/json。如果它可以访问而你的目标不行,说明目标被拦截了。重试没有帮助:同一端口或网站每次都会以同样的方式失败。
不要把代理当作全设备 VPN 使用
如果你在 Clash、Shadowrocket、Surge 或系统代理设置中以全局模式添加代理,设备上所有应用的流量都会经过它,包括推送服务、DNS、遥测和后台同步。这些流量大多使用被拦截的端口,因此会失败、占用并发数,并可能导致 IP 被限速。请使用规则模式,只让你需要访问的网站走代理。
超时(502 Tunnel Failed)
代理最多等待 15 秒来打开到目标的线路。如果未能及时打开,你会收到 502 Tunnel Failed,或 SOCKS5 回复码 5。
- 将客户端的连接超时设置为至少 30 秒。超时时间更短时,客户端会先放弃,你只能看到一个笼统的超时错误。
- 在新连接上以退避策略重试。
- 如果某个静态 IP 在其他环境下能正常访问的网站上反复超时,请在仪表盘的帮助页面申请更换。
- 使用动态网关时,可以尝试全球 IP 池或其他国家/地区。
速率与并发限制(503 Tunnel Failed)
503 Tunnel Failed 表示该 IP 暂时超出了限制。这通常发生在大量并行连接突发时,或单个 IP 月流量非常高之后。
- 使用静态 ISP 代理 Pro 和 Premium 时,请将每个 IP 的并发连接数控制在约 90 以内。超过 100 时,新连接可能会被拒绝。
- 使用静态 ISP 代理 Pro 和 Premium 时,单个 IP 月流量超过约 100 GB 后,可能会被限速直到计费周期结束。
- 通过 keep-alive 复用连接,而不是每个请求都新建连接,并把繁重的任务分散到更多 IP 上。
- 遇到此错误时请退避。立即重试会让该 IP 持续超出限制。
其他连接问题
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
连接代理时出现 Connection refused 或超时 | Host 或端口错误(例如用了出口 IP 而不是 Host,或用了旧订单的端口)。代理已过期,其端口已被释放。你的网络拦截了出站端口。 | 使用仪表盘当前显示的 Host 和端口。换一个网络测试,以排除本地防火墙的影响。 |
代理出现 SSL routines::wrong version number 或类似的 TLS 错误 | 代理 URL 以 https:// 开头。 | 即使目标网站使用 HTTPS,代理 URL 也要使用 http://。 |
SOCKS5 能连接,但访问目标失败或解析为 198.18.x.x | 使用 socks5:// 时由你的机器解析 DNS,而本地代理软件(例如处于 fake-IP 模式的 Clash)返回了虚假地址。 | 使用 socks5h://,让 DNS 在代理端解析。 |
返回 200 Connection Established 后,网站返回 403、验证码或拦截页面 | 网站检测到了自动化流量。代理本身工作正常。 | 降低请求频率,发送真实的请求头,并在多步骤流程中使用粘性会话。对于会封锁动态 IP 池的网站,可以尝试静态 ISP 代理。 |
IP 与位置
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 动态 IP 没有变化 | 你的客户端复用了同一个连接,而新 IP 只会在新连接时分配。 | 为每个请求建立新连接,或使用新的会话 ID。参阅轮换机制。 |
| 粘性 IP 在 TTL 结束前就变了 | 会话 ID 发生了变化、TTL 已过期,或住宅 IP 下线了。 | 复用同一个会话 ID。如果需要一个永不变化的 IP,请使用静态 ISP 代理。 |
| 国家/地区与你选择的不一致 | 在复制连接之后才设置国家/地区,因此复制的密码中没有 _country- 参数。 | 先设置出口国家/地区再复制,并检查密码中是否包含 _country-CC。 |
| 不同的 IP 检测网站显示的国家/地区或类型不同 | 每个 IP 数据库都有各自的数据来源和更新周期。 | 对比多个检测网站的结果。对于静态 ISP 代理,IP 详情页会显示四家服务商的检测结果。 |
连接中断
- 空闲 5 分钟的连接会被关闭。请重新连接,或在长连接上定期发送流量。
- 动态代理额度用完后,已打开的连接会被关闭,新连接会收到
503 Service Unavailable。 - 静态 ISP 代理 Basic 每个 IP 每月包含 80 GB 流量。
联系支持
打开仪表盘的帮助页面,选择代理作为问题类型。请提供代理实例 ID、协议、故障发生的时间(含时区)、目标域名和端口,以及去除密码后的 curl -v 输出。