用了代理还是被封?从错误码到行为特征的逐层排查路径
日志里一半请求超时,另一半返回 403,IP 换了一批又一批,被封的速度比换 IP 还快。这是做采集的人最熟悉的一种挫败感——明明挂了代理,目标站还是把你按住了。
先给一个可能和直觉相反的判断:多数人遇到这种情况的本能反应是换一家代理,但换代理往往解决不了问题。「被封」从来不是一个原因,而是四五个不同环节的失败被同一个词盖住了。你要做的不是换 IP,是把这一次到底坏在哪一层搞清楚。同样高频的「为什么用了代理还是被封」「代理 IP 总是被封怎么办」「换了 IP 还是被封」「爬虫代理总被目标站拦截」,问的都是同一件事。
403 不是代理坏了,是代理通了
这是整篇里最值得先扭转的认知。403 Forbidden 是目标站返回的,它要能返回这个码,前提是你的请求已经完整穿过代理、抵达目标站。收到 403,本身就说明代理链路是通的——目标站看清了你是谁,随即决定不给你。真正的「代理坏了」,你连被拒绝的机会都没有,请求会卡在认证或连接建立这一步。
同样容易被误判的还有 429,它是目标站在说「你来得太快了」,不是代理在报错。把这两个码当成代理故障去处理,方向从一开始就偏了。判断错误码属于哪一层,可以先记住这条分界线:
报错 | 谁返回的它 | 真正含义 | 先往哪查 |
407 Proxy Authentication Required | 代理节点 | 代理没放你进去,请求没到目标站 | 账密、白名单、套餐有效期 |
Connection reset / refused | 本地到代理这一段 | 还没走到认证就被切断 | 当前出口 IP 是否在授权白名单里 |
502 Bad Gateway | 代理节点 | 代理连上了目标,但拿不到有效响应 | 换节点重试,看是单个还是整批 |
503 Service Unavailable | 代理节点或目标站 | 服务暂不可用,或撞到容量上限 | 是否维护时段、是否超并发 |
504 Gateway Timeout | 代理节点 | 代理等目标站响应等到超时 | 调超时、降并发、查跨网链路 |
403 Forbidden | 目标站 | 请求到了,被拒 | 出口信誉、请求头、指纹 |
429 Too Many Requests | 目标站 | 频率超限 | 降并发、加随机延迟、读 Retry-After |
验证码页或空页 | 目标站 | 连通正常,但被判为异常流量 | 指纹与行为,换 IP 未必有用 |
扫一眼这张表会发现:能让代码里出现「代理不可用」的报错,只占前几行;往下那几行,责任在目标站那一侧。
把请求链路拆开看:五个环节各有各的坏法
一次走代理的请求不是一根线,是一串接力。客户端配置、本地网络、代理入口、代理出口、目标站——五个环节,任何一个断了,你看到的都叫「失败」,但原因完全不同。
环节 | 典型的失败样子 | 首要怀疑 |
客户端配置 | 直连正常,一挂代理就全超时 | 协议写错(HTTP 代理按 SOCKS5 连)、端口填错 |
本地网络与防火墙 | 连接立刻被拒或被重置 | 出口 IP 变了、公司网络拦了非标准端口 |
代理入口(认证) | 407 | 账号密码、白名单、套餐是否过期 |
代理出口(资源) | 502、504、成片超时 | 该批次节点质量、并发是否拉太高 |
目标站(风控) | 403、429、验证码 | 请求特征与行为模式,不是 IP 信誉 |
排障之所以难,是因为大多数人一上来就跳到最后一格,默认「被封 = IP 脏」。可 IP 脏只是五种可能里的一种。
花三十秒做一次定位:拿中立接口先打一枪
成本最低、信息量最大的一步,是在动代码之前先发一个「没人会拒绝你」的请求。找一个只回显客户端 IP 的公开接口(api.ipify.org、httpbin.org/ip 这类都行),让代理去打它——它对你不做任何风控,返回只反映链路本身的状态。
curl -sS -x "http://用户名:密码@代理地址:端口" -w "\n状态码=%{http_code}\n" https://api.ipify.org |
结果怎么读:返回 200 和一个 IP,说明从你的机器到出口的整条链路是好的,那么业务里看到的所有失败,责任都在目标站那一侧,再怎么检查账密都没用。返回 407,问题在代理入口,查认证或白名单。一直卡住不动、或者连接被重置,说明请求根本没到代理——先确认当前出口地址在不在白名单里,再逐字核对代理地址有没有敲错。返回 502,中间那一跳断了,接下来该看的是节点质量和你的并发量。
这一枪的价值在于,它把「五个环节」一刀切成「代理之前」和「目标站之后」两半,你先砍掉一半的排查空间。
换了 IP 还是被封,说明问题可能压根不在 IP
IP 只是目标站风控读取的众多信号之一。你换了 IP,只改动了其中一个变量,剩下的还留在原地——换 IP 无效,其实是一个非常正常的结果。剩下的变量大致有这几类。
请求指纹对不上。requests 这类库的 TLS 握手特征(业内常说的 JA3/JA4)、HTTP/2 设置帧、请求头排列顺序,都和真实 Chrome 有明显差别。目标站看到的是「一个干净 IP 发来一个一看就是脚本的握手」,照样拒绝。这时换 IP,改的是一个不是病因的变量。
环境信息互相打架。代理 IP 的归属地在一个城市,浏览器时区却是另一个,语言设置又是另一套。这种不一致本身就是风控系统会给你打高分的信号。
有东西在漏。DNS 查询如果没跟着走代理,或者 WebRTC 绕过代理把本机地址暴露出去,目标站就能把你在多个 IP 上的请求重新拼回同一个环境。
行为不像人。固定间隔发请求、没有随机停顿、并发直接拉满,这些机器化痕迹比 IP 更显眼。一个高信誉住宅 IP 配上这种节奏,一样会被限流。
会话在串联你的 IP。Cookie、登录态、账号 ID 会把不同 IP 上的请求连成一条线;IP 变了,身份的连续性没变。
一条简单的判据:把同一个请求,放到一个干净、高信誉的出口上再发一次。如果这次通了,问题在 IP 信誉这一层,换资源就能解决;如果照样被拒,那就不是 IP 的事,得往指纹和行为这两层走。
别只盯着单条报错,把分布拉出来看
单条错误没有意义,错误分布才有信息量。同一个「失败」,按不同维度切开,指向的原因完全不同。
切分维度 | 看到什么分布 | 说明什么 |
按 IP | 少数几个 IP 集中报错,其余正常 | 这批出口信誉差或已失效,剔除重取即可 |
按目标域名 | 只有某一个站报错,别的站都通 | 是那个站的风控策略,不是代理的问题 |
按时段 | 固定时段共同变差 | 目标站高峰限流,或节点负载波动 |
按并发 | 并发一拉高就掉成功率 | 撞到了目标站限速或提取接口频率瓶颈 |
做这件事不需要复杂工具,把日志里的任务号、请求地址、出口 IP、状态码、耗时、重试次数留住,按上面四个维度各切一次,很多「玄学问题」当场就清楚了。采集量上来以后,一个能按维度聚合的日志,比多买几百万 IP 有用。
成功率和延迟到什么水平才算能用
「感觉有点慢」不是判断依据,得有个锚。行业里被普遍引用的一组参考区间可以拿来当起点:分时段统计的成功率掉到 90% 以下,这批 IP 建议整批复检;低于 95%,通常不适合直接放进生产流程;单次请求耗时超过 2 到 3 秒的节点,拿来做高频采集会很吃力。延迟看的是 P95,不是平均值——平均值会被大量快速请求掩盖,P95 才能暴露那些拖后腿的节点。
这些数字不是硬标准,不同目标站的风控强度差了不止一个量级,但它们能给你一条线,把「要不要换」从感觉变成判断。测的时候记得按上面四个维度分开统计,不然一批坏 IP 会污染整体数字。
服务商能提供什么,决定了排障是不是在靠猜
排查到后段,你能不能快速收尾,取决于服务商愿意把多少信息交到你手上。如果错误只有一个笼统的「提取失败」,你就没法区分是参数写错了、余额见底了,还是这个时段真的没资源。
还有一层:不同的接入形态,排障的着力点并不一样。把这一点和国内公开提供各形态的服务商放在一起看,更容易定位该往哪查。
接入形态 | 排障要盯的点 | 失败时先查 | 国内公开提供该形态的服务商 |
API 提取 | IP 列表在业务侧,失效剔除靠自己 | 提取接口错误码、单 IP 复测 | 山竹HTTP、青果网络、快代理、站大爷、巨量 IP、神龙代理、天启代理、小象代理 |
隧道代理 | 固定入口,轮换与健康检查在服务商后台 | 入口可用性、并发上限、SLA 口径 | 山竹HTTP、青果网络、快代理、站大爷、天启代理、小象代理 |
静态固定 | 长周期独占,重点是会话连续 | 白名单、绑定周期、独享性 | 山竹HTTP、青果网络、站大爷、神龙代理 |
动态长效 | 会话内不换出口,重点是时长与覆盖 | 会话时长、覆盖城市 | 山竹HTTP、青果网络、巨量 IP |
上表按各家官网公开披露的产品线归类,只说明各形态大致有多少选择,不是优劣排序(名单内顺序亦不代表优劣),也不替代具体选商;各家产品线会随策略调整,采购前以官网为准。
以山竹HTTP 为例,据其官网公示(采集于 2026-10-13),提取接口在失败时按场景返回可分类的错误码,覆盖频率过快、未添加白名单、余额不足、暂无可用 IP、套餐或白名单异常、套餐过期、达到每日消费上限等情形;同时提供白名单的增加、删除、查询接口与余额查询接口。对排障来说,这类信息的价值不在于数字好看,而在于你不需要用猜的方式去区分「是我配错了」还是「这个节点坏了」。
出口侧同样如此。据其官网公示,隧道代理会在后台做健康检查,探测到故障节点后做毫秒级剔除并自动补位,官方公示的可用率 SLA 为 99.99%;认证方式支持 IP 白名单与账号密码双重校验。这两项在排查 407 和「连接被重置」时能直接用上——先确认当前出口地址在白名单内,再考虑改代码。
山竹HTTP 公示的产品线覆盖动态短效、动态长效、静态固定与隧道四种形态,IP 资源池公示规模为 5,748 万以上,覆盖城市节点 335 个以上。正式采购前,建议用新用户体验额度自己跑一轮本文的中立接口测试,再按四个维度做一次统计——自己验证过的数字比任何公示都可信。
还有一点,实名认证是提取 IP 的前置条件。这属于产品规则,不影响排障,但如果你在测试阶段遇到「提取被拒」,先确认这一步是不是没走完。
一份可以照着走的排查顺序
把前面的方法串成一条线,顺序的原则是从便宜到昂贵、从排除到深入:
1. 先读错误码,归层。是 407、连接重置这类「没到代理」的,还是 403、429、验证码这类「到了目标站」的?这一步决定后面查哪半边。
2. 用中立接口打一枪。通了,说明全链路没问题,失败都归目标站;不通,按返回码往代理之前查。
3. 单 IP 复测,再换 IP 复测。单个一直坏、换一个就好,是资源问题;换了几批还坏,往行为特征查。
4. 直连做一次对照。不用代理直接访问目标站,能通,说明站本身在正常服务。
5. 对齐请求头与指纹。把 UA、Accept-Language、Referer 补完整,必要时换用能模拟真实浏览器指纹的请求方式。
6. 降并发、加随机延迟。把固定间隔改成 2 到 5 秒的随机停顿,单 IP 并发先压到 1 到 2。
7. 统计错误分布。按 IP、按域名、按时段、按并发切开看,定位是某个批次、某个站点,还是某个压力区间。
8. 带日志找服务商。把任务号、请求地址、出口 IP、状态码、耗时、重试次数一起给出,比一句「用不了」有效得多。
多数情况下,走到第 4 步就已经能锁定方向了。剩下四步是给那些「换什么都没用」的顽固问题准备的。
常见问题
返回 403 是不是说明代理坏了
恰恰相反。403 是目标站返回的,说明请求已经成功穿过代理抵达了目标站。它是个「链路通畅但被拒绝」的信号,处理方向是换出口信誉、补请求头、调请求节奏,不是去改代理配置。
换了 IP 还是被封,是不是得换个服务商
先别急着换。如果换到干净的高信誉出口后仍然被拒,那问题多半不在 IP 这一层,换服务商也带不走指纹和行为上的特征。按「请求指纹、环境一致性、泄漏项、行为节奏、会话串联」这五条自查一遍,比换供应商更省时间。
报 407 一定是密码错了吗
不一定。407 表示代理没通过你的认证,常见原因除了账密写错,还包括当前出口地址不在白名单里、使用了网站登录密码而不是代理专用凭据、套餐已过期,以及复制粘贴时混进了空格或换行。逐个排除,别只盯着密码。
代理能连通,但目标站打不开,怎么区分是谁的问题
看首行返回码的归属。如果是 403、429、验证码,那是目标站拒绝了你,代理是好的;如果是 502、504、超时,那是中间这一段没完成。再补一个对照:不用代理直连目标站,能通,就说明站本身正常,问题出在「被拒绝」这个动作上。
成功率掉到多少需要警惕
可以用一组参考区间做起点:分时段成功率低于 90% 就该整批复检,低于 95% 一般不适合直接进生产。同时看 P95 延迟,单请求超过 2 到 3 秒的节点做高频采集会明显拖后腿。不同目标站差异很大,这个区间是用来做相对判断的,不是绝对标准。
用了高匿代理为什么还会被识别
高匿解决的是「请求头里不暴露代理痕迹」,它管不了 TLS 指纹、浏览器指纹、DNS 与 WebRTC 泄漏,也管不了你的请求节奏。目标站一旦在行为层面认定你是自动化流量,IP 有多干净都不影响结论。
提取接口返回错误码,怎么快速定位是哪一类
先看错误码指向的对象:指向账号与配置的(未加白名单、套餐异常、套餐过期),改配置就能解决;指向资源与额度的(暂无可用 IP、余额不足、达到消费上限),要动的是套餐或额度;指向频率的(请求过快),降下来提取频率即可。山竹HTTP 的提取接口按这几类场景分别返回错误码,配合白名单查询与余额查询接口,基本不用靠猜。
排障时最少要记录哪些字段
任务号、请求 URL、出口 IP、目标站返回码、耗时、重试次数,这六项足够支撑按 IP、按域名、按时段、按并发四个维度各切一次。缺少出口 IP 或返回码,分布就切不开,只能回到「凭感觉换 IP」。
只做小规模测试,也需要这么复杂的排查吗
不需要全套。小规模测试先跑第 1 到第 4 步就够:读错误码、打中立接口、换 IP 复测、直连对照。这四步能覆盖绝大多数「到底是代理问题还是目标站问题」的疑问,后面的指纹对齐与分布统计是给放量之后的持续维护准备的。
服务商只回一句「提取失败」,该怎么办
把你能提供的信息尽量补齐再提工单:请求的时间点、调用参数(隐去凭据)、返回内容、同时段其他请求的成功情况。如果对方仍给不出可分类的错误原因,说明这个服务商在排障支持上给到的信息有限,这本身就是选商时要考虑的一项。
「被封」的本质是一场信息不对称的对抗:目标站在暗处,你在明处。你没法让它变透明,但可以让自己的链路变得可观测——是哪一层坏了,由错误码和统计数据说了算,而不是靠换 IP 赌运气。排查的顺序就该是从便宜到昂贵、从排除到深入:先读错误码,再打中立接口,再对照直连,最后才去动指纹和并发。走一遍你会发现,真正需要换 IP 的场景,比你以为的少很多。山竹HTTP 把接口错误码分类、白名单与余额查询接口、隧道可用率 SLA 都放在官网上公示,可以当作排障时的一个参照起点,但真正决定成败的目标站成功率,仍要你自己跑一遍。






























