[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-strapi-article:zh:muse-proxy-pricing-types-buying-checklist":3,"blog-article:\u002Fblog\u002Fmuse-proxy-pricing-types-buying-checklist":568,"blog-related:\u002Fblog\u002Fmuse-proxy-pricing-types-buying-checklist":569,"blog-translations:\u002Fblog\u002Fmuse-proxy-pricing-types-buying-checklist":570},{"available":4,"article":5,"relatedArticles":162,"translations":465},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":161},"strapi",3403,"ha9p5dywzpp487z6dq2n0nmy","zh","muse-proxy-pricing-types-buying-checklist","\u002Fblog\u002Fmuse-proxy-pricing-types-buying-checklist","Meta Muse 代理 IP 购买前要确认哪些参数","购买前核对代理类型、地区、会话、协议、设备接入、计费和售后条款；价格及套餐以当前价目和订单条件为准。","https:\u002F\u002Fcms.quanqiudaili.com\u002Fuploads\u002Flarge_muse_cover_40e44fd335.webp","2026-10-16T10:37:48.950Z","2026-10-16T10:37:48.938Z","Global Proxies Team",[],false,0,2,"blocks",[24,30,35,39,43,47,51,55,59,63,68,72,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157],{"type":25,"children":26},"paragraph",[27],{"text":28,"type":29},"购买前第一问是：代理具体配置在哪里、控制哪一段请求？先核对 [Meta Muse 产品页](https:\u002F\u002Fai.meta.com\u002Fmuse\u002F) 和 [Meta 官方发布说明](https:\u002F\u002Fabout.fb.com\u002Fnews\u002F2026\u002F09\u002Fintroducing-muse-personal-ai-agent\u002F)，再确认目标设备与账号资格。先区分设备上的 Muse 客户端与 Muse Secure VM 内浏览器\u002F连接器访问第三方，再确认 Muse 当前开放地区、账号条件和目标设备。只有本地客户端路径得到支持后，才按“地区资格 → 代理类型 → 接入方式 → 计费 → 小样本测试”决策；若要改变云端任务出口却没有官方支持或授权实测，应暂缓购买。代理 IP 不能替代 Muse 使用资格或应用商店地区条件。","text",{"type":31,"level":21,"children":32},"heading",[33],{"text":34,"type":29},"不同使用时长该选择哪种代理类型",{"type":25,"children":36},[37],{"text":38,"type":29},"短期测试可评估[动态住宅代理 IP](https:\u002F\u002Fwww.quanqiudaili.com\u002Fproduct\u002Fdynamic-residential)；需要较长会话时可评估[静态住宅代理 IP](https:\u002F\u002Fwww.quanqiudaili.com\u002Fproduct\u002Fstatic-residential-standard)；住宅属性要求较低的普通访问测试可参考[住宅代理 IP 和数据中心代理 IP 有什么区别](https:\u002F\u002Fwww.quanqiudaili.com\u002Fblog\u002Fresidential-vs-datacenter-proxy)。具体选择应结合任务和服务规格，不预设速度或连接表现。",{"type":31,"level":21,"children":40},[41],{"text":42,"type":29},"购买前要确认哪些地区和会话条件",{"type":25,"children":44},[45],{"text":46,"type":29},"确认国家或城市覆盖、出口变化规则、会话时长和库存更新时间。需要核对目标地区资源时，可查看[全球代理 IP 地区资源中心](https:\u002F\u002Fwww.quanqiudaili.com\u002Flocations\u002F)，国家、城市和协议的选择可参考购买代理 IP 时国家、城市和协议怎么选。长期使用时，设备地区、账号常用地区和代理地区应尽量一致；这只适用于实际由该代理控制的本地客户端链路。",{"type":31,"level":21,"children":48},[49],{"text":50,"type":29},"购买前如何确认设备支持和参数来源",{"type":25,"children":52},[53],{"text":54,"type":29},"确认服务商和目标设备是否支持所需接入方式，以及地址、端口、认证和协议参数从哪里获取。没有设备及服务商官方配置文档时，不应将兼容性写成确定能力；控制台\u002FAPI 端口不能代替代理连接端口。",{"type":31,"level":21,"children":56},[57],{"text":58,"type":29},"询价时可以直接发送哪些字段",{"type":25,"children":60},[61],{"text":62,"type":29},"向服务商询价或确认订单前，整理以下字段；未公开的计费、退款和更换条件应以书面订单条款确认为准。",{"type":64,"children":65},"code",[66],{"text":67,"type":29},"| 询价字段 | 需要确认的内容 |\n| --- | --- |\n| 任务与测试规模 | 访问任务、预计请求量\u002F流量、并发或会话时长 |\n| 地区 | 国家或城市粒度、资源可用性及出口变化规则 |\n| 接入 | 协议、认证方式、主机和代理连接端口；目标系统、版本、入口及官方支持链接 |\n| 会话 | 会话保持或更换规则、有效期 |\n| 计费 | 计费单位、最低购买量、失败请求是否计费及重试成本 |\n| 售后 | 测试、退款、更换、续费和技术支持边界 |\n| 依据 | 当前价目、产品规格\u002F政策链接及核验日期 |",{"type":31,"level":21,"children":69},[70],{"text":71,"type":29},"代理价格和计费方式怎么比较",{"type":31,"level":73,"children":74},3,[75],{"text":76,"type":29},"先看清代理按什么单位收费",{"type":25,"children":78},[79],{"text":80,"type":29},"核对流量、连接时长、代理 IP 或周期等计费单位；演示总成本可按“单价 × 用量 + 已确认额外费用”计算，不把演示公式当作当前报价。公开价目及套餐如有变化，以[全球代理购买指南](https:\u002F\u002Fhelp.quanqiudaili.com\u002Fdocs\u002FBuy-lssues\u002F)和下单时显示的当前信息为准；本文不提供未经核实的价格区间。",{"type":31,"level":73,"children":82},[83],{"text":84,"type":29},"再算清失败请求和重试等额外成本",{"type":25,"children":86},[87],{"text":88,"type":29},"确认最低购买量、失败请求是否计费、重试成本和维护成本。未见公开规则时，向服务商取得书面确认，不推定失败请求免费或可退款。",{"type":31,"level":73,"children":90},[91],{"text":92,"type":29},"最后确认更换、退款和技术支持规则",{"type":25,"children":94},[95],{"text":96,"type":29},"核对更换、退款、续费和技术支持边界，并记录所查看的当前政策来源与核验日期；如政策未公开，以订单条款为准。",{"type":31,"level":21,"children":98},[99],{"text":100,"type":29},"购买前如何测试代理是否适合 Muse",{"type":31,"level":73,"children":102},[103],{"text":104,"type":29},"先测试普通网页和 Meta 登录页",{"type":25,"children":106},[107],{"text":108,"type":29},"确认基础连接、出口 IP 和地区。",{"type":31,"level":73,"children":110},[111],{"text":112,"type":29},"再测试 Muse 是否能正常请求",{"type":25,"children":114},[115],{"text":116,"type":29},"确认目标功能能够完成，并记录连接稳定性和错误。",{"type":31,"level":73,"children":118},[119],{"text":120,"type":29},"根据测试结果决定购买多少",{"type":25,"children":122},[123],{"text":124,"type":29},"三步均符合任务要求后，再决定购买量，不要直接大批量购买。",{"type":31,"level":21,"children":126},[127],{"text":128,"type":29},"哪些情况应暂缓购买",{"type":25,"children":130},[131],{"text":132,"type":29},"Muse 地区资格不明确、代理地区不匹配、设备无法接入、计费规则不清楚或小样本测试未通过时，应暂缓购买。",{"type":31,"level":21,"children":134},[135],{"text":136,"type":29},"FAQ",{"type":31,"level":73,"children":138},[139],{"text":140,"type":29},"价格高就一定更适合 Muse 吗？",{"type":25,"children":142},[143],{"text":144,"type":29},"不一定。地区、会话、设备兼容和实际连接结果同样重要。",{"type":31,"level":73,"children":146},[147],{"text":148,"type":29},"购买前最先确认什么？",{"type":25,"children":150},[151],{"text":152,"type":29},"先确认代理控制的是本地客户端还是云端任务，再核对 Muse 资格、设备支持、类型、接入方式和计费。",{"type":31,"level":73,"children":154},[155],{"text":156,"type":29},"代理能保证 Muse 长期稳定吗？",{"type":25,"children":158},[159],{"text":160,"type":29},"不能。Meta 政策、账号状态、应用版本和第三方服务都会影响结果。","",[163,246,364],{"source":6,"id":164,"documentId":165,"translationKey":165,"locale":9,"slug":166,"path":167,"_path":167,"title":168,"description":169,"excerpt":169,"image":170,"publishedAt":171,"updatedAt":172,"author":17,"tags":173,"featured":19,"sortOrder":20,"readingTime":21,"bodyType":22,"bodyBlocks":174,"bodyHtml":161},3476,"di2d61b0ntbxfkmt4rkgunhp","gemini-cli-proxy-http-socks5-environment-variables","\u002Fblog\u002Fgemini-cli-proxy-http-socks5-environment-variables","Gemini CLI 代理怎么设置：HTTP_PROXY 与 HTTPS_PROXY","了解 Gemini CLI 的 HTTP(S) 代理设置方式，按当前版本配置 HTTPS_PROXY、HTTP_PROXY，并验证主模型请求是否经过代理。","https:\u002F\u002Fcms.quanqiudaili.com\u002Fuploads\u002Flarge_gemini_cli_http_socks5_cover_3bd4a7598d.webp","2026-10-20T09:43:02.426Z","2026-10-20T09:43:02.393Z",[],[175,179,183,187,191,195,199,203,207,211,215,219,223,227,230,234,238,242],{"type":31,"level":176,"children":177},1,[178],{"text":168,"type":29},{"type":25,"children":180},[181],{"text":182,"type":29},"配置 Gemini CLI 代理 IP 前，先确认当前版本读取的代理环境变量及支持的协议，再从设置变量的同一终端启动 CLI。代理环境变量决定请求是否尝试经由指定网络出口连接；HTTP、HTTPS、SOCKS5 是接入协议，不代表代理 IP 的住宅属性或质量。",{"type":31,"level":21,"children":184},[185],{"text":186,"type":29},"先确认当前 Gemini CLI 版本读取哪些代理变量",{"type":25,"children":188},[189],{"text":190,"type":29},"先记录 Gemini CLI 版本、操作系统和安装方式，再查看该版本文档或帮助信息，确认它实际读取哪些代理变量以及支持哪些协议。不要预设 `HTTP_PROXY`、`HTTPS_PROXY`、`ALL_PROXY` 或 SOCKS5 一定可用；官方配置说明见 [Gemini CLI 配置文档](https:\u002F\u002Fgeminicli.com\u002Fdocs\u002Freference\u002Fconfiguration\u002F)。",{"type":31,"level":21,"children":192},[193],{"text":194,"type":29},"为当前终端的 Gemini CLI 主模型请求设置 HTTP(S) 代理",{"type":25,"children":196},[197],{"text":198,"type":29},"以下示例针对 Gemini CLI 主模型请求的 HTTP(S) 代理环境变量；不据此推断 MCP、沙箱或工具子进程一定继承同一设置。先记录安装版本，并确认该版本支持相应变量，再从设置变量的同一终端启动 CLI：",{"type":25,"children":200},[201],{"text":202,"type":29},"```powershell\n$env:HTTPS_PROXY = \"http:\u002F\u002F主机:端口\"\n$env:HTTP_PROXY = \"http:\u002F\u002F主机:端口\"\ngemini --help\ngemini\n```",{"type":25,"children":204},[205],{"text":206,"type":29},"```bash\nexport HTTPS_PROXY=\"http:\u002F\u002F主机:端口\"\nexport HTTP_PROXY=\"http:\u002F\u002F主机:端口\"\ngemini --help\ngemini\n```",{"type":25,"children":208},[209],{"text":210,"type":29},"以上分别是 PowerShell 与 Linux\u002FmacOS shell 设置当前终端变量的示例。是否读取变量取决于 Gemini CLI 版本；核实版本文档与 `gemini --help` 后，再用低风险主模型请求及代理日志验证。不要把含凭证 URL 写入共享脚本、命令历史或截图。本节不提供 SOCKS5\u002F`ALL_PROXY` 配置承诺，因为当前可核实的官方读取链未确认支持它们。",{"type":25,"children":212},[213],{"text":214,"type":29},"临时使用后可清除本节设置的变量：PowerShell 用 `Remove-Item Env:HTTP_PROXY,Env:HTTPS_PROXY -ErrorAction SilentlyContinue`；Linux\u002FmacOS 用 `unset HTTP_PROXY HTTPS_PROXY`。若变量原本已存在，先记录原值并在结束后恢复。",{"type":31,"level":21,"children":216},[217],{"text":218,"type":29},"检查 Gemini CLI 是否经过代理并连通服务",{"type":25,"children":220},[221],{"text":222,"type":29},"从设置变量的同一终端发起一条低风险主模型请求，结合代理侧连接日志确认该请求是否经过代理。MCP、沙箱和工具子进程需分别验证各自网络路径。CLI 无法连接代理时，可参照已发布的[代理 IP 连接排查表](https:\u002F\u002Fwww.quanqiudaili.com\u002Fblog\u002Fproxy-ip-connection-troubleshooting)检查主机、端口和认证。",{"type":64,"children":224},[225],{"text":226,"type":29},"| 现象 | 检查项 | 下一步 |\n| --- | --- | --- |\n| CLI 未读代理设置 | 变量名称、大小写、启动终端及版本行为 | 对照当前版本官方说明 |\n| 代理认证失败 | 主机、端口、凭证格式和凭证字符转义 | 修正接入参数并保护凭证 |\n| 网络正常但服务报错 | CLI\u002FAPI 认证、配额、服务状态和请求参数 | 按服务端错误分层排查 |",{"type":31,"level":21,"children":228},[229],{"text":136,"type":29},{"type":31,"level":73,"children":231},[232],{"text":233,"type":29},"设置 `HTTPS_PROXY` 后，怎么确认 Gemini CLI 确实走了代理？",{"type":25,"children":235},[236],{"text":237,"type":29},"从设置变量的同一终端启动 CLI，发起一条低风险请求，并结合进程环境、客户端或代理日志、出口检测确认请求路径。仅看到变量已设置，不能证明当前版本的 CLI 已读取它。",{"type":31,"level":73,"children":239},[240],{"text":241,"type":29},"HTTP 和 SOCKS5 哪个更适合？",{"type":25,"children":243},[244],{"text":245,"type":29},"本文示例使用 HTTP(S) 代理变量。当前版本是否支持其它代理协议，应查该版本文档；设置未确认读取的变量不能证明请求已使用相应代理。协议本身也不能说明代理 IP 的住宅\u002F机房属性或业务结果。",{"source":6,"id":247,"documentId":248,"translationKey":248,"locale":9,"slug":249,"path":250,"_path":250,"title":251,"description":252,"excerpt":252,"image":253,"publishedAt":254,"updatedAt":255,"author":17,"tags":256,"featured":19,"sortOrder":20,"readingTime":73,"bodyType":22,"bodyBlocks":257,"bodyHtml":161},3475,"x4a9q0bme23m2tka73ym65lm","nginx-websocket-400-502-504-troubleshooting","\u002Fblog\u002Fnginx-websocket-400-502-504-troubleshooting","Nginx WebSocket 反向代理排查：400、502、504 与超时","Nginx WebSocket 反向代理返回 400、502 或 504 时，按 Upgrade 握手、上游连接和超时日志逐项排查，并用 curl 与 websocat 验证配置。","https:\u002F\u002Fcms.quanqiudaili.com\u002Fuploads\u002Flarge_nginx_websocket_400_502_504_cover_a2295cdc39.webp","2026-10-20T09:42:46.326Z","2026-10-20T09:42:46.313Z",[],[258,262,266,270,274,278,282,286,290,294,298,302,306,310,314,318,322,326,330,333,337,341,345,349,352,356,360],{"type":25,"children":259},[260],{"text":261,"type":29},"Nginx WebSocket 反向代理返回 400、502 或 504 时，先记录响应状态并对照 Nginx 和上游日志。本文排查的是 Nginx 到上游的反向代理链路；400 优先检查请求或握手，502 检查上游连接与响应，504 检查上游响应时间和超时设置。状态码只能指示排查方向，根因要结合日志确认。",{"type":31,"level":21,"children":263},[264],{"text":265,"type":29},"配好 Upgrade 和 Connection 转发头",{"type":25,"children":267},[268],{"text":269,"type":29},"先确认客户端是否发送 WebSocket 握手请求。Nginx 反向代理通常需要使用 HTTP\u002F1.1，并将 Upgrade 与 Connection 头转给上游。配置结构如下，需放在正确的 `http`、`server` 或 `location` 层级，并按实际上游调整。",{"type":25,"children":271},[272],{"text":273,"type":29},"可对照 [Nginx 官方 WebSocket 代理说明](https:\u002F\u002Fnginx.org\u002Fen\u002Fdocs\u002Fhttp\u002Fwebsocket.html)检查 Upgrade 转发行为；具体指令以部署版本文档为准。",{"type":25,"children":275},[276],{"text":277,"type":29},"```nginx\nproxy_http_version 1.1;\nproxy_set_header Upgrade $http_upgrade;\nproxy_set_header Connection $connection_upgrade;\nproxy_set_header Host $host;\nproxy_connect_timeout 5s;\nproxy_read_timeout 60s;\n```",{"type":25,"children":279},[280],{"text":281,"type":29},"上例假设已在 `http` 层用 `map $http_upgrade $connection_upgrade { default upgrade; '' close; }` 定义 `$connection_upgrade`，并配置了对应 `proxy_pass` 和上游；按实际上游替换。`5s` 与 `60s` 只是示例值，需依据网络和心跳要求调整。`proxy_connect_timeout` 限制建立上游连接的等待时间；`proxy_read_timeout` 限制两次从上游读取数据之间的空闲间隔，不能修复连接拒绝或错误握手。",{"type":25,"children":283},[284],{"text":285,"type":29},"超时指令的版本和上下文限制见 [Nginx 官方 proxy 模块文档](https:\u002F\u002Fnginx.org\u002Fen\u002Fdocs\u002Fhttp\u002Fngx_http_proxy_module.html#proxy_read_timeout)。",{"type":25,"children":287},[288],{"text":289,"type":29},"随后查看客户端网络面板，确认失败发生在握手阶段还是握手之后。",{"type":31,"level":21,"children":291},[292],{"text":293,"type":29},"看 400、502、504 判断请求卡在哪一环",{"type":64,"children":295},[296],{"text":297,"type":29},"| 状态码 | 优先检查 | 证据位置 | 后续动作 |\n| --- | --- | --- | --- |\n| 400 | 请求路径、Upgrade\u002FConnection 头、上游对握手的校验 | 客户端请求、Nginx access log、上游响应 | 对照协议要求和上游路由，不盲目延长超时 |\n| 502 | 上游地址\u002F端口、连接拒绝、DNS 解析及上游进程状态 | Nginx error log、上游服务日志 | 先从 Nginx 主机验证到上游的连接 |\n| 504 | 上游处理时间、连接\u002F读取超时设置、服务负载 | error log 时间戳、上游耗时和负载 | 找出等待发生在哪一跳，再评估超时配置 |",{"type":25,"children":299},[300],{"text":301,"type":29},"用 access log 中的时间、URI、状态码及上游状态\u002F耗时字段找到请求，再查看对应的 error log 和上游日志，确认请求是否到达上游、在哪一跳失败。不同版本和上游实现的返回状态可能不同，应沿同一请求的日志链路判断。",{"type":31,"level":21,"children":303},[304],{"text":305,"type":29},"用客户端和两端日志复现并定位故障",{"type":25,"children":307},[308],{"text":309,"type":29},"记录 Nginx 版本、脱敏后的相关配置、目标路径、发生时间、响应状态、请求 ID 和上游日志。先验证客户端到 Nginx，再验证 Nginx 到上游；每次只调整一个配置项后复测。不要公开 token、Cookie、Authorization 头或内网敏感地址。",{"type":25,"children":311},[312],{"text":313,"type":29},"配置变更后先检查语法，再平滑重载，并分别验证普通 HTTP 与 WebSocket 握手。以下命令需在 Nginx 主机执行，域名和路径按环境替换：",{"type":25,"children":315},[316],{"text":317,"type":29},"```bash\nsudo nginx -t\nsudo nginx -s reload\ncurl -i https:\u002F\u002Fexample.com\u002Fws\nwebsocat -v wss:\u002F\u002Fexample.com\u002Fws\n```",{"type":25,"children":319},[320],{"text":321,"type":29},"`nginx -t` 失败时不要 reload。普通 curl 通常没有发送完整 Upgrade 握手，不能用它判定 WebSocket 成功；`websocat` 应完成握手并建立连接，成功响应为 `101 Switching Protocols`。结合 Nginx access\u002Ferror log 中的 `$upstream_status`、`$upstream_connect_time` 和 `$upstream_response_time` 定位失败阶段。",{"type":31,"level":21,"children":323},[324],{"text":325,"type":29},"根据日志区分握手失败、上游连接失败和响应超时",{"type":25,"children":327},[328],{"text":329,"type":29},"请求未到达上游时，检查 Nginx 配置、DNS 和连接；上游返回 400 时核对 Upgrade\u002FConnection 请求头、路径和上游校验；上游连接被拒绝或出现 502 时检查地址、端口及服务状态；只有日志显示请求已到达上游且等待超过当前限制时，才按官方 proxy 模块文档评估超时。每次只改一个配置项，并用相同路径复测。",{"type":31,"level":21,"children":331},[332],{"text":136,"type":29},{"type":31,"level":73,"children":334},[335],{"text":336,"type":29},"`proxy_read_timeout` 调大后仍返回 504，下一步看什么？",{"type":25,"children":338},[339],{"text":340,"type":29},"按正文日志分支确认请求是否到达上游、等待发生在哪一跳，再检查上游耗时和服务负载；不要只通过继续增大超时处理上游不可用或链路异常。",{"type":31,"level":73,"children":342},[343],{"text":344,"type":29},"`curl` 返回 200 就能证明 WebSocket 正常吗？",{"type":25,"children":346},[347],{"text":348,"type":29},"不能。普通 curl 请求不一定发送 WebSocket Upgrade 握手；应使用 WebSocket 客户端验证，并确认握手成功返回 `101 Switching Protocols`，再观察连接是否按预期维持。",{"type":25,"children":350},[351],{"text":161,"type":29},{"type":25,"children":353},[354],{"text":355,"type":29},"---",{"type":31,"level":21,"children":357},[358],{"text":359,"type":29},"对照日志复测 WebSocket 修复结果",{"type":25,"children":361},[362],{"text":363,"type":29},"按失败请求的时间戳复核 access\u002Ferror log 与上游日志，再用相同路径确认握手是否返回 101、连接能否维持。若故障发生在客户端代理 IP 到 Nginx 之前，应另查客户端到代理的连接链路。",{"source":6,"id":365,"documentId":366,"translationKey":366,"locale":9,"slug":367,"path":368,"_path":368,"title":369,"description":370,"excerpt":370,"image":371,"publishedAt":372,"updatedAt":373,"author":17,"tags":374,"featured":19,"sortOrder":20,"readingTime":21,"bodyType":22,"bodyBlocks":375,"bodyHtml":161},3474,"k1c5f17zwlsh9vx5sz4dolif","websocket-proxy-connection-troubleshooting","\u002Fblog\u002Fwebsocket-proxy-connection-troubleshooting","WebSocket 代理 IP 连接失败怎么办：认证、TLS 与 Upgrade 排查","WebSocket 通过代理 IP 连接失败时，可按代理连接、认证、TLS 隧道和 Upgrade 握手逐步排查，并用最小验证确认故障环节。","https:\u002F\u002Fcms.quanqiudaili.com\u002Fuploads\u002Flarge_websocket_cover_3f066ac782.webp","2026-10-20T09:42:30.996Z","2026-10-20T09:42:30.971Z",[],[376,380,384,388,392,396,400,404,408,412,416,420,424,428,432,435,439,443,447,451,454,457,461],{"type":25,"children":377},[378],{"text":379,"type":29},"WebSocket 通过代理 IP 连接失败时，先确定使用的是客户端正向代理还是服务端反向代理，再判断失败发生在 TCP 连接、代理认证、TLS 还是 WebSocket Upgrade 阶段。按时间戳保存客户端错误、代理日志和目标服务响应；只有证据指向代理连接或会话问题时，才继续调整代理参数。",{"type":31,"level":21,"children":381},[382],{"text":383,"type":29},"先确认失败在代理连接、TLS 还是 WebSocket 握手",{"type":25,"children":385},[386],{"text":387,"type":29},"常见路径是客户端连接代理，再通过代理到达目标服务，随后完成 TLS（如使用 WSS）和 WebSocket 握手。若 Nginx 在服务端作为反向代理，应按 Nginx 反向代理链路单独排查；不要把两种代理角色混为一谈。主机、端口、认证或连接问题可参考已发布的[代理 IP 连接排查表](https:\u002F\u002Fwww.quanqiudaili.com\u002Fblog\u002Fproxy-ip-connection-troubleshooting)。",{"type":31,"level":21,"children":389},[390],{"text":391,"type":29},"从客户端错误判断连接失败在哪一步",{"type":64,"children":393},[394],{"text":395,"type":29},"| 现象 | 可能阶段 | 检查内容 | 下一步 |\n| --- | --- | --- | --- |\n| 无法连接代理地址 | 客户端到代理 | 主机、端口、协议、网络连通性 | 验证接入参数及本地网络 |\n| 407 或代理认证失败 | 代理认证 | 用户名、密码、认证类型和 URL 转义 | 修正凭证并避免在日志中泄露 |\n| TLS 错误或握手中断 | TLS\u002F隧道 | 客户端是否支持该代理协议及目标 TLS | 查看客户端错误和代理日志 |\n| HTTP 响应正常但 Upgrade 失败 | WebSocket 握手\u002F目标服务 | Upgrade 请求头、目标路径、服务端响应 | 核对客户端与目标服务配置 |\n| 连接建立后很快断开 | 会话\u002F网络链路 | 空闲超时、心跳、代理会话和目标端日志 | 固定条件复现并记录断开时间 |",{"type":25,"children":397},[398],{"text":399,"type":29},"HTTP、HTTPS、SOCKS5 是接入协议，不代表住宅或数据中心属性。客户端是否支持 WebSocket 通过特定代理协议，应查其当前文档；不要根据协议名称推断兼容性。",{"type":31,"level":21,"children":401},[402],{"text":403,"type":29},"从代理连接开始验证，直到收到 Upgrade 响应",{"type":25,"children":405},[406],{"text":407,"type":29},"记录客户端版本、脱敏后的目标 URL、代理协议、错误信息、发生时间和连接时长。先用客户端连接测试或受控目标确认目标服务可用，再对照[代理参数说明](https:\u002F\u002Fhelp.quanqiudaili.com\u002Fdocs\u002Fintro)核对主机、端口和认证参数；随后分别验证代理认证、TLS 和 WebSocket Upgrade 响应。每轮只改一个变量，并保存客户端、代理和目标服务日志。遇到 403、429 或验证码时，按目标站规则停止或调整请求。",{"type":25,"children":409},[410],{"text":411,"type":29},"下面的 `proxy.example.com`、端口和 URL 都是占位值；命令用 curl 检查 HTTP(S) 代理连通性，不能单独证明 WebSocket Upgrade 成功。凭证优先通过受保护的环境变量传入，避免写进命令历史或截图：",{"type":25,"children":413},[414],{"text":415,"type":29},"```bash\ncurl -v --proxy http:\u002F\u002Fproxy.example.com:8080 \\\n--proxy-user \"$PROXY_USER:$PROXY_PASS\" \\\nhttps:\u002F\u002Fexample.com\u002F -o \u002Fdev\u002Fnull\n```",{"type":25,"children":417},[418],{"text":419,"type":29},"先看代理连接是否建立及是否出现 `407`。目标返回正常 HTTP 响应仅表示普通请求经代理完成，不代表 Upgrade 成功。WebSocket 验证应使用客户端连接实际 `wss:\u002F\u002F` 地址，并检查服务端是否返回 `101 Switching Protocols`；若收到 `400\u002F403` 等响应，记录状态和响应头，并按目标规则停止不必要重试。",{"type":25,"children":421},[422],{"text":423,"type":29},"curl 示例只验证普通 HTTP(S) 经代理的连接，不能代替 WebSocket 握手。实际 WSS 验证需使用明确支持 HTTP CONNECT 或 SOCKS 代理的 WebSocket 客户端，并连到自有测试端；核对代理认证成功、握手返回 `101`、消息可收发且连接可正常关闭。客户端及其代理参数因库和版本不同，只有核验具体客户端后才应给出可复制命令；不要把不确定支持代理的工具当作验证步骤。",{"type":31,"level":21,"children":425},[426],{"text":427,"type":29},"按连接阶段判断应该检查哪一端",{"type":25,"children":429},[430],{"text":431,"type":29},"代理连接或认证失败时，核对代理主机、端口、协议和认证；TLS 隧道失败时，查看客户端支持范围及 TLS 错误；代理已连通但 Upgrade 失败时，检查目标路径、握手请求和服务端响应；建立后很快断开时，检查空闲超时、心跳和会话规则。若问题发生在 Nginx 到上游的反向代理链路，应按对应 Nginx WebSocket 配置排查。每轮只调整一个变量。",{"type":31,"level":21,"children":433},[434],{"text":136,"type":29},{"type":31,"level":73,"children":436},[437],{"text":438,"type":29},"HTTP 代理也能承载 WebSocket 吗？",{"type":25,"children":440},[441],{"text":442,"type":29},"取决于客户端和代理是否支持相应的隧道或 Upgrade 流程。不要单凭协议名称判断兼容性；用实际客户端连接目标 `ws:\u002F\u002F` 或 `wss:\u002F\u002F` 地址，并检查握手响应及连接日志。",{"type":31,"level":73,"children":444},[445],{"text":446,"type":29},"连接失败时应先换代理 IP 吗？",{"type":25,"children":448},[449],{"text":450,"type":29},"先定位失败阶段。只有证据指向代理连接、认证或隧道问题时，才考虑调整代理；目标服务或应用层错误应检查对应配置。",{"type":25,"children":452},[453],{"text":161,"type":29},{"type":25,"children":455},[456],{"text":355,"type":29},{"type":31,"level":21,"children":458},[459],{"text":460,"type":29},"按故障位置复核 WebSocket 连接配置",{"type":25,"children":462},[463],{"text":464,"type":29},"把失败时间、代理协议、客户端版本、阶段、状态码和脱敏日志交给客户端或代理服务支持团队；若确认故障位于 Nginx 到上游链路，再按对应反向代理配置排查。",[466],{"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":467,"featured":19,"sortOrder":20,"readingTime":21,"bodyType":22,"bodyBlocks":468,"bodyHtml":161},[],[469,472,475,478,481,484,487,490,493,496,499,502,505,508,511,514,517,520,523,526,529,532,535,538,541,544,547,550,553,556,559,562,565],{"type":25,"children":470},[471],{"text":28,"type":29},{"type":31,"level":21,"children":473},[474],{"text":34,"type":29},{"type":25,"children":476},[477],{"text":38,"type":29},{"type":31,"level":21,"children":479},[480],{"text":42,"type":29},{"type":25,"children":482},[483],{"text":46,"type":29},{"type":31,"level":21,"children":485},[486],{"text":50,"type":29},{"type":25,"children":488},[489],{"text":54,"type":29},{"type":31,"level":21,"children":491},[492],{"text":58,"type":29},{"type":25,"children":494},[495],{"text":62,"type":29},{"type":64,"children":497},[498],{"text":67,"type":29},{"type":31,"level":21,"children":500},[501],{"text":71,"type":29},{"type":31,"level":73,"children":503},[504],{"text":76,"type":29},{"type":25,"children":506},[507],{"text":80,"type":29},{"type":31,"level":73,"children":509},[510],{"text":84,"type":29},{"type":25,"children":512},[513],{"text":88,"type":29},{"type":31,"level":73,"children":515},[516],{"text":92,"type":29},{"type":25,"children":518},[519],{"text":96,"type":29},{"type":31,"level":21,"children":521},[522],{"text":100,"type":29},{"type":31,"level":73,"children":524},[525],{"text":104,"type":29},{"type":25,"children":527},[528],{"text":108,"type":29},{"type":31,"level":73,"children":530},[531],{"text":112,"type":29},{"type":25,"children":533},[534],{"text":116,"type":29},{"type":31,"level":73,"children":536},[537],{"text":120,"type":29},{"type":25,"children":539},[540],{"text":124,"type":29},{"type":31,"level":21,"children":542},[543],{"text":128,"type":29},{"type":25,"children":545},[546],{"text":132,"type":29},{"type":31,"level":21,"children":548},[549],{"text":136,"type":29},{"type":31,"level":73,"children":551},[552],{"text":140,"type":29},{"type":25,"children":554},[555],{"text":144,"type":29},{"type":31,"level":73,"children":557},[558],{"text":148,"type":29},{"type":25,"children":560},[561],{"text":152,"type":29},{"type":31,"level":73,"children":563},[564],{"text":156,"type":29},{"type":25,"children":566},[567],{"text":160,"type":29},null,[],[]]