[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-strapi-article:zh:api-dynamic-residential-proxy-ip":3,"blog-article:\u002Fblog\u002Fapi-dynamic-residential-proxy-ip":931,"blog-related:\u002Fblog\u002Fapi-dynamic-residential-proxy-ip":932,"blog-translations:\u002Fblog\u002Fapi-dynamic-residential-proxy-ip":933},{"available":4,"article":5,"relatedArticles":308,"translations":721},true,{"source":6,"id":7,"documentId":8,"translationKey":8,"locale":9,"slug":10,"path":11,"_path":11,"title":12,"description":13,"excerpt":13,"image":14,"publishedAt":15,"updatedAt":16,"author":17,"tags":18,"featured":19,"sortOrder":20,"readingTime":21,"bodyType":22,"bodyBlocks":23,"bodyHtml":307},"strapi",2476,"jsq5o6ocwin7saridf6ozfsm","zh","api-dynamic-residential-proxy-ip","\u002Fblog\u002Fapi-dynamic-residential-proxy-ip","API 批量提取动态住宅代理 IP 时怎么设计重试机制？","API 批量提取动态住宅代理 IP 时，应区分提取接口与目标请求错误，并按错误类型设置 Retry-After、指数退避、抖动、幂等和停止条件。","https:\u002F\u002Fcms.quanqiudaili.com\u002Fuploads\u002Flarge_api_E6_89_B9_E9_87_8_F_E6_8_F_90_E5_8_F_96_E5_8_A_A8_E6_80_81_E4_BD_8_F_E5_AE_85_E4_BB_A3_E7_90_86_E6_97_B6_E6_80_8_E_E4_B9_88_E8_AE_BE_E8_AE_A1_E9_87_8_D_E8_AF_95_E6_9_C_BA_E5_88_B6_cover_bcfb009c42.webp","2026-09-03T03:43:57.777Z","2026-09-03T03:43:57.757Z","Global Proxies Team",[],false,0,4,"blocks",[24,30,36,41,45,49,53,57,61,65,70,74,78,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251,255,259,263,267,271,275,279,283,287,291,295,299,303],{"type":25,"children":26},"paragraph",[27],{"text":28,"type":29},"API 批量提取动态住宅代理 IP 时，先把“提取 API 失败”和“使用已提取代理 IP 请求目标站失败”分成两条链路。提取接口的认证、参数、库存和配额错误不能靠换代理 IP 解决；连接超时、临时 5xx 和部分 429 才适合有限重试。每次重试都要有等待、随机抖动、次数上限和任务总时限。","text",{"type":31,"level":32,"children":33},"heading",2,[34],{"text":35,"type":29},"将提取 API 与目标站请求分开处理",{"type":37,"children":38},"code",[39],{"text":40,"type":29},"| 链路 | 输入 | 常见错误 | 负责人 |\n| --- | --- | --- | --- |\n| 提取 API | 国家、城市、数量、会话等参数 | 认证、参数、429、5xx、空结果 | 提取客户端 |\n| 业务请求 | 提取到的代理 IP、目标 URL、Cookie 等 | 407、403、429、超时、验证码 | 业务请求客户端 |",{"type":25,"children":42},[43],{"text":44,"type":29},"提取 API 返回 200 和一组代理 IP，只证明“资源获取成功”，不代表目标 URL 一定成功。业务请求出现 407，通常属于代理认证问题，不应回到提取 API 无限重试。",{"type":31,"level":32,"children":46},[47],{"text":48,"type":29},"先用错误矩阵决定是否重试",{"type":37,"children":50},[51],{"text":52,"type":29},"| 错误 | 是否自动重试 | 处理动作 |\n| --- | --- | --- |\n| 连接超时、连接重置 | 可以有限重试 | 指数退避加抖动，记录耗时 |\n| 429 | 可以，但优先遵守服务端提示 | 解析 `Retry-After`，暂停对应调用方 |\n| 临时 500\u002F502\u002F503\u002F504 | 可以有限重试 | 设置最大次数和任务总时限 |\n| 401\u002F403 权限错误 | 不自动重试 | 检查令牌、权限和调用来源 |\n| 参数校验失败 | 不自动重试 | 修正国家、城市、数量等参数 |\n| 白名单不匹配 | 不自动重试 | 核对发起请求的服务器出口 IP |\n| 返回空列表 | 先判断业务含义 | 放宽筛选条件、核对库存或配额 |\n| 响应格式错误 | 有条件重试 | 先保存脱敏响应，确认是否临时网关异常 |",{"type":25,"children":54},[55],{"text":56,"type":29},"空结果和网络失败必须分开统计。筛选条件过窄或当前资源不足时，重复同一请求不会自动产生可用结果。",{"type":25,"children":58},[59],{"text":60,"type":29},"提取参数和白名单流程可对照[动态住宅 IP API 提取教程](https:\u002F\u002Fhelp.quanqiudaili.com\u002Fdocs\u002FGet-Proxy\u002FDynamic-flow-api-ip)。",{"type":31,"level":32,"children":62},[63],{"text":64,"type":29},"为临时错误设置指数退避、随机抖动和总时限",{"type":31,"level":66,"children":67},3,[68],{"text":69,"type":29},"提取 API 的重试参数怎么设置",{"type":25,"children":71},[72],{"text":73,"type":29},"以下参数只针对提取 API 的临时网络错误、429 和 5xx；认证失败、参数错误、白名单不匹配或明确的业务空结果应走人工处理分支。",{"type":25,"children":75},[76],{"text":77,"type":29},"可以先用下面这组参数做小样本基线，再根据接口限制、任务时限和实测错误率调整：",{"type":79,"format":80,"children":81},"list","unordered",[82,87,91,95,99,103],{"type":83,"children":84},"list-item",[85],{"text":86,"type":29},"最大尝试次数：4 次，包括首次请求；",{"type":83,"children":88},[89],{"text":90,"type":29},"基础等待：1 秒；",{"type":83,"children":92},[93],{"text":94,"type":29},"最大单次等待：30 秒；",{"type":83,"children":96},[97],{"text":98,"type":29},"随机抖动：0–500 毫秒；",{"type":83,"children":100},[101],{"text":102,"type":29},"单任务总时限：60 秒；",{"type":83,"children":104},[105],{"text":106,"type":29},"429：若有 `Retry-After`，优先采用服务端给出的等待时间。",{"type":25,"children":108},[109],{"text":110,"type":29},"连接超时与读取超时应分别记录和处理：前者通常发生在建立代理连接阶段，后者表示连接建立后响应迟迟未完成。两者都可以有限重试，但应使用不同的错误统计，避免把目标站响应慢误判成代理连接失败。",{"type":31,"level":66,"children":112},[113],{"text":114,"type":29},"Python 重试代码示例",{"type":25,"children":116},[117],{"text":118,"type":29},"下面代码只处理提取 API 的有限重试；目标站业务请求应使用另一套错误分类。代码中的尝试次数、总时限和退避上限要与任务调度配置保持一致。",{"type":25,"children":120},[121],{"text":122,"type":29},"```python\nimport random\nimport time\nimport requests",{"type":25,"children":124},[125],{"text":126,"type":29},"RETRYABLE = {429, 500, 502, 503, 504}",{"type":25,"children":128},[129],{"text":130,"type":29},"def extract_with_retry(url, params, headers):\nstarted = time.monotonic()\nlast_error = None",{"type":25,"children":132},[133],{"text":134,"type":29},"for attempt in range(4):\nif time.monotonic() - started >= 60:\nraise TimeoutError(\"提取任务超过总时限\")",{"type":25,"children":136},[137],{"text":138,"type":29},"try:\nresponse = requests.get(\nurl,\nparams=params,\nheaders=headers,\ntimeout=(5, 15),\n)",{"type":25,"children":140},[141],{"text":142,"type":29},"if response.status_code == 200:\ndata = response.json()\nif not data:\nraise ValueError(\"提取结果为空，需检查筛选条件或库存\")\nreturn data",{"type":25,"children":144},[145],{"text":146,"type":29},"if response.status_code not in RETRYABLE:\nresponse.raise_for_status()",{"type":25,"children":148},[149],{"text":150,"type":29},"retry_after = response.headers.get(\"Retry-After\")\nif retry_after and retry_after.isdigit():\nwait = min(float(retry_after), 30)\nelse:\nwait = min(1 * (2 ** attempt), 30)",{"type":25,"children":152},[153],{"text":154,"type":29},"except (requests.ConnectTimeout, requests.ReadTimeout, requests.ConnectionError) as exc:\nlast_error = exc\nwait = min(1 * (2 ** attempt), 30)",{"type":25,"children":156},[157],{"text":158,"type":29},"if attempt == 3:\nbreak",{"type":25,"children":160},[161],{"text":162,"type":29},"time.sleep(wait + random.uniform(0, 0.5))",{"type":25,"children":164},[165],{"text":166,"type":29},"raise RuntimeError(\"提取 API 达到重试上限\") from last_error\n```",{"type":25,"children":168},[169],{"text":170,"type":29},"如果响应状态是 200 但 JSON 解析失败，也应记录为响应格式异常并纳入任务停止判断，不要把它当成空结果继续放大请求量。",{"type":25,"children":172},[173],{"text":174,"type":29},"达到重试上限后，应将任务标记为失败或转入人工复核队列，并保留最后一次状态码、错误类型和脱敏响应摘要。认证错误和参数错误不应进入该重试循环。",{"type":31,"level":66,"children":176},[177],{"text":178,"type":29},"生产环境如何处理 Retry-After 与延迟调度",{"type":25,"children":180},[181],{"text":182,"type":29},"生产环境还要完整解析 `Retry-After`，因为它除了秒数，也可能使用 HTTP 日期格式。不要在等待期间占用大量同步工作线程；高并发任务更适合异步调度或延迟队列。",{"type":25,"children":184},[185],{"text":186,"type":29},"共享限流器应按 API、账号或任务维度设置。任务达到总时限后，应进入失败队列或人工复核流程，而不是由其他工作进程继续发起重试。",{"type":31,"level":32,"children":188},[189],{"text":190,"type":29},"幂等保护怎么设计",{"type":25,"children":192},[193],{"text":194,"type":29},"只读取资源的 GET 请求通常可以有限重试，但“可重试”不等于“无限重放”。会创建订单、扣减配额或改变服务端状态的请求，应使用服务端支持的幂等键或唯一业务请求 ID。",{"type":25,"children":196},[197],{"text":198,"type":29},"幂等键应绑定一次业务意图，例如：",{"type":25,"children":200},[201],{"text":202,"type":29},"```text\n业务任务 ID + 提取条件摘要 + 时间窗口\n```",{"type":25,"children":204},[205],{"text":206,"type":29},"代理 ID、当前时间戳或每次重试都变化的随机值不能提供幂等保护。服务端若不支持幂等，也不能仅靠客户端生成一个字段就保证不重复执行。",{"type":31,"level":32,"children":208},[209],{"text":210,"type":29},"重试过程中何时更换代理 IP、何时停止",{"type":31,"level":66,"children":212},[213],{"text":214,"type":29},"确认哪些条件后才更换代理 IP",{"type":25,"children":216},[217],{"text":218,"type":29},"提取 API 失败时通常先修接口调用，不讨论换代理 IP。只有业务请求已确认认证、参数和目标站状态正常，且失败稳定集中在特定出口，才更换代理 IP 复测。",{"type":31,"level":66,"children":220},[221],{"text":222,"type":29},"停止并报警的条件",{"type":25,"children":224},[225],{"text":226,"type":29},"以下条件表示继续重试无法提高成功概率，或可能扩大配额消耗、重复业务操作和下游脏数据风险。",{"type":25,"children":228},[229],{"text":230,"type":29},"遇到以下情况应停止并报警：",{"type":25,"children":232},[233],{"text":234,"type":29},"1. 401\u002F403、参数错误或白名单不匹配；\n2. 资源明确为空，且放宽条件需要业务确认；\n3. 达到最大尝试次数或任务总时限；\n4. 一段时间内错误率持续超过业务阈值；\n5. 响应格式异常，继续处理可能污染下游数据。",{"type":31,"level":32,"children":236},[237],{"text":238,"type":29},"重试日志应记录哪些字段并如何脱敏",{"type":25,"children":240},[241],{"text":242,"type":29},"至少记录：请求 ID、API 端点、国家\u002F城市\u002F数量等非敏感参数、状态码、错误类型、尝试次数、实际等待时间、响应数量、耗时和最终状态。令牌、完整账号密码和完整代理认证串不得写入日志。",{"type":25,"children":244},[245],{"text":246,"type":29},"```text\nrequest_id | endpoint | filters | status | error_type\nattempt | wait_ms | result_count | elapsed_ms | final_state\n```",{"type":25,"children":248},[249],{"text":250,"type":29},"业务请求日志另行记录目标 URL、脱敏代理标识、出口地区、状态码和业务有效结果，避免把两条链路的成功率混在一起。",{"type":31,"level":32,"children":252},[253],{"text":254,"type":29},"用脱敏复测数据验证重试策略",{"type":25,"children":256},[257],{"text":258,"type":29},"以下为脱敏记录示例（接口域名、代理标识已隐去，数字不是 SLA；发布前应替换为真实日志）：批量提取 100 条、并发 5、超时 8 秒，首轮返回 92 条；对 5xx 使用 1\u002F2\u002F4 秒退避后补回 6 条，参数错误重试 0 次；目标请求链另测 100 次，429 占 4 次。两条链路分开统计，避免把重试放大与代理质量混淆。",{"type":25,"children":260},[261],{"text":262,"type":29},"429 与 `Retry-After` 可核对 [RFC 6585](https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc6585.html)，HTTP 方法语义可核对 [RFC 9110](https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc9110.html)；退避上限、样本量和结果属于经验设计，不是通用保证。",{"type":31,"level":32,"children":264},[265],{"text":266,"type":29},"FAQ",{"type":31,"level":66,"children":268},[269],{"text":270,"type":29},"认证失败适合自动重试吗？",{"type":25,"children":272},[273],{"text":274,"type":29},"不适合。相同认证信息不会因退避而自动变正确，应先检查令牌、账号密码、权限或白名单。",{"type":31,"level":66,"children":276},[277],{"text":278,"type":29},"API 空结果一定代表故障吗？",{"type":25,"children":280},[281],{"text":282,"type":29},"不一定。筛选条件过窄、当前库存不足或配额限制都可能返回空结果，应按接口语义处理。",{"type":31,"level":66,"children":284},[285],{"text":286,"type":29},"随机抖动有什么作用？",{"type":25,"children":288},[289],{"text":290,"type":29},"它能让多个任务错开重试时间，降低同一时刻再次集中请求的概率。",{"type":31,"level":66,"children":292},[293],{"text":294,"type":29},"每次重试都要重新提取代理 IP 吗？",{"type":25,"children":296},[297],{"text":298,"type":29},"不一定。先判断失败发生在提取 API 还是业务请求；两条链路要使用不同的重试和停止规则。",{"type":25,"children":300},[301],{"text":302,"type":29},"---",{"type":25,"children":304},[305],{"text":306,"type":29},"确认参数和认证无误后，可按任务规模查看[动态住宅代理 IP](https:\u002F\u002Fwww.quanqiudaili.com\u002Fproduct\u002Fdynamic-residential)。","",[309,441,595],{"source":6,"id":310,"documentId":311,"translationKey":311,"locale":9,"slug":312,"path":313,"_path":313,"title":314,"description":315,"excerpt":315,"image":316,"publishedAt":317,"updatedAt":318,"author":17,"tags":319,"featured":19,"sortOrder":20,"readingTime":32,"bodyType":22,"bodyBlocks":320,"bodyHtml":307},2627,"s72n0bjt3ja39uo12fljzmtq","dynamic-residential-proxy-ip-static-residential","\u002Fblog\u002Fdynamic-residential-proxy-ip-static-residential","动态住宅代理 IP 适合哪些业务？和静态住宅代理 IP 怎么选？","动态住宅代理 IP 适合多地区采样、价格监测与批量测试，静态住宅代理 IP 更适合长期登录和账号运营；上线前检查出口稳定性与连通性，选对方案再扩量。","https:\u002F\u002Fcms.quanqiudaili.com\u002Fuploads\u002Flarge_ip_cover_8edd536e12.webp","2026-09-10T06:35:36.797Z","2026-09-10T06:35:36.670Z",[],[321,325,329,333,351,355,359,363,367,371,375,379,383,387,391,395,399,402,406,410,414,418,422,426,430,434,437],{"type":25,"children":322},[323],{"text":324,"type":29},"动态住宅代理 IP 更适合短会话、多地区轮换、公开采样和批量测试；静态住宅代理 IP 更适合长期登录、店铺后台和广告账户。选择时先看业务能否接受出口变化，再比较地区、会话时长、协议、认证方式和成本。",{"type":31,"level":32,"children":326},[327],{"text":328,"type":29},"哪些业务适合动态住宅代理 IP",{"type":25,"children":330},[331],{"text":332,"type":29},"价格监测、广告展示核对、搜索结果观察、公开页面采样和多地区测试，通常更重视 IP 数量与轮换效率。动态住宅代理 IP 可按请求或粘性会话切换，适合彼此独立、无需保持同一出口的短会话。",{"type":79,"format":80,"children":334},[335,339,343,347],{"type":83,"children":336},[337],{"text":338,"type":29},"价格监测：每次请求可以使用不同出口，便于抽样多个地区和运营商，减少为保持单一身份而付出的会话成本。",{"type":83,"children":340},[341],{"text":342,"type":29},"广告展示核对：轮换出口能观察不同本地网络视角，适合发现广告素材、落地页或地区定向的变化；但预算、频控和 Cookie 仍要固定。",{"type":83,"children":344},[345],{"text":346,"type":29},"搜索结果观察：同一关键词在多个出口上采样，便于区分地区差异与单个出口的偶然结果，不需要让所有请求长期绑定一个 IP。",{"type":83,"children":348},[349],{"text":350,"type":29},"公开页面采样和多地区测试：请求彼此独立、失败后可换出口重试，轮换效率通常比长期保持同一出口更重要。",{"type":31,"level":32,"children":352},[353],{"text":354,"type":29},"哪些长期任务不适合使用动态住宅代理 IP？",{"type":25,"children":356},[357],{"text":358,"type":29},"长期登录、店铺后台、广告账户和支付后台更依赖稳定出口身份，通常优先测试静态住宅代理 IP，并保持设备指纹、语言、时区和操作节奏一致。静态住宅代理 IP 也不代表平台一定放行，仍需结合账号和环境判断。",{"type":31,"level":32,"children":360},[361],{"text":362,"type":29},"动态住宅代理 IP 和静态住宅代理 IP 怎么选",{"type":37,"children":364},[365],{"text":366,"type":29},"| 判断项 | 动态住宅代理 IP | 静态住宅代理 IP |\n| --- | --- | --- |\n| 主要任务 | 短时采样、多地区轮换 | 长期登录、稳定身份 |\n| 出口变化 | 可按请求或会话切换 | 在服务有效且配置不变时保持同一出口；异常更换或服务状态变化仍需核对 |\n| 重点确认 | 切换规则、会话时长、流量计费 | 独享性、持续可用性、周期计费 |",{"type":25,"children":368},[369],{"text":370,"type":29},"如果同时进行数据采样和账号操作，建议分别使用两套环境，避免出口变化互相干扰。",{"type":31,"level":32,"children":372},[373],{"text":374,"type":29},"购买动态或静态住宅代理 IP 前，要确认哪些产品参数？",{"type":25,"children":376},[377],{"text":378,"type":29},"动态住宅代理 IP 要确认切换规则、粘性会话、并发和流量计费；静态住宅代理 IP 要确认周期、独享性、地区、协议和异常更换规则。规格和价格以购买页、后台或客户经理确认为准。可参考[动态住宅代理 IP](https:\u002F\u002Fwww.quanqiudaili.com\u002Fproduct\u002Fdynamic-residential)、[静态住宅代理 IP](https:\u002F\u002Fwww.quanqiudaili.com\u002Fproduct\u002Fstatic-residential-standard)和[原生静态住宅代理 IP](https:\u002F\u002Fwww.quanqiudaili.com\u002Fproduct\u002Fstatic-residential-native)。",{"type":31,"level":32,"children":380},[381],{"text":382,"type":29},"动态住宅和静态住宅代理 IP 上线前，如何做对照验证？",{"type":25,"children":384},[385],{"text":386,"type":29},"固定账号、设备和目标网站，只改变代理 IP 类型；例如对短时采样记录每 100 次请求的地区跳变和验证码次数，对长期登录记录 24 小时内会话中断次数，再决定是否放量。",{"type":25,"children":388},[389],{"text":390,"type":29},"为了让记录可比较，可以先用下表的“示意区间”设计验收表，再替换成自己的真实观测值。数字仅演示记录格式，不是行业基准、供应商承诺或本文实测结论：",{"type":37,"children":392},[393],{"text":394,"type":29},"| 指标（固定同一目标站） | 动态住宅代理 IP：示意记录 | 静态住宅代理 IP：示意记录 | 如何解读 |\n| --- | --- | --- | --- |\n| 每 100 次请求的地区跳变 | 约 60–90 次 | 约 0–5 次 | 动态是否达到轮换预期，静态是否保持地区稳定 |\n| 每 100 次请求的验证码触发 | 约 3–12 次 | 约 0–4 次 | 不能单独归因于 IP，还要记录账号、设备和请求节奏 |\n| 24 小时会话中断 | 不作为主要验收项，记录实际次数 | 约 0–2 次 | 静态长期任务重点看中断原因和恢复方式 |",{"type":25,"children":396},[397],{"text":398,"type":29},"正式测试时应把每次出口、时间戳、状态码、地区库结果和截图一起保存；如果结果落在区间外，先复核目标站策略、Cookie、DNS\u002FWebRTC 和并发条件，再决定是否更换代理类型。",{"type":31,"level":32,"children":400},[401],{"text":266,"type":29},{"type":31,"level":66,"children":403},[404],{"text":405,"type":29},"并发和计费如何确认？",{"type":25,"children":407},[408],{"text":409,"type":29},"向购买页或客户经理确认并发上限、按流量还是按请求计费，以及失败请求是否计费，再用小样本核对账单口径。",{"type":31,"level":66,"children":411},[412],{"text":413,"type":29},"动态住宅代理 IP 和静态住宅代理 IP 怎么选？",{"type":25,"children":415},[416],{"text":417,"type":29},"能接受出口变化且需要轮换，优先测试动态住宅代理 IP；需要长期身份，优先测试静态住宅代理 IP。",{"type":31,"level":66,"children":419},[420],{"text":421,"type":29},"动态会话为什么不能保证精确时长？",{"type":25,"children":423},[424],{"text":425,"type":29},"会话可能受网络、资源回收和服务策略影响。查看产品支持请求切换还是粘性会话，并确认触发切换条件，不要按绝对在线时长理解。",{"type":31,"level":66,"children":427},[428],{"text":429,"type":29},"出现验证码就应该换成静态住宅代理 IP 吗？",{"type":25,"children":431},[432],{"text":433,"type":29},"不一定。先区分 IP、地区、设备环境、账号行为和平台规则，确认问题与出口变化有关后再切换。",{"type":25,"children":435},[436],{"text":302,"type":29},{"type":25,"children":438},[439],{"text":440,"type":29},"决策清单：能接受出口变化且任务是短会话采样，就先测动态资源；需要长期登录或同一身份，就先测静态资源；两者都先固定账号和设备做小样本验证，再按地区跳变、会话中断和验证码记录决定是否放量。",{"source":6,"id":442,"documentId":443,"translationKey":443,"locale":9,"slug":444,"path":445,"_path":445,"title":446,"description":447,"excerpt":447,"image":448,"publishedAt":449,"updatedAt":450,"author":17,"tags":451,"featured":19,"sortOrder":20,"readingTime":66,"bodyType":22,"bodyBlocks":452,"bodyHtml":307},2626,"xjjqi8xoqk9a83tbvj5nzi6r","sstap-proxy-ip-mode-guide","\u002Fblog\u002Fsstap-proxy-ip-mode-guide","SSTap 代理模式怎么选：全局、规则和游戏\u002F网页访问差异","SSTap 全局、规则和游戏模式怎么选，如何先确认代理 IP 和协议，再验证网页、游戏和 DNS 是否真正走代理。","\u002Fimages\u002Flogo-middle.gif","2026-09-10T06:35:19.885Z","2026-09-10T06:35:19.869Z",[],[453,457,461,465,469,473,477,481,485,489,493,497,501,505,509,513,517,521,525,529,533,537,541,545,549,552,556,560,564,568,572,576,580,584,588,591],{"type":25,"children":454},[455],{"text":456,"type":29},"SSTap 代理模式怎么选，取决于你要接管的是全部流量、指定网站，还是某个进程。不同版本的 SSTap 可能将相关功能称为“全局”“规则”“进程”或“游戏模式”，具体名称应以当前客户端界面为准。下面按流量接管范围说明选择方法。模式决定哪些流量经过代理 IP，不能替代代理 IP 类型和出口地区的选择。",{"type":25,"children":458},[459],{"text":460,"type":29},"如果只是验证一个网页，先把目标域名加入规则；如果要判断整机出口，再短时间切到全局；游戏则单独确认进程是否被接管。SSTap 代理模式本身不会修复协议、端口或账号限制。",{"type":31,"level":32,"children":462},[463],{"text":464,"type":29},"SSTap 全局、规则与进程接管应该按什么场景选择？",{"type":25,"children":466},[467],{"text":468,"type":29},"三种模式的核心差别是“哪些流量会经过代理 IP”，而不是代理 IP 本身变了。选择时先按目标任务分流，再检查规则是否真正命中。",{"type":37,"children":470},[471],{"text":472,"type":29},"| 模式 | 影响范围 | 适合场景 | 注意事项 |\n| --- | --- | --- | --- |\n| 规则模式 | 指定域名或应用 | 单个网站、指定应用 | 依赖域名也要命中规则 |\n| 全局模式 | 更多系统流量 | 临时验证整机出口 | 增加流量消耗并影响无关应用 |\n| 进程接管（部分版本称游戏模式） | 指定进程及相关连接 | 游戏或应用连接测试 | 网页正常不代表目标进程已经经过代理 IP |",{"type":31,"level":66,"children":474},[475],{"text":476,"type":29},"什么时候应该使用全局模式？",{"type":25,"children":478},[479],{"text":480,"type":29},"全局模式会让更多系统流量经过代理，适合临时验证整机出口、排查某个应用是否受本地网络影响，或需要多个网页统一使用同一代理 IP 的情况。它也会影响无关应用，可能增加延迟和流量消耗，因此不适合长期无差别开启。",{"type":31,"level":66,"children":482},[483],{"text":484,"type":29},"只让指定网站或应用走代理时，怎么用规则模式？",{"type":25,"children":486},[487],{"text":488,"type":29},"规则模式按域名、程序或规则列表分流，适合只让指定网站或应用使用代理 IP。使用前要确认目标域名及其依赖域名都命中规则；如果网页能打开但登录、图片或接口失败，往往是依赖域名没有一起匹配。",{"type":31,"level":66,"children":490},[491],{"text":492,"type":29},"游戏连接时，什么时候应该使用进程接管？",{"type":25,"children":494},[495],{"text":496,"type":29},"部分版本把针对游戏的配置称为“游戏模式”，也有版本直接使用进程规则。应把目标游戏程序加入规则，确认进程路径和相关域名，并按游戏实际支持的代理协议和端口要求测试；无法在当前版本找到该名称时，以规则\u002F进程入口为准。",{"type":31,"level":66,"children":498},[499],{"text":500,"type":29},"第一次配置 SSTap，不确定选哪种模式怎么办？",{"type":25,"children":502},[503],{"text":504,"type":29},"只测试一个网页或应用，先用规则模式；需要确认整机是否统一经过代理，再短时间使用全局模式；主要解决游戏连接，则使用进程规则（部分版本称游戏模式）并单独验证游戏进程。测试完成后关闭不必要的全局代理，避免把本地其他流量一并转发。",{"type":31,"level":32,"children":506},[507],{"text":508,"type":29},"在 SSTap 中填写代理前，要先核对哪些信息？",{"type":25,"children":510},[511],{"text":512,"type":29},"先从代理服务商获取协议、主机、端口和认证信息。HTTP、HTTPS 或 SOCKS5 必须与服务商提供的格式一致，主机和端口不要混填；使用规则模式时还要确认规则文件已加载，使用进程规则（部分版本称游戏模式）时要确认目标进程路径正确。认证信息应以服务商提供的接入格式为准，不能把某一种认证方式当作所有 SSTap 配置的必填项。",{"type":31,"level":32,"children":514},[515],{"text":516,"type":29},"怎么确认网页和游戏真的走了代理 IP？",{"type":25,"children":518},[519],{"text":520,"type":29},"先在网页中记录出口 IP、地区和 DNS，再打开目标游戏或应用进行连接测试。网页正常、游戏失败时，优先检查游戏进程规则、协议兼容性和目标端口；网页和游戏都失败时，再回到主机、端口、认证和本地网络排查。每次只修改一个变量，并记录测试时间和错误提示，才方便判断是模式问题还是代理 IP 本身的问题。",{"type":31,"level":66,"children":522},[523],{"text":524,"type":29},"脱敏记录应该包含哪些字段？",{"type":25,"children":526},[527],{"text":528,"type":29},"下面是一份记录格式示例，版本、时间、出口 IP 和状态码均为演示值；`203.0.113.0\u002F24`、`198.51.100.0\u002F24` 属于文档保留地址，不能当作真实代理结果。发布前应替换为实际测试中脱敏后的值。",{"type":25,"children":530},[531],{"text":532,"type":29},"**测试条件（示例）**：SSTap 1.1.0（示例版本，需按当前客户端核对）、Windows 11 23H2、同一 SOCKS5 账号、同一网页和游戏服务器、测试时间 2026-09-10 14:00–14:20（UTC+8）。",{"type":37,"children":534},[535],{"text":536,"type":29},"| 模式 | 流量 | 出口 IP（脱敏示例） | DNS 结果 | 状态\u002F错误提示（示例） |\n| --- | --- | --- | --- | --- |\n| 规则模式 | 网页 | `203.0.113.42` | `192.0.2.53` | HTTP 200，页面地区为代理国家 |\n| 规则模式 | 游戏进程 | 本地出口 | 本地 DNS | `connection timeout`，进程未命中规则 |\n| 全局模式 | 网页 | `198.51.100.17` | `192.0.2.54` | HTTP 200，网页与 DNS 均经代理 |\n| 全局模式 | 游戏进程 | `198.51.100.17` | `192.0.2.54` | 连接成功；记录实际延迟和服务器返回 |\n| 进程接管 | 网页 | 本地出口 | 本地 DNS | HTTP 200，网页未纳入进程规则 |\n| 进程接管 | 游戏进程 | `203.0.113.42` | `192.0.2.53` | 记录连接结果、端口和错误提示 |",{"type":25,"children":538},[539],{"text":540,"type":29},"记录时应同时保存时间戳、规则命中日志、出口 IP 查询结果和截图。示例中的“成功”或“超时”只说明如何填写，不能据此推断某个 SSTap 版本、协议或代理服务的真实表现。",{"type":31,"level":32,"children":542},[543],{"text":544,"type":29},"SSTap 模式选对后，什么时候还要评估静态住宅代理 IP？",{"type":25,"children":546},[547],{"text":548,"type":29},"短时网页测试、多地区采样或公开页面观察，可先测试动态住宅代理 IP；需要长期保持同一出口身份的登录或后台场景，再评估静态住宅代理 IP。模式选择解决的是流量范围，动态或静态解决的是出口变化方式，两者应分开判断。",{"type":31,"level":32,"children":550},[551],{"text":266,"type":29},{"type":31,"level":66,"children":553},[554],{"text":555,"type":29},"只想让一个网页走代理 IP，应选什么模式？",{"type":25,"children":557},[558],{"text":559,"type":29},"优先使用规则模式，并把目标域名及其登录、接口和静态资源域名一并纳入规则。",{"type":31,"level":66,"children":561},[562],{"text":563,"type":29},"全局模式下网页能打开但游戏不能连接怎么办？",{"type":25,"children":565},[566],{"text":567,"type":29},"检查游戏进程是否被 SSTap 接管、游戏要求的代理协议和端口是否匹配，再用同一代理 IP 做单独测试。",{"type":31,"level":66,"children":569},[570],{"text":571,"type":29},"如何确认没有 DNS 泄漏？",{"type":25,"children":573},[574],{"text":575,"type":29},"分别在网页和应用环境检查 DNS 解析结果，并结合出口 IP、地区和 WebRTC 检测。发现本地 DNS 或真实 IP 时，先检查 SSTap 接管范围和系统网络设置。",{"type":31,"level":66,"children":577},[578],{"text":579,"type":29},"SSTap 适合长期登录业务吗？",{"type":25,"children":581},[582],{"text":583,"type":29},"要看业务是否要求长期稳定的出口身份。长期登录通常应优先评估静态住宅代理 IP，并保持代理、浏览器环境、语言和时区的一致性。",{"type":25,"children":585},[586],{"text":587,"type":29},"可参考[Windows SSTap 代理设置](https:\u002F\u002Fhelp.quanqiudaili.com\u002Fdocs\u002Fproxy-Settings\u002FWindows-Setting\u002Fwindows-sstap)以及  [SSTap-Rule 规则示例](https:\u002F\u002Fgithub.com\u002FFQrabbit\u002FSSTap-Rule) 。第三方规则仓库不代表官方版本，导入前请核对当前客户端入口。",{"type":25,"children":589},[590],{"text":302,"type":29},{"type":25,"children":592},[593],{"text":594,"type":29},"先按流量范围选择 SSTap 模式，再验证实际出口 IP、DNS 和网页或游戏连接。模式选对后，仍要根据业务是否需要长期稳定身份，评估动态住宅代理 IP 或静态住宅代理 IP。",{"source":6,"id":596,"documentId":597,"translationKey":597,"locale":9,"slug":598,"path":599,"_path":599,"title":600,"description":601,"excerpt":601,"image":602,"publishedAt":603,"updatedAt":604,"author":17,"tags":605,"featured":19,"sortOrder":20,"readingTime":32,"bodyType":22,"bodyBlocks":606,"bodyHtml":307},2625,"ja6v6kipzvga8o0j6j7aymd4","hubstudio-proxy-check-failed","\u002Fblog\u002Fhubstudio-proxy-check-failed","Hubstudio 指纹浏览器代理检测失败怎么办？","Hubstudio 指纹浏览器代理检测失败时，先按网络、协议和认证方式排查，再确认出口与地区。","https:\u002F\u002Fcms.quanqiudaili.com\u002Fuploads\u002Flarge_hubstudio_cover_7dc1032b80.webp","2026-09-10T06:35:04.112Z","2026-09-10T06:35:04.099Z",[],[607,611,615,619,623,627,631,635,639,643,647,651,655,659,663,667,671,674,678,682,686,690,694,698,702,706,710,714,717],{"type":25,"children":608},[609],{"text":610,"type":29},"Hubstudio 指纹浏览器检测代理 IP 失败时，先确认海外网络环境或加速通道，再检查套餐是否到期、流量是否用尽和资源状态，最后核对代理参数、Hubstudio 配置和认证方式。不要在未确认错误类型前反复更换代理 IP。",{"type":31,"level":32,"children":612},[613],{"text":614,"type":29},"Hubstudio 代理检测失败时，先区分超时、连接拒绝和认证失败",{"type":25,"children":616},[617],{"text":618,"type":29},"超时多与网络或端口有关，连接拒绝常见于协议或端口错误，认证失败则检查账号密码和认证方式。保留错误提示，便于后续与服务商核对。",{"type":37,"children":620},[621],{"text":622,"type":29},"| 错误类型 | 常见原因 | 优先检查 |\n| --- | --- | --- |\n| 超时 | 本机网络、端口不可达、资源失效 | 网络、主机、端口 |\n| 连接拒绝 | 协议或端口不匹配 | HTTP\u002FHTTPS\u002FSOCKS5 与对应端口 |\n| 认证失败 | 账号密码错误或认证方式不匹配 | 认证方式和凭证 |\n| 检测成功但出口异常 | 环境绑定或 DNS\u002FWebRTC 泄漏 | 出口 IP、地区、DNS\u002FWebRTC |",{"type":31,"level":32,"children":624},[625],{"text":626,"type":29},"如何核对 Hubstudio 的代理配置字段？",{"type":25,"children":628},[629],{"text":630,"type":29},"常见入口是“新建\u002F编辑环境 → 代理设置”。可以先按下面的字段映射逐项填写，再保存并启用环境：",{"type":31,"level":66,"children":632},[633],{"text":634,"type":29},"主机和端口",{"type":25,"children":636},[637],{"text":638,"type":29},"“主机”填写服务商提供的域名或 IP，例如 `proxy.example.com`；“端口”填写对应数字端口，例如 `10000`。不要把带协议前缀的完整 URL 粘进主机框，也不要把端口写进账号字段。",{"type":31,"level":66,"children":640},[641],{"text":642,"type":29},"协议",{"type":25,"children":644},[645],{"text":646,"type":29},"在“协议\u002F代理类型”中选择服务商实际提供的 HTTP、HTTPS 或 SOCKS5。示例：服务商给出 `SOCKS5 proxy.example.com:10000`，Hubstudio 就选择 SOCKS5、主机填 `proxy.example.com`、端口填 `10000`；协议选错时常见表现是连接被拒绝或握手失败。",{"type":31,"level":66,"children":648},[649],{"text":650,"type":29},"账号和密码",{"type":25,"children":652},[653],{"text":654,"type":29},"启用账号密码认证时，在“账号\u002F用户名”填 `demo_user`、在“密码”填服务商生成的密码，并确认没有复制换行或空格。不要在未要求时额外填写白名单、公网 IP 或二次认证字段。",{"type":25,"children":656},[657],{"text":658,"type":29},"保存后先用 IP 检测页验证出口国家\u002F城市、DNS 和 WebRTC，再判断环境是否真正可用。",{"type":31,"level":32,"children":660},[661],{"text":662,"type":29},"Hubstudio 代理检测失败时，如何按网络、代理参数和认证逐步验证？",{"type":25,"children":664},[665],{"text":666,"type":29},"先在本机确认海外网络或加速通道，再用同一组信息测试代理连通；随后在 Hubstudio 中保存并启用配置，重新检测，最后打开 IP 检测页确认出口和地区。超时继续查网络\u002F端口，连接拒绝查协议，`407 Proxy Authentication Required` 优先查账号、密码和认证方式。只有在服务商明确为“动态住宅代理 IP + API 提取”配置了来源白名单时，才核对当前公网出口是否在白名单内；普通账号密码接入不要默认要求白名单。出口异常再查环境绑定与 DNS\u002FWebRTC。",{"type":25,"children":668},[669],{"text":670,"type":29},"例如，Hubstudio 返回 `407 Proxy Authentication Required` 时，先用同一账号在服务商提供的接入方式重试：若仍为 407，通常是凭证失效、认证方式选错或账号未开通；若服务商确认该 API 提取方案启用了来源白名单，再补查公网出口是否匹配。若返回 `connection refused`，则优先把协议和端口与订单信息逐字对照，而不是反复改密码。",{"type":31,"level":32,"children":672},[673],{"text":266,"type":29},{"type":31,"level":66,"children":675},[676],{"text":677,"type":29},"主机端口都正确但仍失败怎么办？",{"type":25,"children":679},[680],{"text":681,"type":29},"继续核对协议、账号密码、认证方式和复制内容中的空格。只有服务商明确要求来源白名单（例如动态住宅代理 IP 的 API 提取场景）时，才确认当前公网出口是否已加入；账号密码模式不应默认配置白名单。",{"type":31,"level":66,"children":683},[684],{"text":685,"type":29},"不同认证方式可以同时使用吗？",{"type":25,"children":687},[688],{"text":689,"type":29},"通常应按服务商指定的单一认证方式配置，不要自行混用。",{"type":31,"level":66,"children":691},[692],{"text":693,"type":29},"检测通过后还要检查什么？",{"type":25,"children":695},[696],{"text":697,"type":29},"检查出口 IP、地区、DNS\u002FWebRTC 和目标网站访问；检测通过只代表代理连通。",{"type":31,"level":66,"children":699},[700],{"text":701,"type":29},"Hubstudio 中应选择动态还是静态住宅代理 IP？",{"type":25,"children":703},[704],{"text":705,"type":29},"短时、多地区任务可测试动态住宅代理 IP；长期登录更适合评估静态住宅代理 IP。",{"type":25,"children":707},[708],{"text":709,"type":29},"可参考[Hubstudio 代理设置教程](https:\u002F\u002Fhelp.quanqiudaili.com\u002Fdocs\u002Fproxy-Settings\u002FFingerprint-Browser-Setting\u002FHubstudio)。",{"type":25,"children":711},[712],{"text":713,"type":29},"可同时参阅 [Hubstudio 官方帮助中心](https:\u002F\u002Fsupport-orig.hubstudio.cn\u002F)。如果当前版本没有完全相同的字段名称，以官方模板和客户端当前界面为准。",{"type":25,"children":715},[716],{"text":302,"type":29},{"type":25,"children":718},[719],{"text":720,"type":29},"定位并修复网络、代理参数或认证问题后，再验证出口 IP、地区、DNS\u002FWebRTC 和目标网站结果，不能只凭客户端的检测提示判断代理已经可用。",[722],{"source":6,"id":7,"documentId":8,"translationKey":8,"locale":9,"slug":10,"path":11,"_path":11,"title":12,"description":13,"excerpt":13,"image":14,"publishedAt":15,"updatedAt":16,"author":17,"tags":723,"featured":19,"sortOrder":20,"readingTime":21,"bodyType":22,"bodyBlocks":724,"bodyHtml":307},[],[725,728,731,734,737,740,743,746,749,752,755,758,761,781,784,787,790,793,796,799,802,805,808,811,814,817,820,823,826,829,832,835,838,841,844,847,850,853,856,859,862,865,868,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928],{"type":25,"children":726},[727],{"text":28,"type":29},{"type":31,"level":32,"children":729},[730],{"text":35,"type":29},{"type":37,"children":732},[733],{"text":40,"type":29},{"type":25,"children":735},[736],{"text":44,"type":29},{"type":31,"level":32,"children":738},[739],{"text":48,"type":29},{"type":37,"children":741},[742],{"text":52,"type":29},{"type":25,"children":744},[745],{"text":56,"type":29},{"type":25,"children":747},[748],{"text":60,"type":29},{"type":31,"level":32,"children":750},[751],{"text":64,"type":29},{"type":31,"level":66,"children":753},[754],{"text":69,"type":29},{"type":25,"children":756},[757],{"text":73,"type":29},{"type":25,"children":759},[760],{"text":77,"type":29},{"type":79,"format":80,"children":762},[763,766,769,772,775,778],{"type":83,"children":764},[765],{"text":86,"type":29},{"type":83,"children":767},[768],{"text":90,"type":29},{"type":83,"children":770},[771],{"text":94,"type":29},{"type":83,"children":773},[774],{"text":98,"type":29},{"type":83,"children":776},[777],{"text":102,"type":29},{"type":83,"children":779},[780],{"text":106,"type":29},{"type":25,"children":782},[783],{"text":110,"type":29},{"type":31,"level":66,"children":785},[786],{"text":114,"type":29},{"type":25,"children":788},[789],{"text":118,"type":29},{"type":25,"children":791},[792],{"text":122,"type":29},{"type":25,"children":794},[795],{"text":126,"type":29},{"type":25,"children":797},[798],{"text":130,"type":29},{"type":25,"children":800},[801],{"text":134,"type":29},{"type":25,"children":803},[804],{"text":138,"type":29},{"type":25,"children":806},[807],{"text":142,"type":29},{"type":25,"children":809},[810],{"text":146,"type":29},{"type":25,"children":812},[813],{"text":150,"type":29},{"type":25,"children":815},[816],{"text":154,"type":29},{"type":25,"children":818},[819],{"text":158,"type":29},{"type":25,"children":821},[822],{"text":162,"type":29},{"type":25,"children":824},[825],{"text":166,"type":29},{"type":25,"children":827},[828],{"text":170,"type":29},{"type":25,"children":830},[831],{"text":174,"type":29},{"type":31,"level":66,"children":833},[834],{"text":178,"type":29},{"type":25,"children":836},[837],{"text":182,"type":29},{"type":25,"children":839},[840],{"text":186,"type":29},{"type":31,"level":32,"children":842},[843],{"text":190,"type":29},{"type":25,"children":845},[846],{"text":194,"type":29},{"type":25,"children":848},[849],{"text":198,"type":29},{"type":25,"children":851},[852],{"text":202,"type":29},{"type":25,"children":854},[855],{"text":206,"type":29},{"type":31,"level":32,"children":857},[858],{"text":210,"type":29},{"type":31,"level":66,"children":860},[861],{"text":214,"type":29},{"type":25,"children":863},[864],{"text":218,"type":29},{"type":31,"level":66,"children":866},[867],{"text":222,"type":29},{"type":25,"children":869},[870],{"text":226,"type":29},{"type":25,"children":872},[873],{"text":230,"type":29},{"type":25,"children":875},[876],{"text":234,"type":29},{"type":31,"level":32,"children":878},[879],{"text":238,"type":29},{"type":25,"children":881},[882],{"text":242,"type":29},{"type":25,"children":884},[885],{"text":246,"type":29},{"type":25,"children":887},[888],{"text":250,"type":29},{"type":31,"level":32,"children":890},[891],{"text":254,"type":29},{"type":25,"children":893},[894],{"text":258,"type":29},{"type":25,"children":896},[897],{"text":262,"type":29},{"type":31,"level":32,"children":899},[900],{"text":266,"type":29},{"type":31,"level":66,"children":902},[903],{"text":270,"type":29},{"type":25,"children":905},[906],{"text":274,"type":29},{"type":31,"level":66,"children":908},[909],{"text":278,"type":29},{"type":25,"children":911},[912],{"text":282,"type":29},{"type":31,"level":66,"children":914},[915],{"text":286,"type":29},{"type":25,"children":917},[918],{"text":290,"type":29},{"type":31,"level":66,"children":920},[921],{"text":294,"type":29},{"type":25,"children":923},[924],{"text":298,"type":29},{"type":25,"children":926},[927],{"text":302,"type":29},{"type":25,"children":929},[930],{"text":306,"type":29},null,[],[]]