# ProxShift — 面向助手和爬虫的完整参考资料 来源:https://proxshift.com/zh · 根据实时网站数据表生成于 2026-09-22(UTC)。价格均以美元计。 ## 身份信息 ProxShift 是一家代理服务提供商,通过一个使用加密货币充值的预付费钱包提供四种网络:住宅代理(70M+ 个 IP,覆盖 199 个国家和地区,按 GB 计费,每 GB $2.45 起);ISP 代理(550K+ 个静态住宅 IP,覆盖 33 个国家/地区,不限流量,每个 IP 每月 $0.99 起);专用数据中心代理(550K+ 个 IP,覆盖 37 个国家/地区的 60 多个城市,每个 IP 每月 $0.70 起);以及 4G/5G 移动代理(4.9M+ 个 IP,覆盖 100 多个国家/地区,每 GB $2.62 起,专用设备每月 $31.05 起)。无需订阅或身份验证,流量永不过期,支持 HTTP(S) 和 SOCKS5,且不限线程。 - 代理池规模(截至 2026年9月):住宅代理 70M+,ISP 代理 550K+,数据中心代理 550K+,移动代理 4.9M+。住宅和移动代理数据统计一个月内可用的不同 IP 地址,而非某一时刻在线的数量;ISP 和数据中心代理数据统计可供订单分配的地址库存。数据截至 2026年9月。 - 付款:仅支持向美元预付费钱包充值加密货币(BTC、ETH、USDT、USDC、LTC、XMR、SOL、TRX、DOGE 等);最低充值金额为 $20;无需银行卡或身份证件。 - 住宅代理:共 12 个流量档位,从购买 1 GB 时每 GB $2.45,到购买 10 TB 时每 GB $0.95;单次购买对应的档位适用于其中每 GB 流量;全球统一费率;流量永不过期。 - ISP(静态住宅)代理:按每个 IP 计费,不限流量;美国地区的期限包括 24 小时($0.75)、30 天($1.12)、60 天(每月 $1.06)和 90 天(每月 $0.99);其他价格区按公开倍数计费;批量折扣为 10 个以上 5%、50 个以上 10%、100 个以上 20%、500 个以上 25%。 - 数据中心代理:专用 IP,每个 IP 每月包含 100 GB 订单共享流量;北美地区 30 天价格为 $0.80,60 天每月 $0.76,90 天每月 $0.70;欧洲为 1.15 倍,世界其他地区为 1.40 倍;批量折扣与 ISP 代理相同。 - 移动代理:轮换 4G/5G 代理池从购买 2 GB 时每 GB $2.62,降至购买 500 GB 时每 GB $1.58;美国和加拿大的专用设备每月 $69(24 小时测试 $5.90),西欧和澳大利亚为 0.80 倍,东欧、土耳其、巴西、南非和亚洲为 0.50 倍。 - 定位:国家/地区(-cc-)、美国州(-state-)、城市(-city-)和 ASN(-asn-)均作为用户名参数;通过 -sid- 和 -ttl- 设置 1 分钟至 24 小时的粘性会话;否则每次新连接都会轮换。 - 网关:res.proxshift.com 和 mob.proxshift.com 的 9000 端口用于 HTTP/S,9001 端口用于 SOCKS5;专用地址使用 ip:8000(HTTP/S)和 ip:8001(SOCKS5);支持用户名密码或 IP 白名单身份验证;并发连接不限。 - 来源与规则:住宅代理容量来自用户自愿加入的付费代理池;严格执行可接受使用政策(禁止攻击、欺诈、未经授权的访问,以及在用户或目标所在地违法的任何行为)。 - 透明度:文档即产品规范;网站上的所有价格均来自同一份公开价格表;状态页面每五分钟探测一次所有系统。 ## 四种代理网络 | 网络 | IP 属性 | 代理池规模 | 最适合 | 计费方式 | 定位方式 | 起价 | | --- | --- | --- | --- | --- | --- | --- | | 住宅代理 | 70M+ 个真实家庭 IP,支持轮换或粘性会话 | 70M+ 住宅 IP | 网页抓取、SERP 跟踪、广告验证 | 按 GB 计费 · 流量永不过期 | 国家/地区、州/省、城市、ASN | $2.45/GB | | ISP 代理 | 550K+ 个托管于数据中心线路的静态住宅 IP | 550K+ 静态住宅 IP | 账号管理、结账、登录 | 按专用 IP 计费 · 流量不限 | 国家/地区、城市 | $0.99/IP/月 | | 数据中心代理 | 550K+ 个为极致速度打造的私有 IP | 550K+ 数据中心 IP | 批量、低敏感度任务 | 按专用 IP 计费 · 每月共享 100 GB 流量 | 国家/地区、州/省、城市 | $0.70/IP/月 | | 移动代理 | 4.9M+ 个真实 4G/5G 运营商 IP | 4.9M+ 移动 IP | 防护最严密的目标 | 按 GB 计费,或按周期租用专用 IP | 国家/地区、运营商 | $2.62/GB | 代理池规模:住宅和移动代理数据统计一个月内可用的不同 IP 地址,而非某一时刻在线的数量;ISP 和数据中心代理数据统计可供订单分配的地址库存。数据截至 2026年9月。 ### 地址属性 | 标准 | 住宅代理 | ISP 代理 | 数据中心代理 | 移动代理 | | --- | --- | --- | --- | --- | | 地址来源 | 经所有者同意接入消费级 ISP 的家庭设备 | 注册在消费级 ISP 名下、托管于数据中心有线上行链路的地址段 | 由商业设施发布的地址段 | 运营商的 4G/5G 网络,数千名用户通过 NAT 共享 | | 代理池规模 | 轮换池中有 70M+ 个地址 | 可供订购的静态地址有 550K+ 个 | 可供订购的专用地址有 550K+ 个 | 轮换池中有 4.9M+ 个运营商地址 | | 其他使用者 | 共享代理池;同一出口仅在会话期间由您保持 | 没有其他人,整个租用期限内该地址归您专用 | 没有其他人,整个租用期限内该地址归您专用 | 代理池:共享运营商 NAT;专用设备:仅供您使用 | | 目标网站如何评估 | 视为家庭访客 | 视为家庭访客,同时具备数据中心的稳定性 | 视为托管流量:在受保护网站上可能被限速或屏蔽 | 容忍度最高的流量;屏蔽它也会屏蔽真实客户 | ### 使用特性 | 标准 | 住宅代理 | ISP 代理 | 数据中心代理 | 移动代理 | | --- | --- | --- | --- | --- | | 轮换方式 | 每次连接使用新出口,也可通过会话 ID 最多保持 24 小时 | 不轮换,IP 为静态地址 | 不轮换,IP 为静态地址 | 代理池:按连接轮换或保持粘性;设备:通过链接、API 或定时器按需轮换 | | 定位方式 | 通过用户名定位国家/地区、美国州、城市和 ASN | 下单时选择国家/地区和城市 | 下单时选择国家/地区和城市 | 代理池可选择国家/地区和运营商(ASN);设备的位置固定 | | 速度与延迟 | 家庭线路;增加数百毫秒延迟 | 有线上行链路;住宅级代理中速度最快 | 有线上行链路;四类代理中速度最快 | 蜂窝网络;适合网页和应用,不适合批量传输 | | 并发连接 | 不限 | 不限 | 不限 | 不限 | | 交付方式 | 一个主机名,参数写入用户名 | 由多行 ip:port:user:pass 组成的列表 | 由多行 ip:port:user:pass 组成的列表 | 代理池:一个主机名;设备:独立的 ip:port 及轮换链接 | ### 费用 | 标准 | 住宅代理 | ISP 代理 | 数据中心代理 | 移动代理 | | --- | --- | --- | --- | --- | | 计费单位 | 按 GB 计费,档位取决于购买量,流量永不过期 | 每个地址按期限计费:24 小时、30 天、60 天或 90 天 | 每个地址按期限计费:30 天、60 天或 90 天 | 代理池按 GB 计费;设备按 24 小时至 90 天的期限计费 | | 流量 | 双向流量均计费 | 不限 | 每个地址每月 100 GB,订单内共享流量池 | 代理池按流量计费;设备不限流量 | | 地区定价 | 全球统一费率 | 按分区计费;美国为基准 | 按分区计费;北美为基准 | 代理池采用统一费率;设备按分区计费,北美以外更便宜 | | 起价 | 每 GB $2.45 | 每个地址每月 $0.99 | 每个地址每月 $0.70 | 每 GB $2.62;设备每月 $31.05 起 | ### 适用场景 | 标准 | 住宅代理 | ISP 代理 | 数据中心代理 | 移动代理 | | --- | --- | --- | --- | --- | | 最适合 | 网页抓取、SERP、广告、价格、旅行和研究 | 账号、结账以及必须保持同一 IP 的任务 | 从开放来源批量采集、监控和质量保证 | 社交账号、移动广告和应用,以及最难访问的目标 | | 不适合 | 绝不能更换地址的登录场景 | 大范围地理采样;一个地址仅对应一个位置 | 会识别托管 IP 段的目标 | 批量传输和追求原始吞吐量的任务 | ## 价格 ### 住宅代理流量(按 GB 计费,全球统一费率,永不过期) | 最低购买量 | 每 GB | 该购买量的总价 | | --- | --- | --- | | 1 GB | $2.45 | $2.45 | | 2 GB | $2.35 | $4.70 | | 5 GB | $2.10 | $10.50 | | 10 GB | $1.93 | $19.30 | | 25 GB | $1.82 | $45.50 | | 50 GB | $1.75 | $87.50 | | 100 GB | $1.54 | $154 | | 250 GB | $1.40 | $350 | | 500 GB | $1.19 | $595 | | 1 TB | $1.02 | $1,020 | | 5 TB | $0.98 | $4,900 | | 10 TB | $0.95 | $9,500 | ### 移动代理流量,轮换代理池(按 GB 计费,全球统一费率,永不过期) | 最低购买量 | 每 GB | 该购买量的总价 | | --- | --- | --- | | 2 GB | $2.62 | $5.24 | | 10 GB | $2.45 | $24.50 | | 50 GB | $2.10 | $105 | | 100 GB | $1.92 | $192 | | 500 GB | $1.58 | $790 | ### ISP 代理(每个专用 IP,不限流量) | 位置价格区 | 24 小时(每个 IP 总价) | 30 天(每个 IP 总价) | 60 天(每个 IP 总价) | 90 天(每个 IP 总价) | | --- | --- | --- | --- | --- | | 美国(基准) | $0.75 | $1.12(每月 $1.12) | $2.12(每月 $1.06) | $2.97(每月 $0.99) | | 加拿大和西欧(+20 %) | $0.90 | $1.34(每月 $1.34) | $2.54(每月 $1.27) | $3.56(每月 $1.19) | | 欧洲其他地区(+35 %) | $1.01 | $1.51(每月 $1.51) | $2.86(每月 $1.43) | $4.01(每月 $1.34) | | 亚太地区和巴西(+55 %) | $1.16 | $1.74(每月 $1.74) | $3.29(每月 $1.64) | $4.60(每月 $1.53) | 整笔订单的批量折扣:10 个 IP 起可享 5% 折扣、50 个起 10% 折扣、100 个起 20% 折扣、500 个起 25% 折扣。 ### 数据中心代理(每个专用 IP,每月共享 100 GB) | 位置价格区 | 30 天(每个 IP 总价) | 60 天(每个 IP 总价) | 90 天(每个 IP 总价) | | --- | --- | --- | --- | | 美国和加拿大(基准) | $0.80(每月 $0.80) | $1.52(每月 $0.76) | $2.10(每月 $0.70) | | 欧洲(+15 %) | $0.92(每月 $0.92) | $1.75(每月 $0.87) | $2.42(每月 $0.80) | | 亚太、中东、拉丁美洲和非洲(+40 %) | $1.12(每月 $1.12) | $2.13(每月 $1.06) | $2.94(每月 $0.98) | 整笔订单的批量折扣:10 个 IP 起可享 5% 折扣、50 个起 10% 折扣、100 个起 20% 折扣、500 个起 25% 折扣。 ### 专用移动设备(每台设备,不限流量) | 位置价格区 | 24 小时(每个 IP 总价) | 30 天(每个 IP 总价) | 60 天(每个 IP 总价) | 90 天(每个 IP 总价) | | --- | --- | --- | --- | --- | | 美国和加拿大(基准) | $5.90 | $69(每月 $69) | $131.10(每月 $65.55) | $186.30(每月 $62.10) | | 西欧和澳大利亚(−20 %) | $4.72 | $55.20(每月 $55.20) | $104.88(每月 $52.44) | $149.04(每月 $49.68) | | 东欧、土耳其、巴西、南非和亚洲(−50 %) | $2.95 | $34.50(每月 $34.50) | $65.55(每月 $32.78) | $93.15(每月 $31.05) | ### 计费规则 **价格会因国家/地区而异吗?** 流量价格不会:住宅代理和轮换移动代理在所有国家/地区的每 GB 价格相同,因为代理池仅按购买流量定价。专用 ISP 地址、数据中心地址和移动设备则按位置价格区定价,因为各地的托管、ISP 地址段和运营商套餐成本差异很大。本页的价格区表会在您订购前列出所有价格倍数。 **我适用哪个价格档位?** 以单次购买量对应的档位为准。一次购买 100 GB,其中每 GB 的价格均为 $1.54;分十次购买 1 GB,每次购买都按各自的档位计价。提交订单前,上方的计算器会显示任意购买量的准确费率和总价。 **流量会过期吗?** 不会。住宅代理和移动代理流量会保留在您的账户中,直到用完为止。流量不会每月重置,没有最低月消费,也无需维持订阅计划。 **需要订阅吗?** 不需要。您只需为预付费钱包充值并从中消费。专用地址和设备按您选择的期限租用,到期后如未续订便会结束。如有需要,可以为每个订单开启自动续订:默认关闭,仅使用预付余额,并可随时关闭。 **最低需要充值多少才能开始使用?** 最低充值金额为 $20。这足以购买数 GB 的住宅或移动代理流量、租用一个 ISP 地址或移动设备 24 小时,或者租用一个数据中心地址 30 天,方便您在扩大规模前以真实工作负载进行测试。 **专用地址的批量折扣如何计算?** 折扣会自动应用于整个订单,并可与期限优惠叠加:10 个 IP 起可享 5% 折扣、50 个起 10% 折扣、100 个起 20% 折扣、500 个起 25% 折扣。按 90 天期限租用 10 个地址时,每个地址的价格低于仅租用一个;租用 100 个时价格会更低。 **除标价外还有其他费用吗?** 我们不收取其他费用:没有设置费、按连接或线程收取的费用,也没有超额费用。数据中心订单用完每个地址每月 100 GB 的共享流量后,速度会降低,直至下一个周期开始或您添加流量,不会产生额外账单。我们无法控制的唯一成本是充值时加密货币交易自身的网络手续费。 **可以获得超出公开价格阶梯的费率吗?** 可以。如果住宅代理流量超过 10 TB、移动代理流量超过 500 GB,或需要 500 个以上专用地址,请联系我们并说明用量,我们会为您报价。低于这些用量的价格均已列在本页,无需议价。 **退款如何处理?** 未使用的钱包余额可以退回原付款钱包,并扣除网络手续费。已消耗的流量和已经履行的租用期限不可退款;专用地址如连续超过 24 小时无法连接,我们会更换地址而非退款。详情请参阅退款政策。 ## 文档 ### 快速入门(https://proxshift.com/zh/docs/quickstart) 只需五步,无需安装 SDK,任意 HTTP 客户端均可使用。如果你已经持有加密货币,十分钟即可完成。 #### 五个步骤 1. **创建账户并为钱包充值** 使用电子邮件地址注册,然后任选一种列出的币种(BTC, ETH, USDT, USDC, LTC, XMR, SOL, TRX, DOGE)充值,最低金额为 $20。交易在相应网络上确认后,余额便会到账,通常只需几分钟,且永不过期。 2. **复制网关凭据** 控制面板会显示一组用于共享网关(住宅和移动)的用户名与密码。专属 ISP、数据中心和移动设备订单则各自提供 `ip:port:user:pass` 格式的记录。 3. **选择适合任务的端点** 每种共享网络各有一个主机名;位置通过用户名选择,而不是通过主机名。专属产品则使用各自的 `ip:port`。 网络 | 端点 | HTTP(S) | SOCKS5 | 住宅 | res.proxshift.com | 9000 | 9001 | 移动(轮换) | mob.proxshift.com | 9000 | 9001 | ISP、数据中心、移动设备 | 列表中的 IP | 8000 | 8001 | 4. **发送第一个请求** 示例会询问 IP 回显服务它看到的地址。用户名中的 `-cc-us` 表示请求使用美国出口;运行两次,你会得到两个不同家庭的 IP。 cURLPythonNode.jsPHPGocURL复制curl -x http://USER-cc-us:PASS@res.proxshift.com:9000 https://api.ipify.orgPython复制import requests proxy = "http://USER-cc-us:PASS@res.proxshift.com:9000" r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=30) print(r.text)Node.js复制import { fetch, ProxyAgent } from "undici"; const dispatcher = new ProxyAgent("http://USER-cc-us:PASS@res.proxshift.com:9000"); const res = await fetch("https://api.ipify.org", { dispatcher }); console.log(await res.text());PHP复制$ch = curl_init("https://api.ipify.org"); curl_setopt_array($ch, [ CURLOPT_PROXY => "http://res.proxshift.com:9000", CURLOPT_PROXYUSERPWD => "USER-cc-us:PASS", CURLOPT_RETURNTRANSFER => true, ]); echo curl_exec($ch);Go复制proxyURL, _ := url.Parse("http://USER-cc-us:PASS@res.proxshift.com:9000") client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}} resp, err := client.Get("https://api.ipify.org") 5. **进行更精确的定向并保持 IP** 所有设置都是附加到用户名后的 `-key-value` 对:在 `-cc-de` 下使用 `-city-berlin` 指定城市,使用 `-sid-a1b2c3` 让多个请求保持同一 IP,使用 `-ttl-30m` 指定保持时长。[定向与会话](https://proxshift.com/zh/docs/username-parameters)页面列出了全部参数。 ``` # 使用一个柏林住宅 IP,并在多个请求间保持 30 分钟 curl -x http://USER-cc-de-city-berlin-sid-a1b2c3-ttl-30m:PASS@res.proxshift.com:9000 \ https://api.ipify.org ``` > Tip:验证结果:将回显服务返回的 IP 粘贴到任意公共地理位置数据库中。它应归属于你请求的国家/地区,并由消费级 ISP 提供。 #### 接下来可以做什么 - [身份验证](https://proxshift.com/zh/docs/authentication):用户名密码或 IP 白名单,以及每种方式如何传递参数。 - [定位与会话](https://proxshift.com/zh/docs/username-parameters):国家/地区、州、省、市、ASN、粘性会话及其有效期。 - [代码示例](https://proxshift.com/zh/docs/examples):Python、Node.js、PHP、Go、Java、C#、Playwright、Puppeteer、Scrapy 等。 - [错误与故障排除](https://proxshift.com/zh/docs/errors):网关返回的各个状态码表示什么,以及应如何处理。 ### 身份验证(https://proxshift.com/zh/docs/authentication) 两种方式都适用于所有网络和两种协议。可以按服务器选择,也可以自由混用。 #### 选择验证方式 | | 用户名和密码 | IP 白名单 | | --- | --- | --- | | 适用来源 | 任意 IP,包括动态 IP 和云端 IP | 你已登记的公共 IPv4 地址 | | 定向参数 | 附加到用户名中 | 发送任意用户名以传递参数;密码会被忽略 | | 传输中的凭据 | `Proxy-Authorization` 标头中的 Base64 数据 | 无 | | 最适合 | 笔记本电脑、容器、无服务器平台、浏览器 | 固定服务器、无法保存密码的反检测浏览器、Chrome 启动参数 | | 轮换 | 随时重新生成密码 | 随时添加或移除地址 | #### 用户名和密码 你的账户拥有一组用于共享网关的凭据。它显示在控制面板的 **凭据** 下,也会由 [`GET /v1/credentials`](https://proxshift.com/zh/docs/api#get-v1-credentials) 返回。用户名携带[定向参数](https://proxshift.com/zh/docs/username-parameters);密码不会随这些参数变化。 ```bash # 通过住宅网关访问 HTTP(S) 目标 curl -x http://USER-cc-us:PASS@res.proxshift.com:9000 https://api.ipify.org # 通过 SOCKS5 完成相同操作(socks5h = 在出口处解析主机名) curl --proxy socks5h://USER-cc-us:PASS@res.proxshift.com:9001 https://api.ipify.org ``` 在底层,HTTP 客户端会在请求或 `CONNECT` 上发送 `Proxy-Authorization: Basic base64(username:password)`;SOCKS5 客户端则使用用户名/密码子协商(RFC 1929)。只要代理 URL 中包含凭据,所有主流客户端都会自动完成这些操作。 > Info:密码由字母和数字生成,因此无需进行 URL 编码。如果你自行设置的密码包含 `@`、`:` 或 `/`,请在代理 URL 中对这些字符进行百分号编码(`@` 变为 `%40`)。 #### IP 白名单 登记将要发起连接的机器的公共 IPv4 地址,这些机器无需凭据即可使用所有端点。每个账户最多可登记 50 个地址;更改会在一分钟内生效。 1. 查找目标网站会看到的服务器地址:在**不使用**代理的情况下运行 `curl https://api.ipify.org`。 2. 在 **设置 → 白名单** 中添加该地址,或调用 [`POST /v1/whitelist`](https://proxshift.com/zh/docs/api#post-v1-whitelist)。 3. 连接时不提供用户名和密码。如果没有用户名,出口将在全球范围内选择,并在每次连接时轮换。 4. 如需定向,请继续发送包含所需参数的用户名以及任意密码:白名单中的地址无论密码为何都会受到信任。 ```bash # 从白名单服务器连接:完全无需凭据 curl -x http://res.proxshift.com:9000 https://api.ipify.org # 仍通过白名单验证,但指定定向参数:任意密码均可 curl -x http://USER-cc-fr-city-paris:x@res.proxshift.com:9000 https://api.ipify.org ``` > Warn:使用白名单需要稳定的公共 IP。位于运营商级 NAT 后的机器、使用动态地址的家庭网络连接以及大多数无服务器平台应改用密码方式。 #### 专属 ISP、数据中心和移动设备 每个专属地址都有自己的用户名和密码,在列表中显示为 `ip:port:user:pass`。白名单也适用于这些地址:从已登记的服务器连接到 `ip:8000` 时完全无需凭据。由于专属地址的位置固定,因此不需要使用参数。 ```text 203.0.113.42:8000:u7f3a9c:kq2Lm8Pz1r # HTTP(S) 203.0.113.42:8001:u7f3a9c:kq2Lm8Pz1r # SOCKS5,凭据相同 ``` #### 子用户 子用户是共享网关上的一组额外凭据,拥有独立的流量限额和用量记录。可以为每个客户、项目或团队成员分别创建子用户,这样即使密码泄露,暴露的也只是有限预算,同时还可以按业务线查看用量。子用户可在控制面板中管理,也可通过 [`POST /v1/subusers`](https://proxshift.com/zh/docs/api#post-v1-subusers) 管理。 #### 轮换密码 可在控制面板中重新生成密码,也可调用 [`POST /v1/credentials/rotate`](https://proxshift.com/zh/docs/api#post-v1-credentials-rotate)。旧凭据仍会继续有效十分钟,以便正在运行的任务无故障地改用新凭据。 #### 避免凭据出现在不该出现的地方 - 从环境变量或密钥存储中读取凭据,切勿将其放入源代码管理系统。 - 在共享网络或不受信任的网络上优先使用白名单:从你到网关的这一段使用纯 HTTP,因此 Basic 标头可能在传输路径上被读取。 - 为每个工具分配一个子用户;停用工具时撤销该子用户,而不是撤销账户密码。 - 从日志中移除代理 URL。发生错误时,大多数客户端会打印包含凭据的完整 URL。 ### 端点与端口(https://proxshift.com/zh/docs/endpoints) 位置信息从不写在主机名中。共享网关从用户名读取位置;独享代理的位置在下单时确定。 #### 端点表 | 网络 | 端点 | HTTP(S) | SOCKS5 | 身份验证 | 计费 | | --- | --- | --- | --- | --- | --- | | 住宅 | res.proxshift.com | 9000 | 9001 | user:pass 或白名单 | 按 GB 计费,永不过期 | | 移动(轮换) | mob.proxshift.com | 9000 | 9001 | user:pass 或白名单 | 按 GB 计费,永不过期 | | ISP | 你的 IP(列表) | 8000 | 8001 | user:pass 或白名单 | 按 IP、按租期计费,流量不限 | | 数据中心 | 你的 IP(列表) | 8000 | 8001 | user:pass 或白名单 | 按 IP、按租期计费,每个 IP 每月 100 GB,合并共享 | | 移动(独享) | 你的设备 IP | 8000 | 8001 | user:pass 或白名单 | 按设备、按租期计费,流量不限 | #### 一个主机名,覆盖所有位置 无论身在何处,都可连接 `res.proxshift.com`,并在用户名中指定所需出口:`-cc-jp` 表示日本,`-cc-us-state-tx-city-austin` 表示奥斯汀,`-asn-3320` 表示德国电信用户。无需维护各个国家/地区的主机名,因此切换市场只需修改字符串,不必更改配置。移动网络网关 `mob.proxshift.com` 接受相同的参数。 #### HTTPS 目标 对于 `https://` URL,客户端会将 `CONNECT host:443` 发送到端口 9000,网关再从选定的出口建立隧道。TLS 在客户端与目标之间端到端运行:网关不会看到明文,不会终止或重新签发证书,也不会更改 SNI。HTTP 与 HTTPS 目标共用同一端口;代理这一跳本身没有单独的 TLS 端口。 > Warn:从你的计算机到网关的这一跳未加密。使用密码认证时,Basic 标头会以明文通过这一跳;在不受信任的网络上,请使用 [IP 白名单](https://proxshift.com/zh/docs/authentication#ip-whitelist),或从你控制的服务器连接。 #### 独享地址 ISP 代理、数据中心代理或移动设备均以 IP 地址形式交付:HTTP(S) 使用端口 8000,SOCKS5 使用端口 8001。控制面板中的列表以及 [`GET /v1/proxies`](https://proxshift.com/zh/docs/api#get-v1-proxies) 会为每个地址提供一行记录: ```text 203.0.113.42:8000:u7f3a9c:kq2Lm8Pz1r 203.0.113.57:8000:u7f3a9c:kq2Lm8Pz1r 198.51.100.9:8000:d4c1e0:Zt6Hn3Vw9x # 一台移动设备 ``` 独享地址会忽略用户名参数:独享代理已经对应一个固定位置和一个固定 IP。 #### IP 版本与 DNS - 出口使用 IPv4。仅发布 AAAA 记录的目标无法通过该网络访问。 - 主机名在出口端解析,因此目标看到的 DNS 查询与请求来自同一国家/地区。使用 SOCKS5 时,请采用 `socks5h://` 方案,让客户端把主机名交给代理,而不是在本地解析。 - `res.proxshift.com` 和 `mob.proxshift.com` 会解析到网关集群;不要在配置中固定其地址,地址会随容量扩充而变化。 #### 目标端口 目标上的任意 TCP 端口均可使用,但有一个例外:所有网络都会阻止出站端口 25 (SMTP)。不传输 UDP;请参阅[协议](https://proxshift.com/zh/docs/protocols)。 #### 超时与连接保持 - 与网关的连接若连续 60 秒没有流量,将被关闭。重新建立连接即可;除非使用 `-sid-` 固定出口,否则下一个连接会选择新的出口。 - 只要仍有数据流动,传输就没有时长限制,因此支持大型下载和长轮询。 - 系统支持连接保持。复用同一连接的请求会在该连接存续期间共用同一出口;请参阅[轮换](https://proxshift.com/zh/docs/username-parameters#rotation-and-sessions)。 ### 定位与会话(https://proxshift.com/zh/docs/username-parameters) 国家/地区、美国州、城市、运营商、会话标识和有效期。两个共享网关均支持这六个参数,顺序不限。 #### 语法 先写用户名,再追加 `-key-value` 对。键和值均使用小写;顺序不限;密码保持不变。完全不带参数时,系统会从任意国家/地区选择出口,并在每次连接时更换。 ```text USER-cc-us-state-tx-city-austin-sid-a1b2c3-ttl-30m:PASS │ │ │ │ │ │ │ │ │ │ │ └─ 保持 30 分钟 │ │ │ │ └─ 会话 ID:相同 ID 使用相同 IP │ │ │ └─ 城市(仅限字母和数字) │ │ └─ 美国州(仅适用于美国) │ └─ 国家/地区,ISO 3166-1 alpha-2 └─ 你的用户名 ``` #### 参数 | 参数 | 值 | 含义 | | --- | --- | --- | | -cc- | 两位国家/地区代码:`us`、`de`、`br`、`jp` | 从该国家/地区出口。住宅网络覆盖 199 个国家/地区;移动网络代理池覆盖结账页面列出的国家/地区。 | | -state- | 美国州代码:`tx`、`ca`、`ny` | 从该州出口。必须搭配 `-cc-us`;其他国家/地区不可用。 | | -city- | 城市名称,使用小写且仅含字母和数字:`newyork`、`berlin`、`saopaulo` | 从该城市出口。必须搭配 `-cc-`。每个[国家/地区页面](https://proxshift.com/zh/locations)均以准确参数值列出可用城市。 | | -asn- | 自治系统编号,不带 `AS` 前缀:`7922`、`3320` | 从该运营商宣告的网络出口。与 `-cc-` 搭配使用。在移动网络代理池中,可通过此参数选择运营商。 | | -sid- | 字母和数字,最多 32 个字符:`a1b2c3`、`job42` | 粘性会话。携带相同 ID 的请求会共用同一出口,直到有效期结束或设备离线。使用新 ID 即会获得新 IP。 | | -ttl- | 分钟或小时,范围从 `1m` 到 `24h`:`10m`、`2h` | 粘性会话的有效期,从首次请求开始计算。使用 `-sid-` 但未提供 `-ttl-` 时,默认为 `10m`。 | #### 轮换与会话 不使用 `-sid-` 时,网关会为收到的**每个新连接**选择新出口。客户端若保持连接,或通过同一个 `CONNECT` 隧道发送多个请求,会在该连接的整个存续期间使用同一出口。若要每个请求都轮换,请禁用连接保持,或在每次调用后关闭连接;若要让多个连接使用同一 IP,请使用会话 ID。 - 任意数量的并行连接只要使用相同的 `-sid-` 值,就会使用相同的 IP。可按需同时运行任意数量的会话,没有上限。 - 有效期结束或住宅设备断线后,下一个使用该 ID 的请求会获得一个仍符合其他参数的**新** IP。设计流程时应考虑这一点:任何住宅网络都可能在流程中途更换 IP。 - 若要立即强制更换,请修改 ID。ID 的作用域限定在你的账户内,且不产生费用。 - 住宅和移动网络代理池均支持粘性会话。独享 ISP、数据中心和移动设备代理均使用一个固定 IP,并忽略 `-sid-` 和 `-ttl-`。 #### 示例 | 需求 | 用户名 | | --- | --- | | 每次连接都从任意国家/地区获取新 IP | USER | | 每次连接都获取新的美国 IP | USER-cc-us | | 一个得克萨斯州住宅出口 | USER-cc-us-state-tx | | 任意柏林 IP | USER-cc-de-city-berlin | | 一个保持十分钟的柏林 IP | USER-cc-de-city-berlin-sid-7f3a9 | | 一个保持两小时的日本 IP | USER-cc-jp-sid-tokyo1-ttl-2h | | 一个 Comcast 用户 (AS7922) | USER-cc-us-asn-7922 | | 德国电信移动网络用户,保持 15 分钟 | USER-cc-de-asn-3320-sid-m1-ttl-15m | | 二十个并行的巴西会话 | USER-cc-br-sid-w01 … USER-cc-br-sid-w20 | #### 城市名称 城市值采用小写 ASCII 城市名称,并移除空格、连字符、撇号和重音符号:`New York` 变为 `newyork`,`São Paulo` 变为 `saopaulo`,`Düsseldorf` 变为 `dusseldorf`,`Frankfurt am Main` 列为 `frankfurt`。请使用国家/地区页面显示的值,不要猜测;网关会精确匹配该字符串。 #### 无法满足参数时会怎样 | 情形 | 响应 | 处理方法 | | --- | --- | --- | | 未知键或值格式错误(`-country-us`、`-ttl-90x`) | `400 Bad Request` | 修正字符串;响应正文会指出相关参数。 | | 使用 `-city-` 或 `-state-` 但未提供 `-cc-`,或在美国以外使用 `-state-` | `400 Bad Request` | 添加 `-cc-us`,或移除该参数。 | | 当前没有符合参数组合的在线出口(例如小城市加特定 ASN) | `502 Bad Gateway` | 重试,然后放宽条件:先移除 `-asn-`,再移除 `-city-`。 | | 向独享地址发送参数 | 已忽略 | 无需处理;IP 是固定的。 | > Tip:先使用宽泛条件,再逐步缩小范围。国家/地区级定位的代理池最充足,成功率也最高;仅在任务需要时添加城市和 ASN,并在流程允许的范围内尽量缩短粘性会话有效期。 ### 住宅代理(https://proxshift.com/zh/docs/residential) 来自 199 个国家/地区消费级 ISP 的家庭 IP,支持轮换或粘性会话,按 GB 计费,价格低至 $2.45,流量永不过期。 #### 概览 - **端点**: `res.proxshift.com`:9000(HTTP/HTTPS)和 9001(SOCKS5) - **出口**: 经设备所有者同意接入的真实消费级网络设备,覆盖 199 个国家/地区 - **轮换**: 每次新建连接使用新的出口,或通过 `-sid-` 将一个出口最多保持 24 小时 - **定位**: 所有地区均可按国家/地区定位;美国可按州定位;所列地区可按城市定位;还可按 ASN 定位 - **计费**: 按购买量对应的阶梯价格按 GB 计费,价格从 $2.45 到 $0.95;流量永不过期 - **并发**: 连接数和会话数均不限 #### 代理池的工作方式 每个请求都会进入网关;网关选择与参数匹配的设备,并通过该设备中继连接。目标网站看到的是该设备的地址、ISP 和所在城市。设备会随所有者上线或下线而加入或离开代理池,因此粘性会话可能在设定时长结束前中断,范围过窄的定位有时也会找不到在线设备。 #### 轮换与粘性会话 默认采用轮换模式:每次与网关建立新连接都会获得不同的出口。添加 `-sid-` 可保持同一出口,使用 `-ttl-` 指定保持时长(默认 10 分钟,最长 24 小时)。搜索后翻页、登录后操作等多步骤流程适合使用粘性会话;彼此独立的抓取则适合轮换模式。详情和示例请参阅[定位与会话](https://proxshift.com/zh/docs/username-parameters)。 #### 定位级别 | 级别 | 参数 | 覆盖范围 | 典型用途 | | --- | --- | --- | --- | | 国家/地区 | -cc- | 199 个国家/地区 | 本地化内容、地域限制、各市场定价 | | 州 | -state- | 仅限美国 | 特定州的定价、合规与广告 | | 城市 | -city- | 国家/地区页面列出的城市 | 本地搜索结果、门店库存、配送规则 | | 提供商 | -asn- | 有设备在线的任意 AS | 复现特定 ISP 的受众环境、提供商级测试 | #### 计费内容 计量流量包括双向通过网关的每一个字节:请求和响应、标头以及 TLS 记录均包含在内。在到达目标之前失败的连接不计费。费率由单次购买量决定:一次购买 100 GB 时,每 GB 价格为 $1.54,且整笔购买均按此费率计算。流量会一直保留在账户中直至用完,不会每月重置。完整阶梯价格请参阅[钱包与计费](https://proxshift.com/zh/docs/billing#residential-and-mobile-traffic)。 #### 性能预期 - 吞吐量相当于家庭宽带:足以处理网页、API 和媒体,但批量传输速度低于有线数据中心链路。客户端的连接超时应至少设为 10 秒,读取超时设为 30 秒。 - 延迟包含到设备的额外一跳。相比直接请求,通常会增加几百毫秒;目标国家/地区越远,增加越多。 - 少量连接会因设备在请求期间离线而失败。遇到连接错误或 `502` 时重试一次;在轮换模式下,重试会直接使用另一个出口。 #### 最佳实践 - 让出口与目标市场匹配:抓取德国商店时使用 `-cc-de`,不要使用邻国出口。 - 粘性会话的时长只需满足流程需要。由于设备会不断上线和离线,过长的时长会降低成功率。 - 按域名控制请求节奏。ProxShift 不限制你的速率,但适度的请求频率能让代理池对所有人保持良好状态,也有利于你自己的下一项任务。 - 在无头浏览器中屏蔽图片、字体和跟踪器;HTML 只占页面流量的一小部分,而你按 GB 付费。 - 缩小任务定位范围前,请先通过[国家/地区页面](https://proxshift.com/zh/locations)查看可用的城市和提供商。 #### 相关内容 - [定位与会话](https://proxshift.com/zh/docs/username-parameters):所有参数,以及示例和错误情形。 - [钱包与计费](https://proxshift.com/zh/docs/billing):每 GB 阶梯价格以及购买量如何达到相应档位。 - [住宅代理](https://proxshift.com/zh/residential-proxies):价格、覆盖范围和完整产品页面。 ### ISP(https://proxshift.com/zh/docs/isp) 注册于消费级 ISP、托管在有线上行链路上的 IP,在租期内由您独享,流量不限,覆盖 33 个国家/地区。 #### 概览 - **端点**: 每个代理对应一个 `ip:port`:HTTP(S) 使用 8000,SOCKS5 使用 8001 - **出口**: 注册于消费级 ISP、托管在数据中心的地址,覆盖 33 个国家/地区 - **轮换**: 无。整个租期内 IP 固定不变 - **计费**: 按 IP、按租期计费(24 小时、30、60 或 90 天);美国 90 天方案每个 IP 每月低至 $0.99,其他地区按区域定价 - **流量**: 不限流量,不计量 - **并发**: 每个 IP 的连接数不限 #### 订购 选择国家/地区、数量和租期。价格取决于位置区域;美国是基准区域,其他区域按已公布的倍数定价。批量折扣会自动应用于整笔订单:10 个 IP 起可享 5% 折扣、50 个起 10% 折扣、100 个起 20% 折扣、500 个起 25% 折扣。24 小时租期用于在长期购买前测试某个位置。 #### 您的列表 地址将在几分钟内配置完成,并以 `ip:port:user:pass` 行和 JSON 格式显示在控制面板以及 [`GET /v1/proxies`](https://proxshift.com/zh/docs/api#get-v1-proxies) 中。每一行都是独立代理,前方没有网关,因此延迟取决于托管该地址的数据中心。 ```bash # 使用列表中的凭据 curl -x http://u7f3a9c:kq2Lm8Pz1r@203.0.113.42:8000 https://api.ipify.org # 从已加入白名单的服务器连接 curl -x http://203.0.113.42:8000 https://api.ipify.org ``` #### 身份验证 每个地址都有各自的用户名和密码,账户的[白名单](https://proxshift.com/zh/docs/authentication#ip-whitelist)对所有地址生效。用户名参数会被忽略,因为位置由地址本身决定。 #### 流量与并发 ISP 代理不计量任何流量。您可以进行流式传输、下载、保持长连接,并在目标允许的范围内运行任意数量的并行连接;每个 IP 的价格就是全部费用。 #### 续订、到期与更换 - 要保留相同地址,请在租期结束前通过控制面板或 [`POST /v1/orders/{id}/renew`](https://proxshift.com/zh/docs/api#post-v1-orders-id-renew) 续订。订单到期后会释放其 IP,且无法找回。 - 如果某个地址持续超过 24 小时无法访问,我们会在剩余租期内免费更换。更换后使用不同的 IP;绑定到旧 IP 的会话必须迁移。 - 被特定目标封锁不属于地址故障,不能作为更换理由。如果已知目标限制严格,请先使用 24 小时租期测试。 #### 在静态 IP 上运行账户 - 一个账户对应一个 IP 和一个浏览器配置文件。共享出口会使多个账户产生关联。 - 账户应保持在创建时所在的国家/地区,并使用该国家/地区的 IP。 - 先进行养号:新 IP 上的新账户应连续数天保持缓慢活动。第一天就全速自动化,正是平台会识别的异常特征。 - 提前续订。账户突然从新地址出现时,会被视为新设备。 #### 相关内容 - [ISP 代理](https://proxshift.com/zh/isp-proxies):按区域划分的价格、租期和 33 个国家/地区。 - [社交媒体管理](https://proxshift.com/zh/use-cases/social-media-management):最常需要 ISP 地址的使用场景。 - [身份验证](https://proxshift.com/zh/docs/authentication):将服务器加入白名单,使其无需密码。 ### 数据中心(https://proxshift.com/zh/docs/datacenter) 这是我们提供的最快网络。固定地址通过有线上行链路接入,覆盖 37 个国家/地区;每个 IP 每月提供 100 GB,并汇入订单的共享流量池。 #### 概览 - **端点**: 每个代理对应一个 `ip:port`:HTTP(S) 使用 8000,SOCKS5 使用 8001 - **出口**: 位于运营商级设施中的地址,覆盖 37 个国家/地区的 60 多个城市 - **轮换**: 无。租期内地址固定不变 - **计费**: 按 IP、按租期计费(30、60 或 90 天);北美 90 天方案每个 IP 每月低至 $0.70,其他地区按区域定价 - **流量**: 每个 IP 每月 100 GB,在订单的所有 IP 之间共享 - **并发**: 每个 IP 的连接数不限 #### 订购 选择位置(国家/地区,以及提供时可选的城市)、数量和租期。一笔订单可以混合选择多个城市。北美是基准区域;欧洲和世界其他地区按已公布的倍数定价。批量折扣会自动应用于整笔订单:10 个 IP 起可享 5% 折扣、50 个起 10% 折扣、100 个起 20% 折扣、500 个起 25% 折扣。 #### 流量池 订单中的每个 IP 都会向该订单的月度流量池贡献 100 GB,订单中的任意 IP 都可使用这些流量。无论由哪个 IP 执行任务,十个 IP 共同享有 1000 GB。周期从下单日期开始,每月重置;未使用的流量不会结转。你可以在控制面板和 [`GET /v1/usage`](https://proxshift.com/zh/docs/api#get-v1-usage) 中按订单查看用量。 | 情况 | 处理方式 | | --- | --- | | 流量池未达上限 | 每个 IP 均保持全速 | | 流量池已用尽 | 速度会降低直至下一个周期;不会阻止任何操作,也不会有请求因流量池而失败 | | 本月需要更多流量 | 通过控制面板或 API 为订单增加流量或添加 IP(每个 IP 增加 100 GB) | #### 您的列表与身份验证 交付方式与 ISP 代理相同:控制面板和 [`GET /v1/proxies`](https://proxshift.com/zh/docs/api#get-v1-proxies) 中提供 `ip:port:user:pass` 行和 JSON;每个地址有各自的用户名和密码,并支持白名单。用户名中的参数会被忽略。 #### 性能 地址通过位于主要互联网交换中心设施中的有线上行链路接入:在四种网络中延迟最低且最稳定,适合批量采集、监控以及不会识别托管网段的 API。会对访客评分的目标通常会标记数据中心网段;对于这类目标,请使用[住宅代理](https://proxshift.com/zh/docs/residential)或[移动代理](https://proxshift.com/zh/docs/mobile)。 #### 续订与更换 请在租期结束前续订以保留相同地址。某个地址超过 24 小时无法访问时,我们会为剩余租期更换地址。被目标封锁不属于地址故障。 #### 相关内容 - [数据中心代理](https://proxshift.com/zh/datacenter-proxies):按区域划分的价格、流量池政策和 37 个国家/地区。 - [网页抓取](https://proxshift.com/zh/use-cases/web-scraping):何时数据中心代理足够使用,何时需要其他方案。 - [钱包与计费](https://proxshift.com/zh/docs/billing):租期、续订和流量池的收费方式。 ### 移动代理(https://proxshift.com/zh/docs/mobile) 真实运营商网络中的真实 4G/5G 设备。以每 GB $2.62 起的价格轮换使用地址池,或租用一台调制解调器,自行决定何时更换 IP。 #### 两种模式 | | 轮换地址池 | 专用设备 | | --- | --- | --- | | 端点 | `mob.proxshift.com`,9000 / 9001 | 设备自己的 `ip:8000` / `ip:8001` | | IP 行为 | 每个连接使用新的运营商 IP,或通过 `-sid-` 保持固定 | 一个仅供你使用的 IP,由你决定何时更换 | | 定位 | `-cc-`、通过 `-asn-` 选择运营商、`-sid-`、`-ttl-` | 下单时固定国家和运营商 | | 计费 | 按 GB 计费,$2.62 起;所有国家费率相同,流量永不过期 | 按设备和租期计费(24 小时、30、60、90 天),价格因国家而异;流量不限 | | 适用场景 | 面向移动端优先目标的大规模采集 | 必须保持同一手机特征的账号和操作流程 | #### 轮换地址池 [定位与会话](https://proxshift.com/zh/docs/username-parameters)中的所有功能都适用于 `mob.proxshift.com`。用 `-cc-` 选择国家;用 `-asn-` 和各[国家页面](https://proxshift.com/zh/locations)列出的 AS 编号选择运营商;用 `-sid-` 保持 IP。运营商地址由 NAT 后的数千名用户共享,这正是目标网站通常会接受这些地址的原因。 ```bash # 任意美国运营商,每个连接使用新 IP curl -x http://USER-cc-us:PASS@mob.proxshift.com:9000 https://api.ipify.org # 德国电信(AS3320),保持 15 分钟 curl -x http://USER-cc-de-asn-3320-sid-m1-ttl-15m:PASS@mob.proxshift.com:9000 https://api.ipify.org ``` #### 专用设备 专用设备是一台使用不限流量运营商套餐的实体调制解调器,托管在你选择的国家。它和其他专用代理一样,以 `ip:8000` 和 `ip:8001` 及独立凭据的形式交付,并在租期内仅供你使用。流量不计量。由于套餐、硬件和托管成本不同,价格因国家而异;美国和加拿大为参考价格。 #### 轮换设备 IP 你可以控制设备何时从运营商获取新地址。有三种方式,都会返回新 IP: | 方法 | 操作方式 | 适用场景 | | --- | --- | --- | | 轮换链接 | 控制面板中显示的签名 URL;只需简单的 `GET`,无需令牌 | 防关联浏览器、调度程序和只能调用 URL 的工具 | | API 调用 | 携带 Bearer 令牌调用 [`POST /v1/devices/{id}/rotate`](https://proxshift.com/zh/docs/api#post-v1-devices-id-rotate) | 在新会话开始前由你自己的代码调用 | | 定时器 | 设备上的 `rotate_every_minutes`,可在控制面板中设置,或通过 [`PATCH /v1/devices/{id}`](https://proxshift.com/zh/docs/api#patch-v1-devices-id) 设置 | 需要每 N 分钟自动获取新 IP 的无人值守任务 | ```bash # 从你的代码中按需轮换 curl -X POST https://api.proxshift.com/v1/devices/dev_8k2m/rotate \ -H "Authorization: Bearer TOKEN" # 读取当前 IP curl https://api.proxshift.com/v1/devices/dev_8k2m -H "Authorization: Bearer TOKEN" ``` - 轮换需要几秒钟。设备上正在进行的连接会中断;调用返回后再建立新连接。 - 新地址来自同一运营商和国家。运营商会循环使用地址,因此轮换偶尔可能返回设备以前用过的 IP。 - 轮换次数不限且免费。应在平台通常预期地址变化时轮换(如新会话或新的一天),无需每次请求都轮换。 #### 账号使用最佳实践 - 每台设备只使用一个账号,并选择账号所属国家及其受众实际使用的运营商。 - 将浏览器配置文件与设备固定搭配;在不同设备或国家之间迁移账号容易触发验证。 - 有计划地轮换:每次会话使用一个新 IP 符合手机的使用特征,每次操作都更换 IP 则不符合。 - 如果要为多个账号定时发布内容,使用短时固定会话的地址池通常已足够;专用设备应留给最重要的账号。 #### 相关内容 - [移动代理](https://proxshift.com/zh/mobile-proxies):两种定价阶梯以及提供设备的国家。 - [API 参考](https://proxshift.com/zh/docs/api#devices):设备、轮换和用量端点。 - [社交媒体管理](https://proxshift.com/zh/use-cases/social-media-management):在移动和 ISP IP 上使用账号的完整方案。 ### 协议(https://proxshift.com/zh/docs/protocols) 采用标准协议,无需自定义客户端。本页为需要了解网络传输细节的用户准确说明各项行为。 #### 速查表 | 目标 | 客户端中的代理 URL | 端口 | | --- | --- | --- | | `http://` 和 `https://` URL | http://USER:PASS@res.proxshift.com:9000 | 9000 | | 任何基于 TCP 的流量,主机名由出口解析 | socks5h://USER:PASS@res.proxshift.com:9001 | 9001 | | 同上,但主机名由本机解析 | socks5://USER:PASS@res.proxshift.com:9001 | 9001 | | 专用地址,HTTP(S) | http://USER:PASS@203.0.113.42:8000 | 8000 | | 专用地址,SOCKS5 | socks5h://USER:PASS@203.0.113.42:8001 | 8001 | #### HTTP 对于普通的 `http://` 目标,客户端会把带有绝对 URI 和 `Proxy-Authorization` 标头的请求发送到 9000 端口。网关会移除该标头,通过出口转发请求,并以流式方式返回响应。支持采用 keep-alive 的 HTTP/1.1;保持活动的连接会继续使用同一出口(参见[轮换](https://proxshift.com/zh/docs/username-parameters#rotation-and-sessions))。 #### HTTPS 对于 `https://` 目标,客户端发送 `CONNECT host:443`,网关则从出口建立原始隧道。TLS 握手通过该隧道在客户端与目标之间完成:网关不会解密、检查或重新签名任何内容,你所验证的证书就是目标本身的证书。在隧道内协商的 HTTP/2 和 HTTP/3-over-TCP 回退机制与直连时行为相同。 #### SOCKS5 - 支持 RFC 1928,可使用用户名/密码身份验证(RFC 1929),白名单地址也可以免验证。 - 可通过 `CONNECT` 连接除 25 之外的任何 TCP 端口。不支持 `BIND` 和 `UDP ASSOCIATE`:不支持 UDP,也不支持入站连接。 - 发送主机名(地址类型 0x03),让出口负责解析;在 curl、Python 和 Node 中,`socks5h://` 表示的正是这种方式。如果客户端在本地解析并发送 IP,请求仍能工作,但 DNS 查询发生在你的设备上。 - 非 HTTP 的 TCP 协议以及仅支持 SOCKS 的客户端应选择 SOCKS5;对于 Web 流量,HTTP 端口的效果相同。 #### 标头 网关会移除 `Proxy-Authorization` 和 `Proxy-Connection`,且不会添加任何内容:没有 `Via`、`X-Forwarded-For` 或 `X-Real-IP`。目标收到的是出口设备原样发出的请求,这正是该网络的用途。请自行设置 `User-Agent`、`Accept-Language` 及其他标头,使其与出口所在国家一致。 #### 不支持的功能 - 任何形式的 UDP(配置代理后,所有浏览器中的 QUIC 都会回退到 TCP)。 - IPv6 目标:出口使用 IPv4。 - 直接与代理端口建立 TLS(即将 `https://` 用作**代理**协议)。到网关这一段不加密;参见[端点](https://proxshift.com/zh/docs/endpoints#https-targets)。 - FTP、使用 25 端口的 SMTP,以及需要代理反向连接到你的协议。 ### 代码示例(https://proxshift.com/zh/docs/examples) 每段代码都通过美国住宅出口请求 `https://api.ipify.org` 并输出 IP。只需替换用户名参数和目标地址,其余内容无需更改。 #### 命令行 **cURL** ```curl # HTTP(S) 代理 curl -x http://USER-cc-us:PASS@res.proxshift.com:9000 https://api.ipify.org # 使用远程 DNS 的 SOCKS5 curl --proxy socks5h://USER-cc-us:PASS@res.proxshift.com:9001 https://api.ipify.org # 固定会话 30 分钟,并输出详细信息以查看 CONNECT curl -v -x http://USER-cc-us-sid-a1b2c3-ttl-30m:PASS@res.proxshift.com:9000 https://api.ipify.org ``` **wget** ```wget https_proxy=http://USER-cc-us:PASS@res.proxshift.com:9000 \ http_proxy=http://USER-cc-us:PASS@res.proxshift.com:9000 \ wget -qO- https://api.ipify.org ``` **环境变量** ```env # 大多数命令行工具和许多库都会读取这些变量 export HTTP_PROXY=http://USER-cc-us:PASS@res.proxshift.com:9000 export HTTPS_PROXY=http://USER-cc-us:PASS@res.proxshift.com:9000 export NO_PROXY=localhost,127.0.0.1 curl https://api.ipify.org ``` #### Python **requests** ```requests import requests proxy = "http://USER-cc-us:PASS@res.proxshift.com:9000" session = requests.Session() session.proxies = {"http": proxy, "https": proxy} r = session.get("https://api.ipify.org", timeout=30) print(r.text) # 固定会话:按会话 ID 构建用户名 def proxy_for(sid: str, cc: str = "us", ttl: str = "10m") -> str: return f"http://USER-cc-{cc}-sid-{sid}-ttl-{ttl}:PASS@res.proxshift.com:9000" ``` **httpx** ```httpx import httpx proxy = "http://USER-cc-us:PASS@res.proxshift.com:9000" with httpx.Client(proxy=proxy, timeout=30) as client: print(client.get("https://api.ipify.org").text) # 异步 # async with httpx.AsyncClient(proxy=proxy) as client: ... ``` **aiohttp** ```aiohttp import asyncio import aiohttp async def main(): auth = aiohttp.BasicAuth("USER-cc-us", "PASS") async with aiohttp.ClientSession() as session: async with session.get("https://api.ipify.org", proxy="http://res.proxshift.com:9000", proxy_auth=auth, timeout=30) as r: print(await r.text()) asyncio.run(main()) ``` **Scrapy** ```scrapy import scrapy class IpSpider(scrapy.Spider): name = "ip" def start_requests(self): # HttpProxyMiddleware(默认启用)从 URL 读取凭据 yield scrapy.Request( "https://api.ipify.org", meta={"proxy": "http://USER-cc-us:PASS@res.proxshift.com:9000"}, ) def parse(self, response): yield {"ip": response.text} ``` #### Node.js **undici / fetch** ```undici import { fetch, ProxyAgent } from "undici"; const dispatcher = new ProxyAgent("http://USER-cc-us:PASS@res.proxshift.com:9000"); const res = await fetch("https://api.ipify.org", { dispatcher }); console.log(await res.text()); ``` **axios** ```axios import axios from "axios"; import { HttpsProxyAgent } from "https-proxy-agent"; const agent = new HttpsProxyAgent("http://USER-cc-us:PASS@res.proxshift.com:9000"); const { data } = await axios.get("https://api.ipify.org", { httpsAgent: agent, proxy: false, // 交由代理处理 }); console.log(data); ``` **Playwright** ```playwright import { chromium } from "playwright"; const browser = await chromium.launch({ proxy: { server: "http://res.proxshift.com:9000", username: "USER-cc-us-sid-a1b2c3-ttl-30m", password: "PASS", }, }); const page = await browser.newPage(); await page.goto("https://api.ipify.org"); console.log(await page.textContent("body")); await browser.close(); ``` **Puppeteer** ```puppeteer import puppeteer from "puppeteer"; const browser = await puppeteer.launch({ args: ["--proxy-server=res.proxshift.com:9000"], }); const page = await browser.newPage(); await page.authenticate({ username: "USER-cc-us-sid-a1b2c3", password: "PASS" }); await page.goto("https://api.ipify.org"); console.log(await page.evaluate(() => document.body.innerText)); await browser.close(); ``` #### PHP **cURL** ```curl $ch = curl_init("https://api.ipify.org"); curl_setopt_array($ch, [ CURLOPT_PROXY => "http://res.proxshift.com:9000", CURLOPT_PROXYUSERPWD => "USER-cc-us:PASS", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, ]); echo curl_exec($ch); ``` **Guzzle** ```guzzle $client = new \GuzzleHttp\Client(); $response = $client->get('https://api.ipify.org', [ 'proxy' => 'http://USER-cc-us:PASS@res.proxshift.com:9000', 'timeout' => 30, ]); echo $response->getBody(); ``` #### Go、Java 和 C# **Go** ```go package main import ( "fmt" "io" "net/http" "net/url" ) func main() { proxyURL, _ := url.Parse("http://USER-cc-us:PASS@res.proxshift.com:9000") client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}} resp, err := client.Get("https://api.ipify.org") if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) } ``` **Java (OkHttp)** ```java import okhttp3.*; import java.net.InetSocketAddress; import java.net.Proxy; Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("res.proxshift.com", 9000)); OkHttpClient client = new OkHttpClient.Builder() .proxy(proxy) .proxyAuthenticator((route, response) -> response.request().newBuilder() .header("Proxy-Authorization", Credentials.basic("USER-cc-us", "PASS")) .build()) .build(); try (Response res = client.newCall(new Request.Builder().url("https://api.ipify.org").build()).execute()) { System.out.println(res.body().string()); } // 自 Java 8u111 起,java.net.http.HttpClient 默认禁用 CONNECT 的 Basic 身份验证。 // 使用 -Djdk.http.auth.tunneling.disabledSchemes= 启动 JVM 即可启用。 ``` **C#** ```csharp using System.Net; var handler = new HttpClientHandler { Proxy = new WebProxy("http://res.proxshift.com:9000") { Credentials = new NetworkCredential("USER-cc-us", "PASS") }, UseProxy = true, }; using var http = new HttpClient(handler); Console.WriteLine(await http.GetStringAsync("https://api.ipify.org")); ``` #### 浏览器和防关联工具 - Chrome 的 `--proxy-server` 参数不接受凭据。请使用 Playwright 或 Puppeteer(它们会替你响应身份验证质询),或将该设备加入[白名单](https://proxshift.com/zh/docs/authentication#ip-whitelist),然后单独使用此参数。 - Selenium 同样没有内置代理身份验证;使用白名单最为可靠。 - 防关联浏览器(如 Multilogin、GoLogin、AdsPower、Dolphin)支持为每个配置文件输入一行 `host:port:user:pass`。粘贴专用地址行,或使用网关并为每个配置文件设置唯一的 `-sid-`。 - 手动配置时,Firefox 和 Chrome 会在每次会话中询问一次代理密码;自动化流程不应依赖此提示框。 > Tip:无论使用哪种客户端,都应先通过 `https://api.ipify.org` 测试,并与直连请求比较。如果两者输出相同的 IP,说明代理未被使用:请检查环境变量、`NO_PROXY`,以及所用库要求的是 `proxy` 还是 `proxies`。 ### 错误与故障排除(https://proxshift.com/zh/docs/errors) 网关错误的响应正文中会包含简短原因。目标网站的错误则会原样传递。区分二者就解决了大部分故障排查问题。 #### 网关响应 | 状态 | 响应正文中的原因 | 原因 | 解决方法 | | --- | --- | --- | --- | | 407 Proxy Authentication Required | invalid_credentials | 用户名或密码错误;或者连接 IP 不在白名单中,且未发送凭据 | 重新从控制面板复制用户名和密码;在不使用代理的情况下运行 `curl https://api.ipify.org`,并用结果核对白名单 | | 400 Bad Request | invalid_parameter: … | 用户名参数未知、格式错误或参数组合无效(在美国以外使用 `-state-`,或使用 `-city-` 而未使用 `-cc-`) | 修正响应正文中指出的字符串;请参阅[定位与会话](https://proxshift.com/zh/docs/username-parameters) | | 402 Payment Required | insufficient_balance | 所用流量池网络已无剩余流量,或子用户已达到限额 | 购买流量或提高子用户限额;查看 [`GET /v1/balance`](https://proxshift.com/zh/docs/api#get-v1-balance) | | 403 Forbidden | blocked_destination | 不允许访问该目标或端口(端口 25,或目标位于我们的拒绝列表中),或者账户已被暂停 | 阅读响应中的原因;如果你认为某个目标被误列,请联系我们 | | 502 Bad Gateway | no_exit_available / exit_failed | 没有符合参数的设备在线,或者选定设备在请求过程中掉线 | 重试一次(轮换机制会自动选择另一个出口);如果问题反复出现,请放宽定位条件 | | 504 Gateway Timeout | target_timeout | 目标网站未在时限内通过出口作出响应 | 使用新 IP 重试;如果目标网站本身响应缓慢,请延长客户端超时时间 | > Info:网关绝不会返回 `429`。我们不会对你实施请求速率限制;`429` 一定来自目标网站,表示你应降低对该域名的请求频率,或将请求分散到更多会话中。 #### 网关错误还是目标网站错误? 网关错误会在收到目标网站的任何字节之前出现:对于 HTTPS 请求,它是对 `CONNECT` 的响应,大多数客户端会将其显示为连接或代理错误,而不是 HTTP 响应。目标网站错误则从隧道内传来,带有目标网站自己的响应头和正文。`curl -v` 能立即显示二者的区别:查看 `CONNECT` 之后紧接着哪一个响应。 #### 诊断检查清单 1. 运行最简单的请求,不带任何参数:`curl -x http://USER:PASS@res.proxshift.com:9000 https://api.ipify.org`。如果成功,则问题出在某个参数或你的客户端中。 2. 检查代理协议:代理 URL 以 `http://` 开头(在 9001 端口则为 `socks5h://`),即使目标使用 HTTPS,也绝不能写成 `https://`。 3. 每次加回一个参数。`400` 会指出错误参数;定位组合过窄时出现 `502`,表示该位置目前没有设备在线。 4. 白名单用户:在同一台机器上**不使用**代理运行 `curl https://api.ipify.org`,将输出结果与**设置 → 白名单**中的地址比较。云实例经常通过 NAT 网关出站,因而使用不同的地址。 5. 检查实际所用网络的余额:住宅代理和移动代理的流量余额彼此独立。 6. 查找可能会覆盖代码传入值的环境变量(`HTTP_PROXY`、`HTTPS_PROXY`、`ALL_PROXY`、`NO_PROXY`)。 7. 如果 TLS 证书验证失败,说明您和网关之间的某个环节正在拦截 TLS(企业代理、防病毒软件)。网关绝不会接触证书。 #### 症状及其常见原因 | 您看到的现象 | 通常表示 | 解决方法 | | --- | --- | --- | | `curl: (56) Received HTTP code 407 from proxy after CONNECT` | 凭据被拒绝 | 重新复制凭据;如果密码由您自行设置,请对特殊字符进行百分号编码 | | 每次请求都使用同一个 IP | 客户端重复使用同一条 keep-alive 连接,或用户名中仍有 `-sid-` | 在每次请求之间关闭连接,或移除会话 ID | | 虽然设置了 `-sid-`,但每次请求的 IP 都不同 | 会话生存期短于请求间隔,或每次请求的 ID 都发生变化(例如模板中的随机值) | 固定 ID,并提高 `-ttl-` | | 下载途中出现 `Connection reset by peer` | 家庭设备已离线 | 重试;使用轮换时系统已改用另一个出口;使用粘性会话时,下一次请求将获得新 IP | | 在 curl 中正常,在浏览器中失败 | 浏览器没有代理密码,或相应标志忽略凭据 | 使用 Playwright 或 Puppeteer 身份验证,或使用[白名单](https://proxshift.com/zh/docs/authentication#ip-whitelist) | | 目标网站返回 403 或 CAPTCHA | 目标网站对访问行为进行评分,问题不在代理本身 | 改用住宅或移动代理;多步骤流程使用粘性会话;使请求头与出口国家/地区相符;按域名控制请求频率 | | 所有操作都很慢 | 出口距离过远,或家庭设备的网络线路较差 | 选择离目标网站最近的国家/地区;缩短会话,使下一会话有机会使用更好的线路;或者使用数据中心或 ISP 代理以获得更快速度 | | `SSL certificate problem` | 您这一端存在 TLS 拦截 | 移除拦截,或信任其根证书;网关与此无关 | #### 仍未解决? 请将完整请求(移除凭据)、UTC 时间戳、收到的状态和响应正文,以及请求成功通过时的出口 IP 发给我们。[联系页面](https://proxshift.com/zh/contact)说明了联系团队的方法;账户持有人可从控制面板提交工单。 ### 钱包与计费(https://proxshift.com/zh/docs/billing) 最低充值金额为 $20,可用余额购买流量或租用地址。余额和流量永不过期,未经您操作也不会自动续费。 #### 为钱包充值 1. 选择一种币:BTC, ETH, USDT, USDC, LTC, XMR, SOL, TRX, DOGE。控制面板会显示一个地址,以及你所输入充值金额对应的确切币量。 2. 请发送该确切数量。少付时按实际收到的价值入账;多付时将全额入账。 3. 交易达到其网络要求的确认深度后,余额将以 USD 入账,通常只需几分钟。每笔充值都会列出其交易哈希。 - **最低充值金额**: $20 - **充值奖励**: 满 $100 赠送 10%,满 $250 赠送 25%,满 $500 赠送 40%,满 $1,000 赠送 50%。与充值款一同入账,并在账本中单独列出;使用方式与余额相同,但不可提现。 - **余额币种**: USD;按检测到交易时的汇率换算 - **有效期**: 余额及使用余额购买的流量均永不过期 - **退款**: 请参阅[退款政策](https://proxshift.com/zh/legal/refunds) #### 住宅和移动代理流量 流量使用钱包余额按 GB 购买。每 GB 价格由购买量决定,并适用于该笔订单中的每一个 GB,因此一次购买一个月所需的流量,会比以多次小额购买方式获得相同流量更便宜。住宅和移动代理使用各自独立的余额与价格阶梯,二者均永不过期。 | 最低购买量 | 住宅代理每 GB | 该阶梯购买量的总价 | | --- | --- | --- | | 1 GB | $2.45 | $2.45 | | 2 GB | $2.35 | $4.70 | | 5 GB | $2.10 | $10.50 | | 10 GB | $1.93 | $19.30 | | 25 GB | $1.82 | $45.50 | | 50 GB | $1.75 | $87.50 | | 100 GB | $1.54 | $154 | | 250 GB | $1.40 | $350 | | 500 GB | $1.19 | $595 | | 1,000 GB | $1.02 | $1,020 | | 5,000 GB | $0.98 | $4,900 | | 10,000 GB | $0.95 | $9,500 | 移动代理的价格阶梯及各网络的当前价格均列于[价格页面](https://proxshift.com/zh/pricing);每个产品页面也会显示相应的价格阶梯和报价工具。 #### 专用产品 - ISP 代理、数据中心代理和移动设备按每个地址、每个期限计费,下单时从钱包扣款。期限为 24 小时(ISP 和移动设备)、30 天、60 天和 90 天;期限越长,每月费用越低。 - 价格取决于每个地址所在的位置区域;确认前,报价工具和订单表单会显示确切总价。 - 批量折扣自动应用于整笔订单(ISP:10 个 IP 起可享 5% 折扣、50 个起 10% 折扣、100 个起 20% 折扣、500 个起 25% 折扣)。 - 在期限结束前续订即可保留相同地址,也可以为该订单开启自动续订:此功能默认关闭,只会使用你的钱包余额,每次续订都会发送电子邮件,且可随时关闭。未续订的订单会直接结束并释放其 IP。 - 数据中心代理订单中,每个 IP 每月包含 100 GB 的共享流量池,并在每月的订单日期重置。你可以随时为订单增加流量;请参阅[数据中心代理](https://proxshift.com/zh/docs/datacenter#the-traffic-pool)。 #### 子用户限额 [子用户](https://proxshift.com/zh/docs/authentication#sub-users)从账户的流量余额中使用流量,但不能超过自己的限额。限额只是上限,并非购买量:你无需转移资金,即可限制某个客户或项目的用量。 #### 记录 控制面板会列出每笔充值及其交易哈希、每笔购买及其价格阶梯或期限,以及按天、网络和子用户统计的用量。你也可以通过 [`GET /v1/usage`](https://proxshift.com/zh/docs/api#get-v1-usage) 和 [`GET /v1/orders`](https://proxshift.com/zh/docs/api#get-v1-orders) 获取相同数据。 ### API 参考(https://proxshift.com/zh/docs/api) 控制面板的所有功能均可通过 HTTPS 上的 JSON 接口完成。基础 URL 为 `https://api.proxshift.com/v1`,采用 Bearer 身份验证和游标分页。 > Info:本页所述的接口约定为最终版本。同一约定还以 [OpenAPI 3.1 文档](https://proxshift.com/zh/docs/openapi.json) 发布;该文档由本页生成,可用于客户端生成器和智能体工具。 #### 约定 - **基础 URL**: `https://api.proxshift.com/v1` - **身份验证**: `Authorization: Bearer TOKEN`。令牌可在控制面板的 **API 令牌**下创建,每个令牌均可单独撤销。`GET /v1/pricing` 无需令牌。 - **格式**: 请求和响应均使用 JSON、`Content-Type: application/json` 和 UTF-8。时间戳采用 UTC 时区的 ISO 8601 格式。金额为以 USD 计价的十进制字符串;除非字段名标有 `_gb`,否则流量均以字节为单位。 - **分页**: 列表端点接受 `limit`(默认 50,最大 200)和 `cursor`,并返回 `next_cursor`(最后一页为 null)。 - **幂等性**: 调用 `POST /orders` 和 `POST /orders/{id}/renew` 时请发送 `Idempotency-Key` 请求头;24 小时内重复使用同一键将返回原始结果,不会重复扣款。 - **速率限制**: 每个令牌每分钟可发送 120 个请求。每个响应都包含 `X-RateLimit-Remaining`;超出限制时返回 `429` 和 `Retry-After`。 #### 错误 错误使用标准状态码和统一的 JSON 结构。`code` 保持稳定,供程序处理;`message` 面向用户,内容可能会变更。 ```json { "error": { "code": "insufficient_balance", "message": "This order costs 28.22 USD; the wallet holds 12.40 USD." } } ``` | 状态码 | 错误代码 | 含义 | | --- | --- | --- | | 400 | invalid_request, invalid_parameter | JSON 格式错误,或字段值超出允许范围;`message` 会指出相应字段 | | 401 | invalid_token | Bearer 令牌缺失、已撤销或格式错误 | | 402 | insufficient_balance | 钱包余额不足以支付本次购买 | | 404 | not_found | ID 未知,或对象属于其他账户 | | 409 | conflict | 当前状态不允许执行此操作,例如续订已经结束的订单 | | 429 | rate_limited | 请求过多;请等待 `Retry-After` 指定的秒数 | | 5xx | internal_error | 请采用退避策略重试;如果响应中未返回 `order` 对象,则没有扣款 | #### 账户与余额 ##### GET /v1/account 令牌所属的账户。 请求: ```bash curl https://api.proxshift.com/v1/account -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "id": "acc_3f9k2m", "created_at": "2026-09-21T08:14:02Z", "whitelist_count": 2, "subuser_count": 3 } ``` ##### GET /v1/balance 钱包余额,以及各流量池网络的流量余额(以字节和 GB 表示)。 请求: ```bash curl https://api.proxshift.com/v1/balance -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "wallet_usd": "142.60", "traffic": { "residential": { "bytes": 96636764160, "gb": 90.0 }, "mobile": { "bytes": 2147483648, "gb": 2.0 } } } ``` ##### GET /v1/usage 按天统计消耗的流量,可按网络、订单或子用户筛选。流量池网络报告计费字节数;独享订单报告传输字节数。 | 字段 | 位置 | 描述 | | --- | --- | --- | | from, to | query | 日期格式为 `YYYY-MM-DD`,包含起止日期,采用 UTC。默认:最近 30 天 | | network | query | `residential`、`mobile`、`isp`、`datacenter`(可选) | | order_id | query | 仅限一个独享订单(可选) | | subuser_id | query | 仅限一个子用户(可选) | 请求: ```bash curl "https://api.proxshift.com/v1/usage?from=2026-09-01&to=2026-09-21&network=residential" \ -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "network": "residential", "days": [ { "date": "2026-09-20", "bytes": 5368709120, "requests": 184220 }, { "date": "2026-09-21", "bytes": 1073741824, "requests": 40118 } ], "total_bytes": 6442450944 } ``` #### 凭据、子用户与白名单 ##### GET /v1/credentials 账户用于共享网关的用户名和密码。 请求: ```bash curl https://api.proxshift.com/v1/credentials -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "username": "u7f3a9c", "password": "kq2Lm8Pz1r", "hosts": { "residential": "res.proxshift.com", "mobile": "mob.proxshift.com" }, "ports": { "http": 9000, "socks5": 9001 } } ``` ##### POST /v1/credentials/rotate 生成新密码。旧密码仍可继续使用十分钟。 请求: ```bash curl -X POST https://api.proxshift.com/v1/credentials/rotate -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "username": "u7f3a9c", "password": "Xr4Nv7Qw2t", "previous_valid_until": "2026-09-21T09:24:00Z" } ``` ##### POST /v1/subusers 创建子用户:一组额外的凭据,并拥有独立的流量上限。`GET /v1/subusers` 可列出子用户;`PATCH /v1/subusers/{id}` 可更改上限或将其禁用;`DELETE` 可将其删除。 | 字段 | 位置 | 描述 | | --- | --- | --- | | label | body | 自由文本,将显示在用量报告中 | | limit_gb | body | 所有流量池网络合计的流量上限(以 GB 为单位);设为 `null` 表示不设上限 | | networks | body | 允许使用的流量池网络数组,默认为 `["residential","mobile"]` | 请求: ```bash curl -X POST https://api.proxshift.com/v1/subusers \ -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \ -d '{"label":"client-acme","limit_gb":50}' ``` 响应: ```json { "id": "sub_9d2x", "label": "client-acme", "username": "u7f3a9c-acme", "password": "Pm3Kz8Rt5v", "limit_gb": 50, "used_gb": 0, "networks": ["residential", "mobile"], "enabled": true } ``` ##### GET /v1/whitelist 无需凭据即可连接的地址。 请求: ```bash curl https://api.proxshift.com/v1/whitelist -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "items": [ { "ip": "198.51.100.23", "label": "worker-1", "added_at": "2026-09-19T10:02:11Z" } ] } ``` ##### POST /v1/whitelist 添加 IPv4 地址(每个账户最多 50 个)。`DELETE /v1/whitelist/{ip}` 可删除一个地址。更改将在一分钟内生效。 | 字段 | 位置 | 描述 | | --- | --- | --- | | ip | body | 公网 IPv4 地址 | | label | body | 可选的自由文本 | 请求: ```bash curl -X POST https://api.proxshift.com/v1/whitelist \ -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \ -d '{"ip":"198.51.100.23","label":"worker-1"}' ``` 响应: ```json { "ip": "198.51.100.23", "label": "worker-1", "added_at": "2026-09-21T09:15:40Z" } ``` #### 定价 ##### GET /v1/pricing(公开,无需令牌) 已公布的价目表:按 GB 计价的阶梯价格、独享代理租期、位置分区和批量折扣。数据与网站一致,无需令牌。 请求: ```bash curl https://api.proxshift.com/v1/pricing ``` 响应: ```json { "currency": "USD", "residential": { "unit": "GB", "tiers": [ { "min_gb": 1, "price": "2.45" }, { "min_gb": 100, "price": "1.54" } ] }, "isp": { "terms": [ { "days": 30, "per_month": "1.12" }, { "days": 90, "per_month": "0.99" } ], "zones": { "a": { "label": "United States", "mult": 1.0, "codes": ["US"] } }, "volume_discounts": [ { "min_ips": 10, "pct": 5 } ] } } ``` #### 订单与代理列表 ##### POST /v1/orders 购买流量池网络的流量,或租用独享地址或设备。购买成功后将从钱包扣款;请发送 `Idempotency-Key`。 | 字段 | 位置 | 描述 | | --- | --- | --- | | network | body | `residential`, `mobile`, `isp`, `datacenter`, `mobile_device` | | gb | body | 流量池网络:要购买的 GB 数(价格阶梯根据该数量确定) | | country | body | 独享代理:地址的 ISO 国家/地区代码 | | city | body | 独享代理:提供服务时可指定城市值(可选) | | carrier_asn | body | 移动设备:首选运营商的 AS 编号(可选) | | quantity | body | 独享代理:地址或设备数量 | | term_days | body | 独享代理:`1`、`30`、`60` 或 `90`(`1` 仅适用于 ISP 和移动设备) | 请求: ```bash curl -X POST https://api.proxshift.com/v1/orders \ -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \ -H "Idempotency-Key: 5d1c7e2a-order-de-isp" \ -d '{"network":"isp","country":"DE","quantity":10,"term_days":90}' ``` 响应: ```json { "id": "ord_7hq4", "network": "isp", "country": "DE", "quantity": 10, "term_days": 90, "starts_at": "2026-09-21T09:20:00Z", "ends_at": "2026-12-20T09:20:00Z", "total_usd": "33.86", "status": "provisioning" } ``` ##### GET /v1/orders 所有订单,最新的排在最前。`GET /v1/orders/{id}` 返回一个订单;配置完成后也会包含其地址。 | 字段 | 位置 | 描述 | | --- | --- | --- | | status | query | `provisioning`、`active`、`ended`(可选) | | network | query | 按网络筛选(可选) | 请求: ```bash curl "https://api.proxshift.com/v1/orders?status=active" -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "items": [ { "id": "ord_7hq4", "network": "isp", "country": "DE", "quantity": 10, "status": "active", "ends_at": "2026-12-20T09:20:00Z" } ], "next_cursor": null } ``` ##### POST /v1/orders/{id}/renew 将独享订单延长一个租期,并保留相同地址。订单处于有效状态时可执行此操作。 | 字段 | 位置 | 描述 | | --- | --- | --- | | term_days | body | `30`、`60` 或 `90`;默认:订单当前租期 | 请求: ```bash curl -X POST https://api.proxshift.com/v1/orders/ord_7hq4/renew \ -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \ -H "Idempotency-Key: renew-ord_7hq4-2026-12" -d '{"term_days":90}' ``` 响应: ```json { "id": "ord_7hq4", "ends_at": "2027-03-20T09:20:00Z", "total_usd": "33.86", "status": "active" } ``` ##### GET /v1/proxies 你在各订单中的独享地址。`format=txt` 返回纯文本 `ip:port:user:pass` 行,每个地址一行,可直接用于任何工具。 | 字段 | 位置 | 描述 | | --- | --- | --- | | network | query | `isp`、`datacenter`、`mobile_device`(可选) | | order_id | query | 仅限一个订单(可选) | | format | query | `json`(默认)或 `txt` | 请求: ```bash curl "https://api.proxshift.com/v1/proxies?network=isp&format=txt" -H "Authorization: Bearer TOKEN" ``` 响应: ```json 203.0.113.42:8000:u7f3a9c:kq2Lm8Pz1r 203.0.113.57:8000:u7f3a9c:kq2Lm8Pz1r ``` #### 设备 ##### GET /v1/devices 你的独享移动设备及其当前 IP、运营商和轮换设置。`GET /v1/devices/{id}` 返回一台设备。 请求: ```bash curl https://api.proxshift.com/v1/devices -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "items": [ { "id": "dev_8k2m", "order_id": "ord_2ps9", "country": "US", "carrier": "T-Mobile", "endpoint": { "ip": "198.51.100.9", "http": 8000, "socks5": 8001 }, "current_ip": "172.58.19.204", "rotate_every_minutes": null, "last_rotated_at": "2026-09-21T08:50:12Z", "ends_at": "2026-11-20T09:20:00Z" } ], "next_cursor": null } ``` ##### POST /v1/devices/{id}/rotate 立即向运营商申请新 IP。设备使用新地址恢复在线后返回响应;正在进行的连接会中断。控制面板中的轮换链接调用同一操作,但使用签名密钥而非令牌。 请求: ```bash curl -X POST https://api.proxshift.com/v1/devices/dev_8k2m/rotate -H "Authorization: Bearer TOKEN" ``` 响应: ```json { "id": "dev_8k2m", "current_ip": "172.58.22.77", "rotated_at": "2026-09-21T09:31:05Z" } ``` ##### PATCH /v1/devices/{id} 更改轮换计时器。设为 `null` 可将其禁用。 | 字段 | 位置 | 描述 | | --- | --- | --- | | rotate_every_minutes | body | 2 到 1440 之间的整数,或 `null` | 请求: ```bash curl -X PATCH https://api.proxshift.com/v1/devices/dev_8k2m \ -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \ -d '{"rotate_every_minutes":10}' ``` 响应: ```json { "id": "dev_8k2m", "rotate_every_minutes": 10 } ``` ### 限制与合理使用(https://proxshift.com/zh/docs/limits) 本页特意保持简短。技术限制一张表即可说明,使用规则一个列表即可概括。 #### 技术限制 | 项目 | 限制 | | --- | --- | | 并发连接 | 所有网络均不限量 | | 每秒请求数 | 网关不设限制;请求速度取决于目标网站 | | 并发粘性会话 | 不限量 | | 粘性会话生存期 | 1 分钟至 24 小时,默认为 10 分钟 | | 白名单地址 | 每个账户 50 个,仅限 IPv4 | | 子用户 | 不限量 | | 网关空闲连接 | 无流量 60 秒后关闭 | | 传输时长 | 只要数据持续传输便不设限制 | | 目标端口 | 除 25 外的任何 TCP 端口 | | UDP、IPv6 目标、入站连接 | 不支持 | | API | 每个令牌每分钟 120 个请求 | #### 各网络的流量规则 | 网络 | 流量模式 | | --- | --- | | 住宅代理 | 双向流量均按 GB 计量,预先购买,永不过期 | | 移动代理(轮换) | 按 GB 计量,规则与住宅代理相同,余额独立 | | ISP | 不限流量,不计量 | | 数据中心代理 | 100 GB/每个 IP/月,整笔订单共享;流量池耗尽后降速,但不会断网 | | 移动代理(专用设备) | 不限流量,不计量 | “不限流量”表示不计量:我们不统计字节数,也不会限速。专用地址仅供你一人使用,因此你只会与自己的任务争用容量。 #### 可接受使用规则 本网络可用于收集和验证公开信息、运营你自己的账户和资产,以及测试你有权测试的内容。[可接受使用政策](https://proxshift.com/zh/legal/acceptable-use)是具有约束力的文本;简而言之,以下行为会导致账户终止: - 任何形式的攻击:拒绝服务、暴力破解、凭据填充,以及利用你无权测试的漏洞。 - 欺诈,包括支付欺诈、向第三方出售虚假互动,以及冒充他人。 - 未经授权访问系统、账户或数据。 - 垃圾邮件和未经请求的批量消息(这也是端口 25 被关闭的原因)。 - 在你的运营地或目标网站运营地属于违法的任何行为,以及任何涉及虐待未成年人的内容。 - 在没有合法依据的情况下收集个人数据,或未经同意转售网络访问权限。 我们会调查滥用举报并采取行动;法律要求时,我们会配合有关部门。住宅出口属于自愿加入网络的真实用户,我们优先保护他们。 #### 负责任地使用网络 - 按域名控制请求频率,并在遇到 `429` 时降低速率。我们不设速率限制,并不意味着可以对目标网站进行高频轰炸。 - 如果 `robots.txt` 适用于你的操作,请予以遵守;目标网站的条款对你具有约束力时,也请遵守。 - 优先选择适合的网络:公开来源使用数据中心代理,仅在目标网站需要时使用住宅和移动代理。 ### 文档常见问题 **在哪里可以找到登录凭据?** 账户充值后,可在控制面板的“登录凭据”中查看住宅和移动网关共用的一组用户名和密码。独享 ISP、数据中心和移动设备订单各自提供 `ip:port:user:pass` 格式的连接信息。您也可以通过 `GET /v1/credentials` 和 `GET /v1/proxies` 获取相同数据。 **不同网络需要使用不同的登录凭据吗?** 不需要。共享网关 `res.proxshift.com` 和 `mob.proxshift.com` 使用相同的用户名和密码,只需更改主机名。每个独享地址都有自己的一组凭据,并会显示在代理列表中;IP 白名单则一次设置即可用于所有端点。 **需要安装 SDK 吗?** 不需要。ProxShift 使用标准 HTTP(S) 和 SOCKS5 代理,因此任何支持代理的语言、库、浏览器和工具都能直接使用。代码示例页面涵盖了最常用的客户端。 **移动代理可以使用相同的用户名参数吗?** 可以。`-cc-`、`-asn-`、`-sid-` 和 `-ttl-` 在 `mob.proxshift.com` 上的行为完全相同;`-state-` 和 `-city-` 仅用于住宅代理池。在移动代理池中,可通过 `-asn-` 选择运营商。 **代理池网络如何计量流量?** 通过网关的双向流量均会计费,包括请求、响应、标头和 TLS 记录。连接在到达目标之前失败则不计费。ISP 代理和独享移动设备不限流量;数据中心订单每月提供共享流量额度。 **测试需要多少费用?** 最低充值金额为 $20,余额在实际使用前会一直保留。您可以先购买少量住宅代理流量,或租用一个 ISP 地址或一台移动设备 24 小时,按照快速入门中的示例测试实际目标,再按需扩大规模。 ## 使用场景 ### 网页抓取代理(https://proxshift.com/zh/use-cases/web-scraping) 来自单一地址的爬虫很容易被识别:托管服务网段每分钟发出数百次请求,没有浏览器历史记录,每次访问的指纹都相同。目标网站会以速率限制、验证码、空白页面或静默封禁作为回应。住宅代理池可将这股请求流分散为来自所需国家/地区的数千名普通访客,让你采集到真实用户实际看到的数据。 推荐网络:住宅代理。 - 住宅代理(推荐):每次请求都轮换至不同的真实家庭 IP,可规避速率限制和机器人评分。城市和 ASN 定位能够还原本地用户看到的内容。按 GB 计费,流量永不过期。 - 数据中心代理(适合):对于不识别托管服务网段指纹的目标,数据中心代理的单次请求成本最低,例如公开 API、站点地图、自有网站和防护较弱的商品目录。 - ISP 代理(可用):仅适合需要登录且必须始终使用同一地址的抓取任务;否则你是在为用不到的稳定性付费。 - 移动代理(可用):对大多数采集任务而言性能过剩,但当目标封锁其他所有代理时,它可作为后备选择。 操作方法: - 轮换:轮换模式:省略 -sid-,让每次请求都从新的出口发出。 - 定位:使用 -cc- 指定抓取的市场;当价格或列表因城市而异时,再添加 -city-。 - 并发:网关不限制线程数;请为每个域名设置合理的请求速率,代理池并不意味着可以肆意冲击网站。 - 协议:大多数客户端使用 9000 端口的 HTTP(S);非 HTTP 工具使用 9001 端口的 SOCKS5。 - 重试:遇到 403 或验证码时重试一次;下一次请求已经会使用不同的 IP。 **抓取应该使用住宅代理还是数据中心代理?** 如果目标网站不拦截请求,可先使用数据中心代理,它的单次请求成本最低。一旦遇到验证码、403 或内容降级,就将该目标切换到住宅代理;按 GB 支付的费用换来的是更高的成功率。 **抓取会使用多少流量?** 如果只加载 HTML,每页通常为 100 到 500 KB。按每页 350 KB 计算,50 万个页面约为 170 GB,采用住宅代理阶梯价格时费用约为 $262。无头浏览器如果加载图片,流量可能增至五倍,因此应屏蔽图片。 **允许进行网页抓取吗?** 允许采集公开可用的数据。禁止攻击网站、绕过身份验证,或在没有合法依据的情况下收集个人数据;我们会严格执行可接受使用政策。 **能否按请求轮换,并在需要时保持会话?** 可以,同一个账户即可实现。需要轮换时省略会话参数;必须共用一个 IP 的请求则添加 -sid- 和 -ttl-。 **预期成功率是多少?** 成功率更多取决于目标网站,而非代理池。规范运行的爬虫使用住宅代理出口时,绝大多数请求通常都能成功;其余请求可使用新 IP 重试,除产生的流量外不会增加额外成本。 ### 价格监控代理(https://proxshift.com/zh/use-cases/price-monitoring) 零售商会根据国家/地区、区域甚至城市定价,并向不同访客显示不同的库存和配送规则。从单个数据中心运行的检查器只能看到一个版本,而且往往是受限版本。使用各市场的住宅代理出口,才能看到真实货架:当地顾客支付的价格、可购买的库存,以及向当地顾客展示的促销。 推荐网络:住宅代理。 - 住宅代理(推荐):通过真实家庭 IP 按国家/地区和城市定位,可获取本地价格与库存。轮换出口可避免每日扫描大型商品目录时被发现。 - ISP 代理(适合):如果只需从固定位置频繁检查少数零售商,为每个市场配置一个静态专用 ISP IP,比按 GB 购买流量更便宜。 - 数据中心代理(可用):零售网站最常率先封锁托管服务网段,或向其显示不同价格;数据中心代理应仅用于检查自己的店面。 - 移动代理(可用):仅适合查看应用专享价格或移动端专属促销。 操作方法: - 轮换:扫描商品目录时使用轮换模式;如果需要经过购物车或邮编步骤才能看到价格,则使用粘性会话(-ttl-5m)。 - 定位:每个市场使用对应的 -cc-;配送价格因城市而异时添加 -city-。每个购物篮始终使用同一个出口。 - 调度:将扫描任务分散到一天内执行;在 03:00 从同一国家/地区突然发起大量请求会形成明显特征。 - 货币:本地化页面会返回当地货币;保存每条价格时,同时记录出口所在国家/地区。 **为什么我看到的价格与检查器不同?** 因为你们是不同的访客:所在国家/地区、设备类别和浏览历史都可能不同。使用监控市场内的住宅代理出口,才能看到该市场顾客实际支付的价格。 **价格监控需要多少 GB 流量?** 商品页面的 HTML 通常为 200 到 400 KB。按每次 300 KB、每月 20 万次检查计算,流量约为 60 GB,采用住宅代理阶梯价格时费用约为 $105。 **是否应该改用专用 ISP?** 如果每天需要从固定位置多次检查少数零售商,为每个市场配置一个静态专用 ISP IP 会更便宜、更简单。若要跨多个国家/地区检查大量商品目录,住宅代理更合适。 **可以监控 Amazon 或 Mercado Libre 等电商平台吗?** 可以,但应从各平台所在的国家/地区进行访问。大型电商平台会严格评估访客,因此采用住宅代理轮换,并按域名设置合理的请求速率,才是可靠的配置。 ### SEO 与 SERP 跟踪代理(https://proxshift.com/zh/use-cases/seo-serp-tracking) 搜索引擎会根据位置、历史记录和设备提供个性化结果,并会在几分钟内限制来自同一地址的重复查询。只有当每次查询都来自全新的本地访客时,排名数据才有意义。目标城市的住宅代理出口正好能满足这一要求,无论查询量多大,每次查询都可使用一个独立出口。 推荐网络:住宅代理。 - 住宅代理(推荐):每次查询都使用全新的本地 IP;城市定位适合本地 SEO;轮换可规避针对单个 IP 的查询限制。 - 移动代理(推荐):移动端结果与桌面端不同,而且贡献了大部分流量;运营商 IP 能返回真实的移动端 SERP。 - ISP 代理(适合):适合查询量较低、仅跟踪单一市场且可以接受固定地址的场景。 - 数据中心代理(可用):数据中心代理的托管服务网段只需发起几次查询,就会受到搜索引擎限流和验证。 操作方法: - 轮换:使用轮换模式,每个出口仅发起一次查询;无须保持会话。 - 定位:使用 -cc- 并添加 -city- 获取本地结果包;同时添加搜索引擎自身的位置参数。 - 设备:查询移动端排名时,将移动端用户代理通过 mob.proxshift.com 发送;查询桌面端排名时,则将桌面端用户代理通过 res.proxshift.com 发送。 - 语言:将 Accept-Language 设置为目标市场的语言;仅更改出口不会改变界面语言。 **SEO 需要城市定位吗?** 本地查询需要。例如,里昂和巴黎的“附近水管工”搜索结果并不相同。对于全国性关键词,只需定位到国家/地区。 **每次查询使用多少流量?** 结果页的 HTML 约为 100 到 150 KB。按每次 120 KB、30 万次查询计算,流量约为 35 GB,采用住宅代理阶梯价格时每月费用约为 $64。 **排名跟踪工具可以使用 SOCKS5 吗?** 可以,在 9001 端口使用相同的用户名参数即可。大多数跟踪工具都能直接使用 9000 端口的 HTTP 代理。 **为什么不使用数据中心代理获取 SERP 数据?** 发起少量查询后,搜索引擎就会限制托管服务网段并显示验证码。住宅代理按 GB 计算的成本,低于使用数据中心代理时因重试和数据缺口付出的代价。 ### 广告验证代理(https://proxshift.com/zh/use-cases/ad-verification) 广告网络会按地理位置、设备和连接类型定位受众,而欺诈者会向任何疑似验证工具的访问者展示正常素材。要查看马德里 Movistar 真实用户看到的广告位,你必须以同样的身份访问:使用位于马德里的住宅代理或移动代理出口,并匹配相应的设备配置。 推荐网络:住宅代理。 - 住宅代理(推荐):按国家/地区和城市选择家庭出口,可还原受众在桌面端和移动网页上看到的广告位。 - 移动代理(推荐):应用内广告和运营商定向广告活动需要真实的运营商 IP;专用设备可供你反复检查同一家运营商。 - ISP 代理(可用):专用 ISP 的固定 IP 使用一段时间后容易被识别;仅适合验证你自己的发布商广告资源。 - 数据中心代理(不适用):广告网络会立即识别数据中心代理的托管服务网段,不返回任何内容,或只返回诱饵内容。 操作方法: - 轮换:需要覆盖大量家庭时使用轮换模式;当广告位依赖会话时使用粘性会话。 - 定位:使用 -cc- 和 -city- 匹配广告活动的地理位置;使用 -asn- 检查特定服务商;移动代理可选择运营商。 - 设备:出口须搭配相符的用户代理和视口;移动 IP 配合桌面浏览器是明显的异常信号。 - 证据:每次检查都应保存屏幕截图、最终 URL、重定向链和出口详情。 **广告验证应该使用住宅代理还是移动代理?** 桌面端和移动网页广告位使用住宅代理;应用内广告资源和运营商定向广告活动使用移动代理。许多团队会同时使用两者。 **一次验证加载会使用多少流量?** 包含创意素材的完整页面为 2 到 4 MB。按每次 2.5 MB、2 万次加载计算,流量约为 50 GB,采用住宅代理阶梯价格时费用约为 $87。 **可以指定运营商进行验证吗?** 可以:在移动代理池中选择国家/地区和运营商,或者租用该运营商的专用设备进行重复检查。 **可以使用无头浏览器吗?** 可以。在浏览器中进行代理身份验证,并在页面加载期间保持粘性会话,让 HTML 和广告调用共用同一个出口。 ### 社交媒体管理代理(https://proxshift.com/zh/use-cases/social-media-management) 平台会将账户与位置、设备和连接类型关联,并对变化作出反应:从新的国家/地区或托管服务网段登录,可能触发反复验证、隐性限流或封禁。如果一个账户始终从同一城市、通过住宅代理或移动代理地址出现,平台就会将其视为普通用户。 推荐网络:移动代理。 - 移动代理(推荐):平台以移动端为先,并将运营商 IP 视为最可信的流量;专用设备可让每个账户拥有一个类似真实手机的独立网络足迹。 - ISP 代理(推荐):每个账户配一个静态专用 ISP IP,流量不限,数月保持同一地址:这是管理大量账户时成本最低的稳定方案。 - 住宅代理(适合):最长 24 小时的粘性会话适合定时发布;部分平台可以接受 IP 每日变化,但并非所有平台都可以。 - 数据中心代理(不适用):注册和登录时,数据中心代理的托管服务网段会被标记;请勿用于账户。 操作方法: - 网络:在账户所属国家/地区,为每个账户配置一台专用移动设备或一个专用 ISP IP。 - 一致性:切勿在不同 IP 或国家/地区之间迁移账户;一个账户对应一个地址和一个浏览器配置文件。 - 轮换:在专用设备上,只在平台认为合理的时机(新的一天、新的会话)轮换 IP,不要按请求轮换。 - 隔离:在浏览器或自动化工具中,每个账户使用一个代理;共享出口会让平台将账户关联起来。 **社交媒体管理应该使用移动代理还是专用 ISP?** 如果平台以移动端为先,或账户价值较高,请使用移动代理:平台对运营商 IP 的容忍度最高。如果管理大量账户,并希望每个账户都有便宜的静态地址,请使用专用 ISP。 **多个账户可以共用一个代理吗?** 可以,但平台会发现这种关联。请为每个账户分配自己的专用 IP 或设备。 **专用配置的费用是多少?** 一个美国专用 ISP IP 使用 30 天的价格为 $1.12,购买 90 天时每月为 $0.99。一台美国专用移动设备使用 30 天的价格为 $69,购买 90 天时每月为 $62.10;价格较低的区域起价为 $34.50。 **允许这样使用吗?** 管理自己或客户的账户属于正常用途。禁止创建账户用于发送垃圾信息、欺诈或冒充他人;可接受使用政策同样适用。 ### 电商自动化代理(https://proxshift.com/zh/use-cases/ecommerce-automation) 结账和限量发售页面采用网上最严格的机器人防护,而且首先检查 IP。托管服务网段会被直接拒绝;住宅地址如果在结账途中变化,也无法通过会话检查。有效的方案是在整个流程中始终使用零售商本土市场内受信任的固定地址,并准备足够多的地址以并行运行任务。 推荐网络:ISP 代理。 - ISP 代理(推荐):每个任务使用一个登记为住宅地址的静态专用 ISP IP,从商品页到付款始终保持一致,同时具备数据中心级速度和不限流量。 - 住宅代理(适合):粘性会话可在整个流程中保持同一个家庭出口;适合监控以及防护强度中等的商店。 - 移动代理(适合):运营商 IP 可以通过最严格的结账检查;最重要的账户可使用专用设备。 - 数据中心代理(不适用):大多数零售商会直接拒绝数据中心代理。 操作方法: - 网络:在零售商所在国家/地区配置专用 ISP IP,每个结账任务使用一个;最难应对的目标则使用移动设备。 - 会话:使用住宅代理时,设置 -sid- 和 -ttl-30m,让整个流程共用一个出口。 - 速度:限量发售往往分秒必争,此时专用 ISP 的有线上行链路至关重要;住宅代理的延迟会因家庭网络而异。 - 监控:轮换住宅代理出口以轮询库存和价格,静态 IP 仅用于结账。 **结账应该使用专用 ISP 还是住宅代理?** 任何有防护的结账流程都应使用专用 ISP:稳定、快速,并登记为住宅地址。防护较弱的商店或监控任务可使用住宅代理粘性会话。 **需要多少个 IP?** 每个并行任务使用一个。10 个任务需要 10 个 IP:在美国使用 30 天的价格为 $11.20;购买期限更长或数量更多时价格更低。 **这些 IP 纯净吗?** 在租用期内,专用 ISP IP 和数据中心代理 IP 仅供你使用;加入订单前,系统会检查这些 IP 是否出现在封锁名单中。之后的使用方式将决定它们留下怎样的历史记录。 **允许这样使用吗?** 购买商品、监控库存和经营自己的电商平台业务属于正常用途。禁止欺诈、使用被盗的支付数据和接管账户;我们会严格执行可接受使用政策。 ### 品牌保护代理(https://proxshift.com/zh/use-cases/brand-protection) 造假者和网络钓鱼者会进行内容伪装:向已知的安全扫描器和托管服务网段显示无害页面,却向目标市场的消费者展示真实商品页面。要发现客户看到的内容,就必须从他们所在的位置、使用的网络以及通常浏览的时段进行查看。 推荐网络:住宅代理。 - 住宅代理(推荐):各个市场的家庭出口可绕过地理位置伪装,让你大规模扫描电商平台、社交平台和分类广告网站。 - 移动代理(适合):针对移动端用户的骗局(短信钓鱼、应用商店仿冒应用)只会向运营商流量显露真实内容。 - ISP 代理(可用):适合从一个固定位置监控一组已知的侵权域名。 - 数据中心代理(不适用):采用伪装的网站会向数据中心代理的托管服务网段展示诱饵内容,因此无法用于检测。 操作方法: - 轮换:扫描多个电商平台时使用轮换模式;逐页检查卖家商品时使用粘性会话。 - 定位:为每个销售市场设置 -cc-;当本地分类广告十分重要时,再添加 -city-。 - 证据:同时保存屏幕截图、HTML、响应头和出口详情;申请下架时需要证明向哪些人展示了什么内容。 - 频率:对于高价值商标,每天进行扫描;侵权商品本就会在短时间内下架或转移。 **为什么从办公室查看时,侵权页面看起来没有问题?** 这是内容伪装:页面会检查你的 IP,并向托管服务网段和安全服务商显示无害版本。使用目标市场内的家庭出口,才能看到真实页面。 **检测网络钓鱼应该使用哪种网络?** 扫描网站和电商平台时使用住宅代理;检测短信诱导的骗局和仿冒应用时使用移动代理,因为这些内容往往只向运营商流量显示。 **一次扫描会使用多少流量?** 商品页面的 HTML 通常为 300 到 500 KB。按每条 400 KB、10 万条商品计算,流量约为 40 GB,采用住宅代理阶梯价格时每月费用约为 $70。 **这些证据可以用于申请下架吗?** 你拥有自己采集的内容。请将原始页面与出口元数据一并保存;大多数平台和域名注册商都会接受这些材料,作为当时实际展示内容的证据。 ### 旅行价格聚合代理(https://proxshift.com/zh/use-cases/travel-fare-aggregation) 航空公司和在线旅行社(OTA)会按销售点定价,其预订引擎的防护强度几乎超过所有其他行业:托管服务网段会被封锁,来自同一地址的重复搜索会受到限流,部分航空公司还会向不受信任的流量报出更高价格。要准确聚合价格,每次搜索都需要模拟一位全新的本地访客。 推荐网络:住宅代理。 - 住宅代理(推荐):按销售点所在国家/地区轮换家庭出口,可返回当地价格,并在大规模搜索时通过预订引擎的防护。 - 移动代理(适合):部分价格仅在应用内提供,另有移动端专属促销;运营商出口可以显示这些内容。 - ISP 代理(可用):每个市场使用少量静态专用 ISP IP,适合低频监控特定路线。 - 数据中心代理(不适用):大多数预订引擎会封锁数据中心代理,或向其显示虚高价格。 操作方法: - 轮换:使用轮换模式:一次搜索使用一个出口;只有从搜索结果进入票价规则页面时,才保持会话(-ttl-10m)。 - 定位:-cc- 应与销售点一致;保存每条价格时一并记录,货币也会随之变化。 - 请求频率:预订引擎的页面负载很大;请按路线控制请求频率并缓存静态内容,因为费用按 GB 计算。 - 请求头:Accept-Language 和货币参数应与出口所在国家/地区匹配。 **为什么聚合到的价格与我自己搜索的不同?** 销售点、货币和信任等级都会改变报价。使用目标国家/地区的住宅代理出口,可以获得向当地用户提供的价格。 **旅行价格聚合会使用多少流量?** 结果页负载很大,通常为 0.5 到 2 MB。按每次 900 KB、15 万次搜索计算,流量约为 135 GB,采用住宅代理阶梯价格时费用约为 $208;直接请求价格端点可将流量减少一半。 **多步骤搜索可以使用粘性会话吗?** 可以:添加 -sid- 和 -ttl-10m,让搜索结果、票价规则和座位图都来自同一个家庭出口。 **允许聚合旅行价格吗?** 采集公开展示的价格是一种常见且合法的用途。禁止自动预订、囤占库存或绕过访问控制。 ### 应用与 QA 测试代理(https://proxshift.com/zh/use-cases/app-testing) 应用通过雅加达的 4G 网络访问时,其表现会与办公室光纤网络下不同:CDN 边缘节点、支付方式、内容规则和延迟都会变化。数据中心内的模拟器和 VPN 端点无法还原这些差异。各市场的真实住宅代理和移动代理出口可以做到这一点,并且能够在 CI 流水线中稳定复现。 推荐网络:住宅代理。 - 住宅代理(推荐):按国家/地区和城市选择家庭出口,可还原真实用户遇到的地理限制、内容和 CDN 路由。 - 移动代理(推荐):运营商 IP 可用于测试移动端专属流程、运营商计费、应用商店可用性和应用内广告位。 - 数据中心代理(适合):数据中心代理提供固定出口 IP,可加入预发布环境的允许名单,并用于大规模生成负载。 - ISP 代理(可用):适合测试账户必须在长时间回归测试中始终使用同一地址的情况。 操作方法: - 轮换:每次测试运行使用粘性会话(-ttl-1h),让整个场景保持同一个出口;两次运行之间再进行轮换。 - 定位:为每个待测市场设置 -cc- 和 -city-;移动端专项检查还需选择运营商。 - 允许名单:对于仅接受已知地址的预发布环境,使用数据中心代理 IP。 - 断言:对因位置而变化的内容设置断言:货币、支付方式、法律文本、CDN 边缘节点和媒体可用性。 **QA 应该使用住宅代理还是数据中心代理?** 使用住宅代理和移动代理查看用户实际看到的内容;使用数据中心代理获得固定且可加入允许名单的出口,并生成负载。大多数流水线会同时使用这两类网络。 **一次测试运行会使用多少流量?** 包含资源的完整场景为 3 到 10 MB。按每次 6 MB、每月 5,000 次运行计算,流量约为 30 GB,采用住宅代理阶梯价格时费用约为 $55。 **能否在整个测试期间保持同一个 IP?** 可以:设置会话 ID 和 -ttl-1h,即可在整次运行中保持同一个出口;如果该出口掉线,系统会分配同一位置的替代出口。 **可以按国家/地区测试应用商店的可用性吗?** 可以,请使用该国家/地区的移动代理出口;商店内容和应用可用性会随运营商 IP 变化。 ### 市场研究与数据采集代理(https://proxshift.com/zh/use-cases/market-research) 研究数据集的质量取决于覆盖范围:只从一个国家/地区查看的招聘网站、向外国访客隐藏一半页面的评论网站、访问一百页后就开始限流的房地产门户,都会造成数据缺失。逐个国家/地区使用住宅代理采集,可以获得完整且可比较的数据;对于不区分访问者身份的数据源,则由数据中心代理出口处理。 推荐网络:住宅代理。 - 住宅代理(推荐):逐个市场完整覆盖受到保护或设有地理限制的数据源,并通过轮换支持大规模采集。 - 数据中心代理(推荐):以最低的单次请求成本,从开放数据源、公开 API 和档案库进行批量采集。 - ISP 代理(可用):适合需要在长时间抓取过程中保持稳定身份验证会话的数据源。 - 移动代理(可用):仅适合移动端独有的数据源和应用内容。 操作方法: - 按数据源分流:开放数据源使用数据中心代理,受保护或有地理限制的数据源使用住宅代理;一个账户即可使用两种网络。 - 定位:每个市场使用对应的 -cc-;从各个国家/地区境内采集当地数据,确保样本具有可比性。 - 轮换:需要扩大覆盖面时使用轮换模式;分页依赖会话 Cookie 时使用粘性会话。 - 存储:将原始 HTML 与出口元数据一并保存;日后重新解析的成本低于重新抓取。 **数据集应该使用住宅代理还是数据中心代理?** 两者都需要:开放数据源使用数据中心代理,每个 IP $0.80,每月共享 100 GB 流量;受保护或有地理限制的数据源使用按 GB 计费的住宅代理。请将每个数据源分配到能够成功访问且成本最低的网络。 **抓取 200 万份文档需要多少费用?** 按每份文档 250 KB 计算,流量约为 500 GB。住宅代理的 500 GB 套餐价格为每 GB $1.19,总计约 $595;数据中心代理使用 5 个 IP,每月可共享 500 GB 流量,费用约为 $4。 **可以采集数据用于 AI 训练吗?** 在遵守可接受使用政策以及适用于你和数据源的法律时,可以采集公开数据。你有责任排除个人数据、付费墙后的内容以及明确禁止采集的网站。 **并发量有限制吗?** 没有。所有网络均支持不限线程数;你需要自行控制每个域名的合理请求频率。 ## 指南 ### 如何在 Python requests、httpx 和 aiohttp 中使用代理(https://proxshift.com/zh/guides/python-requests-httpx) 每个库只需三行配置,随后各处都使用相同的用户名语法:国家/地区、城市和会话都写在代理 URL 中,因此一个网关就能满足所有任务。 #### 代理 URL 每个 Python HTTP 库都以 URL 的形式接收代理。使用 ProxShift 时,凭据和[目标定位参数](https://proxshift.com/zh/docs/username-parameters)都包含在 URL 的用户名部分;主机名指定网关,端口则决定协议。 ```text # 轮换:每次建立新连接时获得一个新的美国住宅出口 http://USER-cc-us:PASS@res.proxshift.com:9000 # 粘性会话:以 "job42" 为标识,将一个柏林住宅出口保持 30 分钟 http://USER-cc-de-city-berlin-sid-job42-ttl-30m:PASS@res.proxshift.com:9000 # 使用远程 DNS 的 SOCKS5(socks5h),参数相同 socks5h://USER-cc-us:PASS@res.proxshift.com:9001 ``` #### requests 为 `http` 和 `https` 传入同一个 URL;requests 会自动通过 CONNECT 隧道连接 HTTPS 目标。`Session` 会复用连接,因此在连接关闭前始终使用同一个出口;每个粘性任务应使用独立的 `Session`,若希望每次请求都获得新出口,则直接调用 `requests.get`。 ```python import requests PROXY = "http://USER-cc-us:PASS@res.proxshift.com:9000" proxies = {"http": PROXY, "https": PROXY} # 一次请求,一个出口 r = requests.get("https://api.ipify.org", proxies=proxies, timeout=30) print(r.text) # 粘性流程:此会话的每次请求都使用同一个出口 sticky = "http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxshift.com:9000" s = requests.Session() s.proxies = {"http": sticky, "https": sticky} s.get("https://example.com/product/1", timeout=30) s.post("https://example.com/cart", json={"id": 1}, timeout=30) ``` > Tip:如需使用 SOCKS5,请安装扩展依赖:`pip install \"requests[socks]\"`,然后使用 `socks5h://`,让 DNS 在出口端解析。 #### httpx httpx 接收单个 `proxy=` 参数(旧版本使用 `proxies=`)。它支持通过 CONNECT 隧道以 HTTP/2 连接目标,并且在异步代码中的用法相同。 ```python import httpx PROXY = "http://USER-cc-us:PASS@res.proxshift.com:9000" with httpx.Client(proxy=PROXY, timeout=30) as client: print(client.get("https://api.ipify.org").text) # 异步模式:每个任务使用一个粘性出口 import asyncio async def fetch(sid: str, url: str) -> str: proxy = f"http://USER-cc-us-sid-{sid}-ttl-10m:PASS@res.proxshift.com:9000" async with httpx.AsyncClient(proxy=proxy, timeout=30) as client: return (await client.get(url)).text asyncio.run(fetch("task1", "https://api.ipify.org")) ``` #### aiohttp aiohttp 可按请求或按会话接收代理,并原生支持 HTTP 代理;SOCKS5 则需要 `aiohttp-socks` 连接器。 ```python import aiohttp, asyncio PROXY = "http://USER-cc-us:PASS@res.proxshift.com:9000" async def main(): async with aiohttp.ClientSession() as session: async with session.get("https://api.ipify.org", proxy=PROXY, timeout=aiohttp.ClientTimeout(total=30)) as r: print(await r.text()) asyncio.run(main()) ``` #### 轮换、连接保持与重试 - 新的 TCP 连接意味着新的出口。不使用 `Session` 的 `requests.get` 每次调用都会新建连接;`Session` 或 httpx `Client` 会保持连接,因此在连接池回收连接前都会沿用同一出口。 - 在会话内更改 `-sid-` 值可强制使用新出口;发送 `Connection: close` 则可让每次请求都使用新出口。 - 遇到 403、429 和连接错误时重试一次:在轮换网关上,重试会表现为另一个访问者。粘性流程进行期间,切勿跨出口重试。 - 根据出口类型设置超时:住宅代理建议连接超时 15 秒、读取超时 45 秒;移动代理应设置得更长。 #### 节省流量 住宅代理的双向流量都按 GB 计费。请请求压缩响应(这些库默认启用 `Accept-Encoding: gzip, br`),优先使用 JSON 接口而非 HTML;除非图片、字体或媒体本身就是所需数据,否则不要下载。一个 350 KB 的页面成本很低,而加载资源后达到 4 MB 的页面成本并不低。 ### 如何在 Node.js 中通过 fetch、undici、axios 和 got 使用代理(https://proxshift.com/zh/guides/nodejs-fetch-undici-axios) Node 默认没有全局代理设置。每个客户端都需要接收 agent 或 dispatcher;确定该用哪一个后,其余工作交给 ProxShift URL 即可。 #### 内置 fetch 与 undici Node 的全局 `fetch` 基于 undici。可以通过 `dispatcher` 选项为每次请求传入 `ProxyAgent`,也可以调用一次 `setGlobalDispatcher` 完成全局设置。 ```javascript import { fetch, ProxyAgent, setGlobalDispatcher } from "undici"; const proxy = new ProxyAgent("http://USER-cc-us:PASS@res.proxshift.com:9000"); // 按请求设置 const res = await fetch("https://api.ipify.org", { dispatcher: proxy }); console.log(await res.text()); // 或进行全局设置,应用于该进程中的所有 fetch setGlobalDispatcher(proxy); ``` `ProxyAgent` 会建立连接池,因此连续请求可能复用同一连接,进而沿用同一出口。若希望每次请求都使用新出口,请以 `pipelining: 0` 和 `connections: 1` 创建 agent;也可以直接为每个逻辑会话使用不同的 `-sid-`。 #### axios axios 自带的 `proxy` 选项无法可靠地为 HTTPS 建立隧道;标准做法是使用 `https-proxy-agent` 提供的 agent,并设置 `proxy: false`。 ```javascript import axios from "axios"; import { HttpsProxyAgent } from "https-proxy-agent"; const agent = new HttpsProxyAgent("http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxshift.com:9000"); const client = axios.create({ httpsAgent: agent, httpAgent: agent, proxy: false, timeout: 30000 }); const { data } = await client.get("https://api.ipify.org"); console.log(data); ``` #### got ```javascript import got from "got"; import { HttpsProxyAgent } from "https-proxy-agent"; const agent = new HttpsProxyAgent("http://USER-cc-us:PASS@res.proxshift.com:9000"); const body = await got("https://api.ipify.org", { agent: { https: agent, http: agent }, timeout: { request: 30000 } }).text(); console.log(body); ``` #### SOCKS5 ```javascript import { SocksProxyAgent } from "socks-proxy-agent"; // socks5h 在出口端解析目标地址 const agent = new SocksProxyAgent("socks5h://USER-cc-us:PASS@res.proxshift.com:9001"); const res = await fetch("https://api.ipify.org", { dispatcher: undefined, agent }); // node-fetch 风格的客户端接收 `agent` ``` > Info:内置 fetch 不接受 `agent`;HTTP 代理请使用 undici 的 `ProxyAgent`,SOCKS 则可使用 `fetch-socks` 等兼容 SOCKS 的 dispatcher。对大多数任务而言,使用 9000 端口的 HTTP 代理更简单。 #### 环境变量 undici 默认不读取 `HTTPS_PROXY`。较新的 undici 版本提供了能够读取它的 `EnvHttpProxyAgent`;将其设为全局 dispatcher 后,整个进程都会通过代理,包括基于 fetch 构建的第三方库。 ```javascript import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici"; // HTTPS_PROXY=http://USER-cc-us:PASS@res.proxshift.com:9000 NO_PROXY=localhost node app.js setGlobalDispatcher(new EnvHttpProxyAgent()); ``` #### 并发与轮换 - 每个粘性会话使用一个 `ProxyAgent`(各自采用不同的 `-sid-`),并由该会话的所有请求共享。 - 如需大范围轮换,可以保留一个 agent 但禁用连接复用;也可以运行 N 个 agent,分别使用 N 个会话 ID,再以轮询方式分配请求。 - 留意 `UND_ERR_SOCKET` 和 `ECONNRESET`:它们表示住宅出口已经失效。重试一次,下一个连接会选择其他出口。 ### 通过代理使用 cURL:重要选项与示例详解(https://proxshift.com/zh/guides/curl-proxy-options) cURL 是验证代理是否正常工作的最快方式,也是各类库所仿照的参照。掌握五个代理参数,就能调试任何客户端。 #### 一行命令即可完成 ```bash curl -x http://USER-cc-us:PASS@res.proxshift.com:9000 https://api.ipify.org ``` `-x`(或 `--proxy`)接收内嵌凭据的代理 URL。cURL 会自动使用 CONNECT 为 HTTPS 目标建立隧道,并让代理解析主机名。 #### 值得掌握的参数 | 参数 | 用途 | | --- | --- | | -x, --proxy URL | 指定代理:协议、主机、端口,以及可选的凭据 | | -U, --proxy-user user:pass | 单独提供凭据,适合密码含特殊字符的情况 | | --proxy-basic | 强制使用 Basic 代理身份验证(提供密码时的默认方式) | | -v | 显示 CONNECT 交互、代理状态码和响应标头 | | --noproxy '*' | 本次调用忽略代理环境变量 | | -w '%{time_total}\n' | 输出耗时,以便比较不同出口 | #### SOCKS5 与远程 DNS ```bash # 在出口端解析主机名(推荐) curl -x socks5h://USER-cc-de:PASS@res.proxshift.com:9001 https://api.ipify.org # 在本地解析主机名,再将 IP 发送给代理(会泄露 DNS 查询) curl -x socks5://USER-cc-de:PASS@res.proxshift.com:9001 https://api.ipify.org ``` #### 环境变量 调用 cURL 的工具以及许多其他工具都遵循 `http_proxy`、`https_proxy` 和 `no_proxy`。在一个工作会话开始时导出一次即可。 ```bash export https_proxy="http://USER-cc-us:PASS@res.proxshift.com:9000" export http_proxy="$https_proxy" export no_proxy="localhost,127.0.0.1" curl https://api.ipify.org # 无需 -x 即可走代理 ``` #### 解读故障信息 ```bash curl -v -x http://USER:WRONG@res.proxshift.com:9000 https://api.ipify.org 2>&1 | grep -E "CONNECT|HTTP/1.1 4|HTTP/1.1 5" # < HTTP/1.1 407 Proxy Authentication Required -> 凭据错误 # < HTTP/1.1 400 Bad Request -> 用户名参数错误 # < HTTP/1.1 502 Bad Gateway -> 该位置没有出口;扩大范围 ``` CONNECT 行上的状态来自网关;`Connection established` 之后的状态来自目标网站。[错误说明页面](https://proxshift.com/zh/docs/errors)列出了每个网关状态码的含义。 #### 在循环中轮换会话 ```bash for i in $(seq 1 5); do curl -s -x "http://USER-cc-us-sid-run$i-ttl-5m:PASS@res.proxshift.com:9000" https://api.ipify.org echo done # 五个不同的美国出口;每个出口均可凭其 ID 复用五分钟 ``` ### 在 Go 和 PHP 中使用代理:net/http Transport、x/net/proxy、cURL 与 Guzzle(https://proxshift.com/zh/guides/go-and-php-proxies) 这两种语言都在传输层提供代理配置,而轮换和连接复用正是在这一层决定的。每种语言掌握两种惯用写法,就能精确控制出口。 #### Go:使用 http.Transport ```go package main import ( "fmt" "io" "net/http" "net/url" "time" ) func main() { proxyURL, _ := url.Parse("http://USER-cc-us:PASS@res.proxshift.com:9000") client := &http.Client{ Timeout: 45 * time.Second, Transport: &http.Transport{ Proxy: http.ProxyURL(proxyURL), DisableKeepAlives: true, // 在轮换网关上,新连接意味着新出口 }, } resp, err := client.Get("https://api.ipify.org") if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) } ``` 处理粘性任务时,应让 `DisableKeepAlives` 保持默认值(false):transport 会复用连接,因此也会沿用出口。并行运行多个粘性流程时,每个会话 ID 使用一个独立的 `Transport`。 #### Go:按请求选择代理 ```go tr := &http.Transport{ Proxy: func(r *http.Request) (*url.URL, error) { sid := r.Header.Get("X-Session") // 自定义提示,绝不会发送给代理 r.Header.Del("X-Session") return url.Parse(fmt.Sprintf("http://USER-cc-de-sid-%s-ttl-10m:PASS@res.proxshift.com:9000", sid)) }, } ``` #### Go:SOCKS5 ```go import "golang.org/x/net/proxy" dialer, err := proxy.SOCKS5("tcp", "res.proxshift.com:9001", &proxy.Auth{User: "USER-cc-us", Password: "PASS"}, proxy.Direct) if err != nil { panic(err) } tr := &http.Transport{Dial: dialer.Dial} client := &http.Client{Transport: tr, Timeout: 45 * time.Second} ``` #### PHP:cURL ```php "http://res.proxshift.com:9000", CURLOPT_PROXYUSERPWD => "USER-cc-us:PASS", CURLOPT_RETURNTRANSFER => true, CURLOPT_CONNECTTIMEOUT => 15, CURLOPT_TIMEOUT => 45, CURLOPT_FORBID_REUSE => true, // 在轮换网关上,每次调用都使用新出口 ]); echo curl_exec($ch); // 使用远程 DNS 的 SOCKS5 curl_setopt($ch, CURLOPT_PROXY, "res.proxshift.com:9001"); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME); ``` #### PHP:Guzzle ```php $sticky, 'timeout' => 45, 'connect_timeout' => 15]); $r = $client->get('https://api.ipify.org'); echo $r->getBody(); ``` #### 检查清单 - 粘性流程应复用连接;大范围轮换则应禁用复用。 - 根据出口类型调整超时;遇到传输错误时重试一次。 - 切勿记录代理 URL,其中包含密码;请改为记录会话 ID。 ### 在 Playwright 中使用代理:每个浏览器或上下文使用独立出口(https://proxshift.com/zh/guides/playwright-proxy) Playwright 可在启动时或按浏览器上下文接收代理和凭据,因此无需重启浏览器,每个上下文就能在各自的国家/地区使用独立的粘性会话。 #### 启动级代理 **Python** ```python from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(proxy={ "server": "http://res.proxshift.com:9000", "username": "USER-cc-us-sid-run1-ttl-30m", "password": "PASS", }) page = browser.new_page() page.goto("https://api.ipify.org") print(page.inner_text("body")) browser.close() ``` **Node.js** ```node import { chromium } from "playwright"; const browser = await chromium.launch({ proxy: { server: "http://res.proxshift.com:9000", username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" }, }); const page = await browser.newPage(); await page.goto("https://api.ipify.org"); console.log(await page.innerText("body")); await browser.close(); ``` 浏览器会保持连接,因此启动时应使用粘性会话 ID:在你选择的有效期内,整个浏览器都会表现为来自同一家庭住宅的同一位访问者。 #### 按上下文配置代理 若要在同一浏览器中运行多个国家/地区或会话,请先使用占位代理启动,再为每个上下文分别指定代理。Chromium 必须设置启动级代理,按上下文代理才会生效。 **Python** ```python browser = p.chromium.launch(proxy={"server": "http://per-context"}) de = browser.new_context(proxy={"server": "http://res.proxshift.com:9000", "username": "USER-cc-de-city-berlin-sid-de1-ttl-30m", "password": "PASS"}) us = browser.new_context(proxy={"server": "http://res.proxshift.com:9000", "username": "USER-cc-us-state-tx-sid-us1-ttl-30m", "password": "PASS"}) ``` **Node.js** ```node const browser = await chromium.launch({ proxy: { server: "http://per-context" } }); const de = await browser.newContext({ proxy: { server: "http://res.proxshift.com:9000", username: "USER-cc-de-city-berlin-sid-de1-ttl-30m", password: "PASS" } }); const us = await browser.newContext({ proxy: { server: "http://res.proxshift.com:9000", username: "USER-cc-us-state-tx-sid-us1-ttl-30m", password: "PASS" } }); ``` #### 让上下文与出口保持一致 为每个上下文设置出口所在国家/地区的区域设置和时区,确保 IP、语言与时钟一致。例如,柏林上下文应使用 `locale=\"de-DE\", timezone_id=\"Europe/Berlin\"`。这些信息不一致时,暴露自动化行为的风险甚至高于 IP 本身。 #### 节省流量:屏蔽不需要的资源 **Python** ```python def block(route): if route.request.resource_type in {"image", "media", "font", "stylesheet"}: return route.abort() return route.continue_() page.route("**/*", block) ``` **Node.js** ```node await page.route("**/*", (route) => { const t = route.request().resourceType(); return ["image", "media", "font", "stylesheet"].includes(t) ? route.abort() : route.continue(); }); ``` 完整渲染的页面大小可达 3 至 5 MB,而其 HTML 和 API 调用通常只有几百 KB。在按 GB 计费的网络上,仅这一条规则就能减少 80% 至 90% 的费用。 #### 验证与故障排查 - 先打开 IP 回显服务检查国家/地区,再使用地理位置查询服务核对城市。 - 启动时出现 `net::ERR_TUNNEL_CONNECTION_FAILED` 或 `ERR_PROXY_CONNECTION_FAILED`,表示凭据或某个参数有误;使用 cURL 测试同一个 URL,以读取网关状态码。 - 只有主动屏蔽 WebRTC,Playwright 上下文才不会使用它。若隐私很重要,请添加类似 `--disable-webrtc` 的加固参数或屏蔽 STUN。 ### 在 Puppeteer 和无头 Chrome 中使用代理(https://proxshift.com/zh/guides/puppeteer-proxy) Chrome 通过启动参数接收代理,Puppeteer 则为每个页面提供凭据。一个浏览器对应一个出口,粘性会话可让该出口持续有效。 #### 使用代理启动并进行身份验证 ```javascript import puppeteer from "puppeteer"; const browser = await puppeteer.launch({ headless: true, args: ["--proxy-server=http://res.proxshift.com:9000", "--no-first-run"], }); const page = await browser.newPage(); await page.authenticate({ username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" }); await page.goto("https://api.ipify.org", { waitUntil: "domcontentloaded", timeout: 45000 }); console.log(await page.evaluate(() => document.body.innerText)); await browser.close(); ``` 每次打开页面后,都要在首次导航前调用 `page.authenticate`;Chrome 会按页面请求代理凭据。用户名中包含国家/地区和会话 ID,因此在设定的有效期内,整个浏览器都会使用同一个家庭住宅出口。 #### 每个浏览器使用一个代理 Chrome 会将 `--proxy-server` 应用于整个浏览器实例。若需要多个国家/地区或会话,请运行多个浏览器(无头模式的开销很低),或建立 `puppeteer.launch` 工作池,让每个 worker 持有一个会话 ID。声称支持按页面代理的库会插入本地转发器;每个会话使用一个浏览器更为简单。 #### 屏蔽图片、字体和媒体 ```javascript await page.setRequestInterception(true); page.on("request", (req) => { const t = req.resourceType(); if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort(); req.continue(); }); ``` #### 保持环境一致 - 将 `Accept-Language` 和时区设为出口所在国家/地区:使用 `page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})` 和 `page.emulateTimezone(\"Europe/Berlin\")`。 - 在启动参数中加入 `--force-webrtc-ip-handling-policy=disable_non_proxied_udp`,防止 WebRTC 泄漏。 - 每个账号使用一个浏览器;若账号需要表现为曾经访问过的设备,请复用其用户数据目录。 #### 常见错误 | 现象 | 原因 | 解决方法 | | --- | --- | --- | | net::ERR_TUNNEL_CONNECTION_FAILED | 网关拒绝 CONNECT:凭据或参数错误,或没有可用出口 | 使用 cURL -v 重现问题并读取网关状态码 | | net::ERR_PROXY_AUTH_UNSUPPORTED / 弹出提示 | 在导航后才调用 authenticate() | 在 goto 前调用 page.authenticate | | 每个浏览器都显示相同 IP | 重复使用了同一个会话 ID | 每个浏览器使用不同的 -sid-,或将其省略 | | 首次加载非常慢 | 家庭住宅出口加上资源繁重的页面 | 屏蔽资源;将超时提高至 45 秒 | ### 在 Selenium WebDriver 中使用代理(Chrome 与 Firefox)(https://proxshift.com/zh/guides/selenium-proxy) Selenium 的典型难题是身份验证:浏览器会显示 WebDriver 无法填写的凭据提示框。两种简洁方案是将服务器加入白名单,或让 Selenium Wire 注入凭据。 #### 方案 1:IP 白名单(推荐用于服务器) 在控制面板中将服务器的公网 IPv4 添加到[白名单](https://proxshift.com/zh/docs/authentication)。此后 Chrome 只需要代理地址,不会再显示提示框。其限制是:未收到身份验证质询的浏览器不会发送用户名,因此网关无法读取目标定位参数,而会使用账号的默认代理池。若每个会话都需要独立的国家/地区或粘性 ID,请使用方案 2。 ```python from selenium import webdriver from selenium.webdriver.chrome.options import Options opts = Options() opts.add_argument("--proxy-server=http://res.proxshift.com:9000") opts.add_argument("--headless=new") driver = webdriver.Chrome(options=opts) driver.get("https://api.ipify.org") print(driver.find_element("tag name", "body").text) driver.quit() ``` #### 方案 2:Selenium Wire(用户名、密码和参数) Selenium Wire 会运行一个本地代理并代你添加凭据,因此包含全部参数的 ProxShift URL 无需修改即可使用。 ```python from seleniumwire import webdriver from selenium.webdriver.chrome.options import Options proxy = "http://USER-cc-de-city-berlin-sid-sel1-ttl-30m:PASS@res.proxshift.com:9000" sw_options = {"proxy": {"http": proxy, "https": proxy, "no_proxy": "localhost,127.0.0.1"}} opts = Options() opts.add_argument("--headless=new") driver = webdriver.Chrome(seleniumwire_options=sw_options, options=opts) driver.get("https://api.ipify.org") print(driver.find_element("tag name", "body").text) driver.quit() ``` > Warn:Selenium Wire 会在本地拦截 TLS 以添加标头,并在它驱动的浏览器中安装自己的证书。此方式适合自动化任务,但不适合任何重视证书完整性的场景。 #### Firefox ```python from selenium import webdriver from selenium.webdriver.firefox.options import Options opts = Options() opts.set_preference("network.proxy.type", 1) opts.set_preference("network.proxy.http", "res.proxshift.com") opts.set_preference("network.proxy.http_port", 9000) opts.set_preference("network.proxy.ssl", "res.proxshift.com") opts.set_preference("network.proxy.ssl_port", 9000) opts.set_preference("media.peerconnection.enabled", False) # 防止 WebRTC 泄漏 driver = webdriver.Firefox(options=opts) # 服务器已加入白名单,无提示框 ``` #### 实用规则 - 每个会话 ID 使用一个 driver;driver 会保持连接,因此在会话有效期结束前,出口始终不变。 - 在 Chrome 中使用 `--headless=new`;旧版无头模式具有很容易识别的指纹。 - 将浏览器语言和时区设置为出口所在国家/地区;Selenium Wire 也可以重写 `Accept-Language`。 ### 通过下载器中间件在 Scrapy 中使用轮换与粘性代理(https://proxshift.com/zh/guides/scrapy-rotating-proxies) Scrapy 已经能够连接需要身份验证的 HTTP 代理。一个二十行左右的中间件即可将 ProxShift 用户名语法转化为按请求轮换和按条目保持的粘性会话。 #### 最简单的版本 Scrapy 内置的 `HttpProxyMiddleware` 会读取 `request.meta[\"proxy\"]`,并处理嵌入 URL 的凭据。在爬虫中设置此项后,每个请求都会在网关上轮换出口。 ```python import scrapy PROXY = "http://USER-cc-us:PASS@res.proxshift.com:9000" class PricesSpider(scrapy.Spider): name = "prices" start_urls = ["https://example.com/catalog"] def start_requests(self): for url in self.start_urls: yield scrapy.Request(url, meta={"proxy": PROXY}) def parse(self, response): for href in response.css("a.product::attr(href)").getall(): yield response.follow(href, callback=self.parse_product, meta={"proxy": PROXY}) def parse_product(self, response): yield {"url": response.url, "price": response.css(".price::text").get()} ``` #### 为每个条目提供粘性会话的中间件 ```python import hashlib class ProxShiftMiddleware: GATEWAY = "res.proxshift.com:9000" def __init__(self, user, password, country): self.user, self.password, self.country = user, password, country @classmethod def from_crawler(cls, crawler): s = crawler.settings return cls(s.get("PROXSHIFT_USER"), s.get("PROXSHIFT_PASS"), s.get("PROXSHIFT_COUNTRY", "us")) def process_request(self, request, spider): # 请求携带会话键时使用粘性会话(例如每个商品流程一个),否则进行轮换 key = request.meta.get("session_key") user = f"{self.user}-cc-{self.country}" if key: sid = hashlib.sha1(key.encode()).hexdigest()[:12] user += f"-sid-{sid}-ttl-10m" request.meta["proxy"] = f"http://{user}:{self.password}@{self.GATEWAY}" ``` ```python DOWNLOADER_MIDDLEWARES = { "myproject.middlewares.ProxShiftMiddleware": 350, # 位于 HttpProxyMiddleware (750) 之前 } PROXSHIFT_USER = "USER" PROXSHIFT_PASS = "PASS" PROXSHIFT_COUNTRY = "de" CONCURRENT_REQUESTS = 32 CONCURRENT_REQUESTS_PER_DOMAIN = 8 AUTOTHROTTLE_ENABLED = True AUTOTHROTTLE_TARGET_CONCURRENCY = 4.0 DOWNLOAD_TIMEOUT = 45 RETRY_ENABLED = True RETRY_TIMES = 2 RETRY_HTTP_CODES = [403, 429, 500, 502, 503, 504, 522, 524] COMPRESSION_ENABLED = True ``` 重试的请求会再次经过中间件:没有会话键时,它会从新出口发出,这正是遇到 403 或 429 后所需要的行为;带有会话键时,它会继续使用同一出口,以满足多步骤流程的需要。 #### 控制费用 - Scrapy 不加载图片或脚本,只获取 HTML 和 JSON,因此单个页面的成本就是其 HTML 大小。 - 启用压缩(默认已启用);除非数据确实需要,否则避免使用 `Splash` 或浏览器渲染。 - 开发期间使用 `HTTPCACHE_ENABLED = True` 开启缓存,以免在调试选择器时为重复获取同一页面付费。 #### 按域名控制访问频率 代理池的用途是模拟多位遵守规则的访问者,而不是制造一位肆无忌惮的访问者。`CONCURRENT_REQUESTS_PER_DOMAIN` 和 AutoThrottle 会让每个出口以符合真人行为的频率访问各个目标;[可接受使用政策](https://proxshift.com/zh/legal/acceptable-use)禁止任何类似攻击的行为。 ### 在 Chrome、Firefox 和操作系统层面配置代理(https://proxshift.com/zh/guides/browser-and-system-proxy) 进行人工检查、账号操作或质量测试时,通过住宅出口使用真实浏览器,最能如实呈现网站体验。下面介绍各浏览器和操作系统如何接收代理,以及防止泄漏所需的两项设置。 #### 应使用哪种凭据 浏览器会在每个会话中提示输入一次代理凭据,随后将其记住。请使用粘性用户名,让整个浏览会话始终使用同一个家庭住宅出口:`USER-cc-de-city-berlin-sid-desk1-ttl-24h`。也可以在控制面板中将公网 IP 加入白名单,这样就完全不会出现提示。 #### Chrome 与 Chromium - Chrome 默认使用操作系统的代理设置;在系统中修改(见下文)后,每个 Chromium 浏览器都会遵循该设置。 - 若只为一个专用配置文件设置代理,请使用以下参数启动 Chrome:`--proxy-server=\"http://res.proxshift.com:9000\" --user-data-dir=/tmp/proxprofile`。首次导航时会要求输入用户名和密码。 - 使用带远程 DNS 的 SOCKS5:`--proxy-server=\"socks5://res.proxshift.com:9001\" --host-resolver-rules=\"MAP * ~NOTFOUND , EXCLUDE res.proxshift.com\"` 可防止 DNS 泄漏(必须将 IP 加入白名单,因为 Chrome 无法发送 SOCKS5 凭据)。 - SwitchyOmega 等扩展可以按网站切换配置文件并存储凭据,适合在直接浏览与代理浏览之间交替使用。 #### Firefox 1. 依次打开“设置 → 网络设置 → 手动配置代理”。 2. HTTP 代理填写 `res.proxshift.com`,端口填写 `9000`,并勾选“也将此代理用于 HTTPS”。或者将 SOCKS 主机设为 `res.proxshift.com`、端口设为 `9001`、版本选择 SOCKS v5,并勾选“使用 SOCKS v5 时代理 DNS”。 3. 在 `about:config` 中将 `media.peerconnection.enabled` 设为 `false`,防止 WebRTC 泄露真实地址。 4. Firefox 会在首次请求时要求输入代理凭据,并可按配置文件记住凭据。 #### macOS 依次打开“系统设置 → 网络 → 你的网络接口 → 详细信息 → 代理”:启用网页代理 (HTTP) 和安全网页代理 (HTTPS),服务器填写 `res.proxshift.com`,端口填写 `9000`;勾选“代理服务器需要密码”,再输入粘性用户名和密码。Safari 和大多数应用会遵循系统设置;部分命令行工具不会,请改用环境变量。 #### Windows 依次打开“设置 → 网络和 Internet → 代理 → 手动设置代理”:地址填写 `res.proxshift.com`,端口填写 `9000`。Windows 没有凭据输入字段;Edge 和 Chrome 会在首次使用时弹出提示,你也可以将 IP 加入白名单。将 `localhost;127.*` 添加到例外列表。 #### 使用 PAC 文件选择性走代理 ```javascript function FindProxyForURL(url, host) { // 只有这些网站通过德国出口访问;其他网站均直接连接 if (dnsDomainIs(host, ".example.de") || shExpMatch(host, "*.shop-example.de")) { return "PROXY res.proxshift.com:9000"; } return "DIRECT"; } ``` 将浏览器或操作系统指向 PAC URL(Firefox 可使用本地文件;Chrome 和 Windows 更适合使用 `http://` URL)。凭据仍需在提示框中输入,或通过白名单完成验证。 #### 验证无误后再使用 - 打开 IP 回显页面:显示的地址必须是位于所选国家/地区的出口。 - 打开 WebRTC 泄漏测试:其中应当只显示出口。 - 若网站重视环境一致性,请检查浏览器语言和时区是否与出口相符。 ### 在反检测浏览器中使用代理:一个配置文件、一个国家/地区、一个粘性会话(https://proxshift.com/zh/guides/anti-detect-browsers-proxy) 反检测浏览器按配置文件隔离指纹,而代理负责隔离网络身份。让二者协同工作的规则是:一个配置文件、一个粘性会话、一个始终一致的国家/地区。 #### 浏览器需要哪些信息 每款反检测浏览器都会为每个配置文件提供代理表单,字段相同:类型(HTTP 或 SOCKS5)、主机、端口、用户名和密码。请填写 ProxShift 网关和粘性用户名;对于绝不能更换 IP 的账号,则填写独享 ISP 地址。 | 字段 | 住宅粘性会话 | 独享 ISP 地址 | | --- | --- | --- | | 类型 | HTTP(或 SOCKS5) | HTTP(或 SOCKS5) | | 主机 | res.proxshift.com | 列表中的 IP | | 端口 | 9000(SOCKS5:9001) | 8000(SOCKS5:8001) | | 用户名 | USER-cc-us-state-ny-sid-profile17-ttl-24h | 来自你的列表 | | 密码 | PASS | 来自你的列表 | #### 一个配置文件对应一个会话 ID 为每个配置文件分配独立的 `-sid-` 值,绝不要在其他地方复用。在整个有效期内(ProxShift 最长为 24 小时),该配置文件都会使用同一个家庭住宅出口;新的一天会在同一城市获得新出口,这符合消费级 ISP 真实用户的行为。若配置文件必须连续数周保持完全相同的地址,则需要使用 [ISP 代理](https://proxshift.com/zh/isp-proxies),而不是会话。 #### 让配置文件与出口保持一致 - 配置文件的时区和语言应与出口的国家/地区及城市一致。 - 如果启用地理位置权限,应将位置设在出口城市附近。 - 将 WebRTC 保持在浏览器提供的“替换为代理 IP”或“禁用”模式。 - 操作账号前,先在浏览器内测试配置文件的 IP。 #### 账号应选择哪种网络 | 情况 | 网络 | 原因 | | --- | --- | --- | | 大量低价值账号,每日活动 | 住宅粘性会话 | 单账号成本低,IP 每日自然变化 | | 绝不能更换 IP 的高价值账号 | ISP 代理,每个配置文件一个 | 静态、注册为住宅网络、流量不限 | | 会质询住宅级 IP 的平台 | 独享移动设备 | 运营商 IP,可按指令轮换 | | 无需登录的批量检查 | 住宅轮换代理 | 重视覆盖范围而非一致性 | #### 批量导入列表 大多数反检测浏览器以 `host:port:user:pass` 行导入代理。请为每个配置文件生成一行,并使用不同的会话 ID;也可以从控制面板或 `GET /v1/proxies?format=txt` 下载 ISP 列表,再将每一行映射到一个配置文件。 ```text res.proxshift.com:9000:USER-cc-us-sid-p001-ttl-24h:PASS res.proxshift.com:9000:USER-cc-us-sid-p002-ttl-24h:PASS res.proxshift.com:9000:USER-cc-gb-sid-p003-ttl-24h:PASS ``` ### 为 AI 智能体配置代理:环境变量、Playwright MCP 与浏览器智能体(https://proxshift.com/zh/guides/ai-agents-proxy) 智能体浏览网页时像急躁的人:访问大量页面、目标不可预测,也记不住哪些网站曾经拦截它们。为每个任务分配一个住宅出口、让会话覆盖整个任务,再设置支出上限,就能获得稳定的配置。 #### 智能体带来的三个问题 - **目标不可预测。** 智能体自行决定访问哪里;你无法预先为一个网站选择数据中心代理、为另一个网站选择住宅代理。住宅出口是稳妥的默认选择。 - **每个任务包含大量跳转。** 搜索、打开、点击、阅读,再重复:一个任务就是一个会话,在任务持续期间应始终使用同一出口。 - **支出没有上限。** 陷入循环的智能体可能获取数 GB 数据。请为其设置不可超出的上限。 #### 适用于整个工具链的环境变量 大多数 Python HTTP 技术栈(requests、httpx、aiohttp、urllib)和许多工具都遵循 `HTTPS_PROXY`、`HTTP_PROXY` 与 `NO_PROXY`。在智能体进程中设置这些变量,无需修改代码,即可让所有获取页面的工具走代理。 ```bash export HTTPS_PROXY="http://AGENTUSER-cc-us-sid-task-4f2a-ttl-2h:PASS@res.proxshift.com:9000" export HTTP_PROXY="$HTTPS_PROXY" export NO_PROXY="localhost,127.0.0.1,api.openai.com,api.anthropic.com" python agent.py ``` 使用 `NO_PROXY` 排除模型提供商的 API 主机:LLM 调用不需要住宅出口,只会徒增流量费用。 #### Node.js 智能体 Node 的 fetch(undici)默认忽略环境变量。在启动时设置一次全局 dispatcher,智能体中的每个 fetch(包括第三方工具发起的请求)都会遵循该设置。 ```javascript import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici"; setGlobalDispatcher(new EnvHttpProxyAgent()); // 读取 HTTPS_PROXY / NO_PROXY ``` #### Playwright MCP 服务器 Claude、ChatGPT 类工具和 IDE 智能体使用 Playwright MCP 服务器驱动浏览器,该服务器可在启动时接收代理。请传入网关、粘性用户名,以及本地主机绕过列表。 ```json { "mcpServers": { "playwright": { "command": "npx", "args": [ "@playwright/mcp@latest", "--proxy-server=http://res.proxshift.com:9000", "--proxy-bypass=localhost,127.0.0.1" ] } } } ``` Chromium 会提示输入代理凭据,但 MCP 会话无法响应;请在控制面板中将机器的公网 IP 加入白名单,以免出现提示。如果希望为该机器单独设置流量上限,请使用子用户。如果服务器提供用户名和密码选项,则改为传入粘性用户名。 #### 基于 Playwright 构建的浏览器智能体 browser-use 等框架会在浏览器配置中公开 Playwright 的代理设置(server、username、password)。每次运行智能体时都分配新的会话 ID,避免并行运行共享出口;同时将上下文的区域设置和时区设为出口所在国家/地区。 ```python proxy = { "server": "http://res.proxshift.com:9000", "username": f"AGENTUSER-cc-us-sid-{run_id}-ttl-1h", "password": "PASS", } # 在框架接收 Playwright 代理设置的位置传入 `proxy` ``` #### 上限控制:子用户 为每个智能体或项目创建一个[子用户](https://proxshift.com/zh/docs/authentication),并设置以 GB 为单位的流量限制。智能体会获得独立的用户名和密码,其用量单独统计;无论陷入何种循环,都无法突破上限。 #### 保持合理的访问行为 - 限制智能体每分钟对每个域名的请求数;轮换出口不能成为高频轰炸的借口。 - 在浏览器上下文中屏蔽图片、媒体和字体;智能体只需读取文本。 - 为每个任务记录会话 ID,以便将被拦截的运行追溯到其出口,并在新出口上重新执行。 ### 轮换会话与粘性会话:如何按请求选择(https://proxshift.com/zh/guides/rotating-vs-sticky-sessions) 住宅网关默认进行轮换;粘性会话是需要主动指定的例外。为每个请求选择正确模式,决定了流程是顺畅运行,还是不断把自己登出。 #### 一句话规则 每个请求相互独立时使用轮换;目标会关联多个请求(登录、购物车、分页搜索、多步骤表单)或检查一致性时,则使用粘性会话。 #### 决策表 | 任务 | 模式 | 用户名 | | --- | --- | --- | | 按 URL 收集商品页面 | 轮换 | USER-cc-de | | 搜索后打开三个结果页面 | 粘性,5 分钟 | USER-cc-de-sid-q17-ttl-5m | | 加入购物车、结账并确认 | 粘性,30 分钟 | USER-cc-us-sid-order42-ttl-30m | | 登录并以同一用户身份操作一天 | 粘性,24 小时 | USER-cc-gb-sid-acct9-ttl-24h | | 连续数周保持同一地址 | 不使用会话:改用 ISP 代理 | 列表中的 ip:8000 | | 从多个城市抽样搜索结果页 | 轮换,每个请求指定城市 | USER-cc-us-city-chicago | #### 网关如何决定出口 - 没有 `-sid-`:每个新的 TCP 连接都会获得新出口。 - `-sid-X`:所有携带 X 的连接共享一个出口,直到 `-ttl-` 到期(默认 10 分钟,最长 24 小时)。 - 更改 X 会立即获得新出口;TTL 到期后再次使用 X,同样会获得新出口。 - 如果 X 对应的家庭住宅离线,会话会迁移到同一位置的另一个出口;请将失败的请求重试一次。 #### 连接保持陷阱 HTTP 客户端会复用连接。即使没有会话 ID,你仍可能在多个请求中看到相同 IP,因为这些请求共用了同一连接;这并非粘性,而是连接复用,连接池回收该连接时就会结束。若需要固定一个出口,请使用 `-sid-` 明确指定;若每次请求都需要新出口,请关闭连接或为每个请求使用新的会话 ID。 #### 重试 在轮换任务中,遇到 403 或 429 后重试会成为新的访问者:成本低且有效。在粘性任务中,跨出口重试会破坏流程,而且看起来正像网站要识别的自动化行为;请在同一会话中退避后重试,仅当出口本身失效时才启动新会话。 #### 并行处理 各个粘性会话彼此独立。用一百个 ID 运行一百个会话,就相当于拥有一百位行为一致的访问者;每个会话都在自身有效期内保持独立出口。ProxShift 不限制并发,因此制约因素是目标城市的代理池规模,而不是网关。 ### 如何测试代理:出口 IP、位置、泄漏、标头、速度与成功率(https://proxshift.com/zh/guides/test-a-proxy) “能用”的代理仍可能泄漏、位于错误城市,或无法访问你的目标。只需十分钟进行检查(主要使用 cURL),就能发现销售页面不会告诉你的事实。 #### 1. 出口及其国家/地区 ```bash curl -s -x http://USER-cc-de-city-berlin:PASS@res.proxshift.com:9000 https://api.ipify.org # 然后在一两个公共地理位置数据库中查询该地址 ``` 国家/地区必须匹配。城市级定位可接受相邻城镇,因为各数据库在这一层级可能存在分歧。先不使用 `-sid-` 运行几次以确认轮换,再使用固定的 `-sid-` 确认粘性。 #### 2. 匿名性标头 通过普通 HTTP 请求标头回显端点,并逐一检查所有标头。其中不应提及代理或出口以外的地址:不得出现 `X-Forwarded-For`、`Via`、`Forwarded`、`X-Real-IP`。应通过 HTTP 而非 HTTPS 检查,因为代理无法在 TLS 内添加标头。 #### 3. DNS 使用 SOCKS5 时,请比较 `socks5://` 与 `socks5h://`:只有后者会在出口端解析。使用 HTTP 代理时,主机名始终发送给代理。如果网站通过代理访问时的行为与预期不同,常见原因是本地 DNS 响应指向了错误的区域边缘节点。 #### 4. WebRTC(仅限浏览器) 在实际要使用的浏览器中打开 WebRTC 泄漏测试。测试中只能出现出口;如果显示真实地址,请禁用 WebRTC,或将其 IP 策略设为仅使用代理。 #### 5. 延迟与吞吐量 ```bash curl -s -o /dev/null -w 'connect %{time_connect}s ttfb %{time_starttransfer}s total %{time_total}s\n' \ -x http://USER-cc-de:PASS@res.proxshift.com:9000 https://example.com/ # 住宅出口的 TTFB 为几百毫秒属于正常情况;若达到数秒,说明线路较慢,请尝试其他会话 ID ``` 如需测试吞吐量,请下载一个 10 MB 的测试文件并读取 `%{speed_download}`;住宅代理通常可达到数十 Mbit/s,数据中心和 ISP 代理则可达到数百 Mbit/s。 #### 6. 目标网站上的成功率 ```bash ok=0; for i in $(seq 1 50); do code=$(curl -s -o /dev/null -w '%{http_code}' -m 30 -x "http://USER-cc-us:PASS@res.proxshift.com:9000" https://target.example/some/page) [ "$code" = 200 ] && ok=$((ok+1)) done; echo "$ok/50 succeeded" ``` 五十次请求只会消耗几 MB 流量。还应检查部分响应的*内容*:状态码为 200 但缺少价格属于软封锁,只有检查内容才能发现。 #### 7. 如何得出结论 | 发现 | 含义 | 操作 | | --- | --- | --- | | 国家/地区错误 | 参数拼写错误或代码不受支持 | 检查 -cc-(应为 gb,而非 uk) | | 存在代理标头 | 不是高匿名代理 | 更换提供商 | | 首次请求即出现 403 或 CAPTCHA | 出口类型对目标而言太弱 | 住宅 → 移动,或数据中心 → 住宅 | | 发送 N 次请求后被封锁 | 按 IP 限速 | 提高轮换频率并降低速度 | | 所有操作都很慢 | 家庭住宅线路较慢 | 使用新会话 ID,或改用追求速度的 ISP/数据中心代理 | ### 代理错误排查:407、400、402、403、429、502 与超时(https://proxshift.com/zh/guides/troubleshoot-proxy-errors) 代理故障排查的一半工作,是判断响应来自网关还是网站。状态码及其出现位置会告诉你答案,而每种组合都有对应的解决方法。 #### 第 1 步:响应来自谁? 使用 `curl -v` 运行失败的请求。`Connection established` 之前出现在 `CONNECT` 行上的状态来自网关;之后出现的状态则来自目标网站。浏览器会将网关故障显示为 `ERR_TUNNEL_CONNECTION_FAILED` 或 `ERR_PROXY_CONNECTION_FAILED`。 #### 第 2 步:网关状态码 | 代码 | ProxShift 含义 | 解决方法 | | --- | --- | --- | | 407 invalid_credentials | 用户名或密码被拒绝 | 重新复制用户名和密码;检查末尾是否有空格;白名单 IP 是否已更改? | | 400 invalid_parameter | 用户名参数未知或格式错误 | 检查键和值:应使用 -cc-gb 而非 -cc-uk,-city- 不得含空格,-ttl- 应为 1m 至 24h | | 402 insufficient_balance | 流量或余额已耗尽 | 充值;如果使用子用户,请检查其上限 | | 403 blocked_destination | 端口或目标不允许访问 | 端口 25、UDP 和仅支持 IPv6 的目标按设计会被拒绝 | | 502 no_exit_available | 当前没有符合该位置的出口 | 扩大范围:移除 -city- 或 -asn-,保留 -cc-;一分钟后重试 | | 502 exit_failed | 出口在到达目标前发生故障 | 重试一次;下一个连接会选择其他出口 | | 504 target_timeout | 目标未及时响应 | 重试;从其他网络检查目标 | #### 第 3 步:目标网站状态码 | 代码 | 可能原因 | 解决方法 | | --- | --- | --- | | 403(网站页面) | 出口类型或指纹被拒绝 | 使用住宅或移动出口;采用真实的客户端标头;流程使用粘性会话 | | 429 | 按 IP 限速 | 按连接轮换;降低每个出口的速率;遵循 Retry-After | | 200 但数据为空 | 软封锁 | 按 403 处理;检查内容而非状态码 | | 302 重定向到质询页面 | 机器人检查 | 降低速度;对此目标使用真实浏览器;采用更强的出口类型 | | 5xx | 目标网站故障 | 退避等待;这不是代理问题 | #### 连接层故障 - 传输过程中出现 `ECONNRESET`、`Connection reset by peer`:家庭住宅出口已断开。重试一次;对于粘性会话,网关会重新绑定到同一位置的新出口。 - 空闲超时:网关会关闭空闲 60 秒的连接。长轮询需要建立新连接。 - 通过代理时出现 TLS 错误:这绝不正常。检查你与网关之间是否存在本地拦截器(企业代理、防病毒软件)。 #### 第 4 步:作出判断 1. 凭据或参数错误 → 修正后重试(不产生费用)。 2. 网关找不到出口 → 扩大位置范围。 3. 目标封锁该出口类型 → 改用更强的网络:数据中心 → 住宅 → 移动。 4. 目标进行限速 → 提高轮换频率并降低速度;绝不要一边高频请求一边轮换。 5. 目标发生故障 → 等待。 ### 如何估算代理预算:页面数 × 大小 × 费率及计算示例(https://proxshift.com/zh/guides/estimate-a-proxy-budget) 代理账单就是一道算术题:请求数量、每个请求的数据量,以及所用网络。利用三个数字和阶梯费率,即可在购买第一个 GB 前得出有依据的预算。 #### 按 GB 计费的网络:计算公式 **每月 GB = 每月请求数 × 每个请求的平均字节数(双向)÷ 1,000,000,000**,然后在阶梯费率中查找对应购买量的单价。费率档位适用于整笔购买,因此一次购买整月用量比拆分购买更便宜。 | 请求类型 | 典型大小 | 说明 | | --- | --- | --- | | HTML 商品或列表页面 | 200–500 KB | 启用压缩;不加载资源 | | JSON API 响应 | 20–200 KB | 成本最低的采集方式 | | 搜索结果页面 | 200–800 KB | 内联脚本会使其更大 | | 无头浏览器,已屏蔽资源 | 0.5–1.5 MB | HTML 加 XHR 调用 | | 无头浏览器,加载全部内容 | 2–6 MB | 图片和字体占据大部分流量:应将其屏蔽 | #### 住宅代理阶梯费率计算示例 | 工作负载 | 每月 GB | 费率 | 每月成本 | | --- | --- | --- | --- | | 100,000 个商品页面,每个 350 KB | 35 | $1.82/GB | $63.70 | | 500,000 个页面,每个 350 KB | 175 | $1.54/GB | $269.50 | | 2,000,000 次 API 调用,每次 60 KB | 120 | $1.54/GB | $184.80 | | 50,000 个渲染页面,屏蔽资源后每个 1 MB | 50 | $1.75/GB | $87.50 | | 50,000 个渲染页面,加载全部内容后每个 4 MB | 200 | $1.54/GB | $308 | 这些费率是 ProxShift 当前的住宅代理档位;[价格页面](https://proxshift.com/zh/pricing)提供完整阶梯表,以及使用同一费率表的计算器。移动流量采用独立阶梯费率,起价为每 GB $2.62。 #### 按 IP 计费的网络:另一种计算方式 ISP 和数据中心地址按 IP、按租期定价,因此问题变成:需要多少个并行身份或固定出口?每个账号、每个加入白名单的出口或每个并行任务使用一个地址;乘以对应租期和区域的月费率;地址数达到 10 个后应用批量折扣。ISP 流量不限,数据中心流量合并共享(每个地址 100 GB),因此使用这些网络加载大型页面不会产生额外费用。 #### 按每次成功请求的成本选择 最便宜的网络,是请求能够成功的网络。如果目标会封锁数据中心地址,那么每次请求成本不到一美分也依然昂贵;能够返回真实页面的住宅流量则很划算。请在小规模样本(五十次请求)上估算每种网络的成功率,再用成本除以成功次数。 #### 让账单减半的五个习惯 - 在浏览器中屏蔽图片、媒体、字体和跟踪器。 - 优先使用 JSON 端点和移动页面,而非完整的桌面版 HTML。 - 缓存不会变化的内容;重新获取价格,不要重复获取说明。 - 将允许数据中心代理的目标交给数据中心地址。 - 一次购买整月用量以进入更低费率档位;ProxShift 流量永不过期,因此提前购买没有风险。 ### 如何选择代理服务商:12 项检查清单(https://proxshift.com/zh/guides/choose-a-proxy-provider) 每家服务商都宣称拥有“数百万个 IP”和“99% 成功率”。真正影响使用体验的是具体规则:地址从何而来、流量如何计量、哪些资源会过期、哪些信息会公开,以及发生故障时如何处理。 #### 检查清单 1. **来源。** 对住宅代理池而言:设备所有者是否明确同意参与、能否获得报酬,以及是否可以退出?无法回答这些问题的服务商会给双方带来风险。 2. **对你有用的覆盖范围。** 不要只看全球代理池总量,而要看目标国家和城市的可用规模;这些信息应在注册前或注册后立即可见。 3. **定位层级。** 所有地区都应支持国家定位;还应在你需要的地区支持州/省、城市和 ASN 定位,移动代理则应支持运营商定位。确认这些条件可以按请求设置,而不是绑定到套餐。 4. **会话控制。** 是否支持每次连接轮换、可自定持续时间的粘性会话;会话最长能维持多久;出口节点掉线后会如何处理。 5. **协议与身份验证。** 同一账户是否同时支持 HTTP(S) 和 SOCKS5;是否支持用户名密码和 IP 白名单;多人或多个代理程序共用账户时,能否创建带用量上限的子用户。 6. **流量计量。** 上下行都计费,还是只计算一个方向?请求头是否计入?连接失败是否收费?这些规则应明确写出,而不能只靠口头承诺。 7. **有效期。** 未用流量是否会过期,何时过期?流量永不过期会改变大流量套餐的实际成本。 8. **价格透明度。** 每档套餐、周期、区域和折扣都应公开;结账时沿用同一套价格;付款环节不应突然出现附加费。 9. **付款与身份信息。** 支持哪些付款方式,最低金额是多少,是否要求提供身份证明,以及达到什么门槛时需要提供。 10. **文档。** 端点、参数、错误代码和限制是否足够准确,让你在付款前就能据此开发。 11. **服务状态与支持。** 是否有基于真实探测结果的状态页;支持渠道是否会生成工单编号,并能联系到真人。 12. **规则。** 是否公开并执行可接受使用政策;这项政策能保护你即将依赖的代理池。 #### 需要仔细辨别的宣传说法 | 宣传说法 | 通常代表什么 | 更应该问什么 | | --- | --- | --- | | “X 百万个 IP” | 一个月内出现过的不同地址数量 | 我的目标国家目前有多少个在线地址? | | “99% 成功率” | 服务商在自有测试中访问简单目标所得的结果 | 测试目标、成功率计算方式和客户端分别是什么? | | “不限流量” | 通常附带合理使用条款或限速措施 | 达到多少用量后会限速? | | “免费试用” | 可能只有几 MB,或需要预先绑定银行卡 | 一次有代表性的测试需要多少钱,余额是否长期有效? | #### 一小时内完成测试 1. 充值最低金额,然后按照[测试流程](https://proxshift.com/zh/guides/test-a-proxy)检查出口、请求头、DNS 和延迟。 2. 从你计划使用代理的网络向真实目标发送五十次请求;统计成功次数并检查返回内容。 3. 分别尝试一次粘性会话流程(搜索 → 连续打开三个页面)和一轮快速轮换请求,并观察 IP 变化。 4. 阅读流量计量与有效期规则,再比较各候选服务商每次成功请求的实际成本。 #### ProxShift 如何满足这十二项要求 住宅代理容量来自用户知情同意的设备;按网络公开代理池规模,并注明统计日期和口径(住宅代理 70M+,ISP 代理 550K+,数据中心代理 550K+,移动代理 4.9M+,截至 2026年9月:轮换代理池按月度不同地址数统计,静态代理池按库存统计),同时逐国列出覆盖范围;可通过用户名设置国家、美国州、城市和 ASN 定位;粘性会话最长 24 小时;HTTP(S) 和 SOCKS5 均支持密码或白名单验证,并可为子用户设置上限;上下行流量均计量,连接失败不收费;流量永不过期;所有价格公开,结账价格与页面一致;加密货币最低充值额为 $20,无需身份证明;产品文档即服务约定;状态页每五分钟探测一次;严格执行可接受使用政策。每项说明都链接到可供核实的页面。 ### 使用加密货币购买代理:分步指南(https://proxshift.com/zh/guides/buy-proxies-with-crypto) 使用加密货币付款,无需银行卡、拒付处理或身份信息表。只要弄清三个问题,操作就很简单:使用哪个网络、发送多少金额,以及需要等待多久。 #### 开始前的准备 - 持有相应币种的钱包或交易所账户。小额付款可选择手续费较低的币种(莱特币、Tron、Solana,或低手续费网络上的稳定币),手续费通常只有几美分。 - 确定要存入余额的美元金额:ProxShift 的最低充值额为 $20,充值金额越大,赠送比例越高(满 $100 赠送 10%,满 $250 赠送 25%,满 $500 赠送 40%,满 $1,000 赠送 50%)。 - 预留五至三十分钟,具体取决于该币种的确认速度。 #### 分步操作 1. 在账户的钱包页面选择美元金额和币种。结账页面会显示收款地址、准确的币种金额;如果所选网络需要,还会显示备注或标签。 2. 核对**网络**:Tron 网络上的 USDT 地址无法接收通过以太坊网络发送的 USDT。结账页面会注明网络,你的钱包必须选择同一网络发送。 3. 发送页面显示的准确金额。如果交易所会从转出金额中扣除提现手续费,请另行加上这笔费用,确保足额到账。 4. 等待区块确认。交易达到结账页面注明的确认深度后,金额会计入余额;Solana 或 Tron 通常只需数秒,莱特币或以太坊需要几分钟,比特币在网络繁忙时则更久。 5. 使用余额:购买流量或租用地址。每笔充值都会连同交易哈希记录在账本中。 #### 金额、汇率与常见错误 | 情况 | 处理方式 | | --- | --- | | 发送金额略少 | 按实际收到的价值入账 | | 发送金额较多 | 全部计入余额 | | 确认期间汇率发生变化 | 美元价值按检测到交易时的汇率固定 | | 网络选错 | 通常无法找回;务必与结账页面显示的网络保持一致 | | 忘记填写备注 | 携交易哈希联系支持团队;能否找回取决于所用网络 | #### 选择币种 | 首要需求 | 币种 | 理由 | | --- | --- | --- | | 手续费最低、速度最快 | Tron、Solana、莱特币 | 手续费几美分或更低,数秒至数分钟到账 | | 美元价值稳定 | USDT、USDC | 从发送到入账期间不会出现汇率波动 | | 隐私 | 门罗币 | 链上隐藏金额与交易双方 | | 已经持有 | 比特币、以太坊 | 通用性强;网络繁忙时需留意手续费 | #### 隐私与记录 在 ProxShift,只需电子邮箱即可注册账户,再用加密货币充值;无需身份证明,也无需电话号码。系统仅保存计费和处理滥用行为所需的信息,并按[隐私政策](https://proxshift.com/zh/legal/privacy)所列期限保留。你需要自行管理个人钱包的历史记录:可以在自己一端为每次购买使用新的收款地址;如果不希望区块链本身显示付款信息,可以使用门罗币。 #### 退款 未使用的余额可退回原付款钱包,但需扣除网络手续费;已消耗的流量和已交付的租期无法退款。赠送余额可以像普通余额一样消费,但不能兑付。详情请参阅[退款政策](https://proxshift.com/zh/legal/refunds)。 ## 术语表 ### 代理服务器(https://proxshift.com/zh/glossary/proxy-server) 代理服务器是一台中间机器,它接收客户端请求,使用代理自身的 IP 地址将请求转发到目标,并把响应传回。目标看到的是代理而非客户端,因此代理可用于改变显示的位置、将流量分散到多个地址,以及在一个会话中保持稳定的出口。 ### 正向代理(https://proxshift.com/zh/glossary/forward-proxy) 正向代理是位于客户端前方的代理服务器:应用程序将请求发送给它,它再把请求转发到互联网中的任意目标,并用自身 IP 地址替换客户端的 IP 地址。所有商业代理网络,无论是住宅代理、专用 ISP、数据中心代理还是移动代理,都是正向代理。 ### 反向代理(https://proxshift.com/zh/glossary/reverse-proxy) 反向代理是位于一台或多台源站服务器前方的服务器,它代表这些服务器接收公众请求,然后在内部转发。负载均衡器、CDN 和 API 网关都是反向代理。它与代理服务商销售的正向代理作用相反,也是受保护网站用来评估入站访客的网络层。 ### 住宅代理(https://proxshift.com/zh/glossary/residential-proxy) 住宅代理通过互联网服务提供商分配给真实家庭设备的 IP 地址来传输流量。由于该地址属于消费者 ISP,并呈现出消费者网络的行为,网站会将请求视为来自相应家庭所在城市的普通访客。住宅代理通常以按 GB 计费的轮换地址池形式销售,支持按国家/地区、州、城市和 ASN 定位,并提供时长有限的粘性会话。 ### 专用 ISP(https://proxshift.com/zh/glossary/isp-proxy) 专用 ISP 又称静态住宅代理,是注册在消费者互联网服务提供商名下,但托管在数据中心硬件上,并在租期内分配给单一客户的 IP 地址。网站会将它归类为家庭网络连接,同时客户能够获得有线网络上行链路的速度和在线率,以及在租期内始终不变的地址。专用 ISP 按 IP 销售,通常提供不限量流量。 ### 数据中心代理(https://proxshift.com/zh/glossary/datacenter-proxy) 数据中心代理使用托管在商业机房、注册于托管公司而非消费者 ISP 名下的 IP 地址。它是速度最快、价格最低的代理类型,拥有有线上行链路和可预测的延迟,但也最容易被网站识别为非住宅地址。数据中心代理按 IP 和租期销售,可提供专用地址(单一客户)或共享地址。 ### 移动代理(https://proxshift.com/zh/glossary/mobile-proxy) 移动代理通过蜂窝运营商分配给真实 4G 或 5G 设备的 IP 地址来传输流量。运营商使用运营商级 NAT,让数千名用户共享每个地址,因此封禁一个移动 IP 就意味着封禁真实客户;正因如此,网站对移动地址的容忍度高于任何其他类型。移动代理既可以按 GB 计费的轮换地址池形式销售,也可以按租期出租专用设备。 ### 轮换代理(https://proxshift.com/zh/glossary/rotating-proxy) 轮换代理是一种网关,它从地址池中为每个新连接分配不同的出口 IP 地址,或在设定的时间间隔后更换出口。客户端始终使用同一个主机名和同一组凭据;轮换由服务商一侧完成。这是住宅代理池和移动代理池的标准交付方式,也是应对按 IP 实施的速率限制的自然选择。 ### 静态代理(https://proxshift.com/zh/glossary/static-proxy) 静态代理是在整个租用期内保持不变的代理地址,与通过同一主机名在背后更换出口的轮换网关相反。专用 ISP、专用数据中心代理和专用移动设备都是静态的;住宅代理池和移动代理池则会轮换。静态地址适合登录、白名单,以及任何必须长期呈现一致身份的场景。 ### 专用代理(https://proxshift.com/zh/glossary/dedicated-proxy) 专用代理是在整个租期内分配给单一客户的 IP 地址:其他人不会通过它发送流量,因此它的信誉、速率限制和封禁只取决于该客户自身的行为。与之相反的是由多位客户同时使用的共享代理。专用模式是专用 ISP、优质数据中心代理和移动设备的常见形式。 ### 共享代理(https://proxshift.com/zh/glossary/shared-proxy) 共享代理是由同一服务商的多位客户同时使用的 IP 地址。由于服务商会多次销售同一资源,其价格低于专用地址,但信誉和速率限制会受到每位使用者的影响。轮换住宅代理池和移动代理池在设计上就是共享的;静态共享数据中心代理则属于市场中的低价产品。 ### 反向连接代理(https://proxshift.com/zh/glossary/backconnect-proxy) 反向连接代理是一种网关服务器:你通过一个固定的主机名和端口连接到它,它再通过后方地址池中的不同出口 IP 转发每个连接。该术语描述了轮换住宅代理和移动代理服务的架构:你只配置网关,从不直接配置出口;网关会为每个请求“反向连接”到一台设备。 ### 代理网关(https://proxshift.com/zh/glossary/proxy-gateway) 代理网关是代理网络的入口点,即客户端连接的主机名和端口。它会验证客户端身份,读取定位参数,并将每个连接转发到合适的出口地址。一个网关可以位于数百万个出口之前,因此住宅代理和移动代理服务只需配置一次,之后通过用户名进行控制,无需切换主机。 ### 出口 IP(https://proxshift.com/zh/glossary/exit-ip) 出口 IP 是代理请求最终到达目标时所使用的公网 IP 地址:住宅代理的出口是家庭设备,专用 ISP 或数据中心代理的出口是托管地址,移动代理的出口则是运营商地址。目标对位置、服务商和信誉作出的所有判断都针对出口,而不是你所连接的网关。 ### 代理地址池(https://proxshift.com/zh/glossary/proxy-pool) 代理地址池是某一时刻可供网关使用的出口 IP 地址集合。地址池的规模、地理分布和周转率,决定了你能在某个国家/地区或城市获得多少不同地址、同一地址对某个目标的重复使用频率,以及被封禁出口的替换速度。服务商公布的地址池规模通常统计一个月内出现过的地址;当前在线的地址数量会更少。 ### 代理匿名级别(https://proxshift.com/zh/glossary/anonymity-levels) 代理匿名级别描述代理会向目标透露哪些客户端信息。透明代理会在 X-Forwarded-For 等请求头中转发客户端的真实 IP;匿名代理会隐藏真实 IP,但通过 Via 等请求头表明自身是代理;高匿(高度匿名)代理完全不添加代理请求头,因此请求看起来像直接来自出口地址。用于保护隐私或采集数据的商业代理在设计上应当是高匿代理。 ### HTTP 代理(https://proxshift.com/zh/glossary/http-proxy) HTTP 代理是使用 HTTP 协议访问的代理服务器:客户端可以向它发送用于明文 HTTP 的完整 URL 请求,也可以发送 CONNECT 请求,为 HTTPS 和其他 TCP 流量建立隧道。几乎所有 HTTP 客户端、浏览器和抓取框架都原生支持它,因此它是网页任务的默认选择;对于非 HTTP 协议,则可以选择 SOCKS5。 ### SOCKS5 代理(https://proxshift.com/zh/glossary/socks5-proxy) SOCKS5 代理在传输层转发 TCP 连接,无需理解应用协议,因此可以承载 HTTP、HTTPS、SMTP、自定义二进制协议或任何其他基于 TCP 的内容。SOCKS5 增加了用户名密码身份验证,并可选择提供远程 DNS 解析和 UDP 关联。对于并非 HTTP 客户端的工具,或需要由代理解析主机名的工具,应当使用这种协议。 ### IP 轮换(https://proxshift.com/zh/glossary/ip-rotation) IP 轮换是指连续请求使用不同出口 IP:可由代理网关自动完成,也可由客户端循环使用静态代理列表。它把工作负载分散到多个地址,避免单个 IP 集中承受限速、封锁和信誉损害,也是住宅与移动代理池的默认行为。 ### 粘性会话(https://proxshift.com/zh/glossary/sticky-session) 粘性会话会在规定时长内把一系列请求绑定到同一出口 IP,而不是每个连接都轮换。客户端将会话标识附加到代理用户名;携带相同标识的连接都会经同一出口路由,直到会话到期或出口离线。它使登录、购物车和多页面流程能够在轮换代理池中正常工作。 ### 会话 ID(https://proxshift.com/zh/glossary/session-id) 代理会话 ID 是客户端添加到代理用户名中的任意标识符,网关据此把请求归入同一会话,并通过同一个出口 IP 路由。任何值都可以,网关只会比较标识符。使用新标识符是强制获取新出口最简单的方法;为每个账号、购物车或任务使用独立标识符,则可让并行会话彼此隔离。 ### 会话 TTL(https://proxshift.com/zh/glossary/session-ttl) 会话 TTL(生存时间)是粘性代理会话的有效期:在此期间,携带同一会话标识符的请求会通过同一个出口 IP 路由。有效期结束后,下一次携带该标识符的请求会获得新出口。不同提供商支持的有效期从一分钟到一天不等;有效期越长,连续性越好,但出口更新得越慢。 ### 连接保持与轮换(https://proxshift.com/zh/glossary/keep-alive) HTTP 连接保持允许客户端通过同一个 TCP 连接发送多个请求。使用轮换代理时,出口在连接建立时选定,因此该连接上复用的所有请求都会从同一 IP 发出。使用连接池的客户端看到的 IP 变化次数会少于预期;强制每个请求建立新连接即可恢复按请求轮换。 ### 并发连接(https://proxshift.com/zh/glossary/concurrent-connections) 并发连接在代理营销中常被称为“线程”,指客户可以通过代理服务同时保持打开的连接数量。有些提供商会按套餐限制数量;ProxShift 等提供商则不设限制,仅按流量或地址计费。此时,实际限制取决于目标可承受的负载,以及所用位置的代理池规模。 ### 地理定位(https://proxshift.com/zh/glossary/geo-targeting) 代理地理定位是选择出口 IP 地址所在位置的能力,让目标网站看到来自特定国家/地区、州、城市或网络提供商的访客。在住宅和移动代理池中,可通过代理用户名中的参数为每个请求指定位置;对于静态代理产品,则在订购地址时选择。借助这一功能,一个账号便可查看任何市场的本地价格、搜索结果和内容。 ### 国家/地区定位(https://proxshift.com/zh/glossary/country-targeting) 国家/地区定位把出口 IP 限制在所选国家/地区,并使用其 ISO 3166-1 alpha-2 代码(us、de、br……)标识。这是最常见、最可靠的定位级别:各地理位置数据库对国家/地区的判断远比对城市一致,而且所有代理网络都提供此功能。在代理池网关中,代码随用户名传递;对于独享代理产品,则在订购时选择。 ### 州定位(https://proxshift.com/zh/glossary/state-targeting) 州定位把出口 IP 限制在美国的特定州,并使用该州的双字母邮政代码(tx、ca、ny……)标识。之所以需要此功能,是因为美国大量商业活动、广告和法规都因州而异,例如销售税、配送、保险报价、博彩与彩票规则以及本地广告。在美国以外,区域级定位并不常见,通常由城市定位补足。 ### 城市定位(https://proxshift.com/zh/glossary/city-targeting) 城市定位把出口 IP 限制为地理位置数据库认定属于指定城市的地址。它适用于本地搜索结果、配送定价、房地产列表、广告验证,以及按都会区提供的其他内容。其限制包括当地代理池规模、较小地区的地理定位精度,以及家庭地址的“城市”取决于数据库判断而非 GPS 位置。 ### ASN 定位(https://proxshift.com/zh/glossary/asn-targeting) 自治系统编号(ASN)用于标识互联网中的网络运营商,例如 ISP、移动运营商或托管公司。ASN 定位把出口 IP 限制为某一运营商宣告的地址,例如 Comcast(AS7922)或 Deutsche Telekom(AS3320)。当目标网站区别对待不同提供商、需要按 ISP 对受众抽样,或需要选择移动运营商时,就会使用此功能。 ### 运营商定位(https://proxshift.com/zh/glossary/carrier-targeting) 运营商定位用于选择移动代理出口背后的移动网络运营商,例如选择 AT&T 而不是 T-Mobile,或选择 Vodafone 而不是 Orange。平台和应用有时会因运营商不同而表现各异,而在某个运营商网络中创建的账号持续从该网络出现时也更显一致。在轮换移动代理池中,使用运营商的 AS 编号进行选择;在独享设备上,则在设备配置时固定运营商。 ### CGNAT(https://proxshift.com/zh/glossary/cgnat) 运营商级 NAT(CGNAT)是移动运营商及部分固网运营商大规模实施的网络地址转换,让数百或数千名用户共享一个公网 IPv4 地址。对网站而言,一个移动 IP 代表许多真实用户,封锁该 IP 会让所有这些用户一并受影响;这正是移动代理出口通常具有较高容忍度的根源,也是设备在不同网关之间移动时,移动 IP 会自然轮换的原因。 ### IP 地理定位(https://proxshift.com/zh/glossary/ip-geolocation) IP 地理定位是把 IP 地址映射到实际地理位置的技术。商业数据库供应商会结合区域互联网注册机构记录、ISP 地址分配、延迟测量以及用户提交的修正来构建这些映射。网站用它提供本地化内容并检查访客,代理提供商则用它标注出口位置。国家/地区级定位的准确度很高,城市级准确度会随城市规模和网络类型而变化。 ### 用户名参数(https://proxshift.com/zh/glossary/username-parameters) 用户名参数是附加到代理凭据用户名后的键值对(例如 USER-cc-de-city-berlin-sid-a1b2),用于告知网关应选择哪个出口以及保持多长时间。由于每个连接都会携带相应选择,因此只需一个主机名和一组凭据即可服务所有国家/地区、城市、提供商和会话模式,无需生成新的代理列表。 ### HTTP CONNECT(https://proxshift.com/zh/glossary/https-connect) HTTP CONNECT 是客户端发送给 HTTP 代理的请求方法,用于请求建立通往某个主机和端口(通常为 443 端口)的 TCP 隧道。代理返回 200 后,客户端便通过该隧道直接与目标通信并协商端到端 TLS,因此代理只能看到目标名称和加密字节。所有 HTTPS 请求都是以这种方式通过 HTTP 代理传输的。 ### 代理身份验证(https://proxshift.com/zh/glossary/proxy-authentication) 代理身份验证是代理网关在转发连接前识别其所属客户的方式。主流方法有两种:一是用户名和密码,HTTP 代理通过 Proxy-Authorization 请求头传递,SOCKS5 则在握手过程中传递;二是 IP 白名单,来自已登记源地址的连接无需凭据即可获准访问。大多数提供商同时支持这两种方法,并允许二者并用。 ### IP 白名单(https://proxshift.com/zh/glossary/ip-whitelisting) IP 白名单根据源 IP 地址验证代理连接:客户登记设备的公网地址后,网关会接受来自这些地址的连接,无需用户名或密码。它可以从配置中移除密钥,适合固定服务器;但源地址发生变化时便会失效,也不适用于与陌生人共享公网 IP 的网络。 ### 远程 DNS 解析(https://proxshift.com/zh/glossary/remote-dns) 远程 DNS 解析是指由代理而非客户端把目标主机名转换为 IP 地址。对于 HTTP 代理,这是自动完成的,因为客户端会在请求或 CONNECT 行中发送主机名;对于 SOCKS5,则取决于客户端发送主机名(socks5h),还是发送预先解析的地址(socks5)。远程解析会让 DNS 查询留在出口网络中,并获得当地用户会得到的解析结果。 ### TLS 透传(https://proxshift.com/zh/glossary/tls-passthrough) TLS 透传是指代理在不解密的情况下中继 HTTPS 连接:客户端通过隧道与目标协商 TLS,目标自身的证书会呈现给客户端,而代理只能看到服务器名称和密文。与之相反,TLS 拦截要求客户端信任代理的证书颁发机构,并允许代理读取和修改内容;商业代理网络不会这样做。 ### UDP 与代理(https://proxshift.com/zh/glossary/udp-proxying) UDP 代理是通过代理中继无连接数据报。SOCKS5 使用 UDP ASSOCIATE 命令定义了这种方式,但大多数商业代理网络并不支持。HTTP 代理本质上基于 TCP,住宅和移动网关也只中继 TCP 流。必须使用 UDP 的应用,包括基于 QUIC 的 HTTP/3、基于 UDP 的 DNS,以及大多数 VoIP 或游戏协议,只能回退到 TCP 或绕过代理。 ### IPv4 与 IPv6 代理(https://proxshift.com/zh/glossary/ipv4-vs-ipv6) IPv4 和 IPv6 是互联网协议的两个版本。IPv4 地址稀缺、昂贵且随处受支持,因此成熟的代理网络大多以它为基础。IPv6 地址近乎无限且价格低廉,所以 IPv6 代理能以低价大量出售;但许多网站完全不接受 IPv6 连接,即使接受,也会对 /64 地址块采用更严格的信誉评分。对于常规网页业务,IPv4 是更稳妥的默认选择。 ### 代理端口(https://proxshift.com/zh/glossary/proxy-port) 代理端口是代理监听的 TCP 端口。提供商通常在同一主机名上为每种协议运行一个端口,例如 HTTP(S) 使用 9000,SOCKS5 使用 9001;有时还会为粘性会话或国家/地区分配专用端口范围。端口不会改变出口或价格,只决定客户端使用哪种协议与网关通信。 ### IP 信誉(https://proxshift.com/zh/glossary/ip-reputation) IP 信誉是网站或安全服务商根据已知信息对某个 IP 地址作出的评估:由谁宣告该地址(消费者 ISP、运营商或托管公司)、它是否出现在滥用封禁名单中、近期是否产生过攻击、垃圾邮件或机器人流量,以及它看起来代表多少不同用户。来自低信誉地址的请求会遭遇质询、内容降级或封禁;住宅代理和移动代理地址的初始信誉高于托管网段。 ### 机器人检测(https://proxshift.com/zh/glossary/bot-detection) 机器人检测是网站用来区分自动化客户端与真人访客的一组技术,包括 IP 信誉和自治系统类别、请求速率与时序、TLS 和 HTTP 指纹、浏览器与设备指纹、JavaScript 质询以及行为信号。检测结论决定请求会收到正常页面、CAPTCHA、降级内容还是封禁。代理只能处理其中与 IP 有关的部分。 ### 浏览器指纹识别(https://proxshift.com/zh/glossary/browser-fingerprinting) 浏览器指纹识别会根据客户端暴露的属性组合来识别它,包括用户代理、屏幕尺寸、字体、Canvas 与 WebGL 渲染、时区、语言、已安装的功能,以及在传输层上 TLS 和 HTTP/2 协议栈的确切协商方式。这种组合通常具有唯一性,因此网站能够跨多个 IP 地址识别出同一套自动化程序。代理会更改 IP,却不会改变指纹。 ### CAPTCHA 验证码(https://proxshift.com/zh/glossary/captcha) CAPTCHA 是网站在无法确定访客是否为真人时提供的质询,例如图片谜题、以风险分析为依据的复选框,或不可见的 JavaScript 工作量证明。使用代理时,频繁出现 CAPTCHA 通常意味着出口信誉较低(托管网段、被过度使用的地址池地址)、请求速率超过网站的容忍范围,或客户端指纹被视为自动化程序。更换出口类型、降低请求速率并保持会话一致,比反复解题更能减少 CAPTCHA。 ### 速率限制(https://proxshift.com/zh/glossary/rate-limiting) 速率限制是网站对一个 IP 地址、会话或账号在特定时间内可发送请求数量设定的上限,通常通过 HTTP 429 响应、延迟或临时封禁来执行。当限制按地址计算时,代理可以发挥作用:在多个出口之间轮换,可将每个 IP 的上限转化为由你掌控的总请求额度。当限制按账号或指纹计算时,代理无济于事,更不能成为高频轰炸目标网站的借口。 ### 地理封锁(https://proxshift.com/zh/glossary/geo-blocking) 地理封锁是网站根据 IP 地址推断访客的地理位置,并据此限制或调整内容的做法:目录、价格、许可、可用性、广告和搜索结果都会因国家/地区而异,有些服务还会直接拒绝境外访客。使用目标国家/地区的代理出口,便能看到与当地用户完全相同的内容,这是价格监控、广告验证、SERP 跟踪和本地化测试的基础。 ### WebRTC 泄漏(https://proxshift.com/zh/glossary/webrtc-leak) 如果配置为通过代理传输网页流量的浏览器仍通过实时通信 API WebRTC 泄露设备真实的公网或本地 IP 地址,就会发生 WebRTC 泄漏。这是因为 WebRTC 会直接收集连接候选地址,而不经过代理。任何页面都能用 JavaScript 触发这一过程,因此,通过代理的浏览器会话能否保护隐私,取决于其 WebRTC 设置。 ### DNS 泄漏(https://proxshift.com/zh/glossary/dns-leak) 如果客户端使用自己的解析器而不是通过代理解析目标主机名,就会发生 DNS 泄漏。即使请求本身通过代理出口传输,本地网络或 ISP 仍会知道访问了哪些网站。使用 HTTP 代理时,主机名会发送给代理,不会发生泄漏;使用 SOCKS5 时,则取决于客户端是发送主机名(socks5h),还是先自行解析(socks5)。 ### IP 封禁名单(https://proxshift.com/zh/glossary/blocklists) IP 封禁名单是收录因垃圾邮件、攻击、恶意软件或代理使用而被举报的地址的数据库,由反滥用组织和安全服务商发布,供网站、邮件服务器和欺诈检测系统查询。无论当前如何使用,出现在相关名单中的出口都会遭遇质询或被拒绝。专用地址服务商会根据这些名单筛查库存;对于轮换地址池,服务商会淘汰被列入名单的出口。 ### 代理请求头泄漏(https://proxshift.com/zh/glossary/header-leakage) 代理请求头泄漏是指某些代理在转发请求时添加 X-Forwarded-For、Via、Forwarded 或 X-Real-IP 等 HTTP 请求头,从而暴露代理的使用情况或客户端真实地址。它只影响明文 HTTP,因为代理无法修改 HTTPS 请求的加密内容;这也是透明代理、匿名代理和高匿代理之间的关键区别。 ### 经同意提供的住宅 IP(https://proxshift.com/zh/glossary/consent-sourced-ips) 经同意提供的住宅 IP,是从明确同意共享带宽的设备所有者处获得的家庭网络出口。通常,应用程序会嵌入 SDK,向用户披露这种安排并支付报酬,而用户可随时退出。其他来源,例如僵尸网络和未披露的捆绑软件,既违法又不稳定。来源是选择住宅代理服务商时首先要考虑的道德与实际问题,因为它同时决定了合法性和地址池的稳定性。 ### 可接受使用政策(https://proxshift.com/zh/glossary/acceptable-use-policy) 可接受使用政策(AUP)以合同形式列出代理网络允许和禁止的用途:通常允许收集公开数据、验证和测试,禁止攻击、欺诈、垃圾信息、未经授权的访问、在缺乏法律依据时收集个人数据,以及任何在客户或目标所在地违法的行为。执行这项政策能够保护住宅代理出口背后的用户、地址池的信誉,并最终保障其他所有客户的成功率。 ### 静默封禁(https://proxshift.com/zh/glossary/silent-ban) 静默封禁(又称软封禁)是网站针对疑似自动化程序作出的一种看似成功的响应:返回 HTTP 200,但页面中的价格、列表或搜索结果缺失、过时、随机化,或被通用版本取代。它比 403 更难检测,因为请求表面上已经“成功”。只有监控内容本身,而非只检查状态码,才能可靠地发现这种封禁。 ### 按 GB 计费(https://proxshift.com/zh/glossary/per-gb-billing) 按 GB 计费根据通过代理的数据量收费,上下行流量均以 GB 计算,而不是按地址数量或租用时长计费。这是住宅和移动代理池的标准模式,因为其中的稀缺资源是家庭或蜂窝网络带宽。每 GB 单价通常会随购买量增加而下降;购买的流量可能仅在一定期限内有效,也有些提供商允许永久有效。 ### 流量计量(https://proxshift.com/zh/glossary/traffic-metering) 流量计量是提供商对按 GB 计费产品采用的核算方式,包括哪些字节会计入(请求与响应、请求头、TLS 开销)、统计哪个方向、采用何种粒度,以及排除哪些内容(失败连接、网关错误)。这些规则的细微差异在大规模使用时会显著影响账单,因此计量政策应明确写入文档,而不能只在客服答复中说明。 ### 用量阶梯(https://proxshift.com/zh/glossary/volume-tiers) 用量阶梯是随单次购买量增加而逐级下降的价格档位:在一次 100 GB 的购买中,每 GB 的价格低于单独购买 1 GB。价格档位通常由单次购买量决定,并适用于该次购买的全部数量。阶梯定价是不同客户购买同一产品却支付不同单价的主要原因,也是按实际用量比较提供商时首先应考察的因素。 ### 批量折扣(https://proxshift.com/zh/glossary/volume-discount) 当专用代理订单数量达到门槛时,批量折扣会降低每个地址的价格,例如从 10 个地址起优惠 5 %,从 500 个地址起优惠 25 %。它与按 GB 阶梯不同,适用于地址和租期,还可与较长租期的较低月费叠加;折扣按整笔订单计算,而非只对超过门槛的地址计算。 ### 按需付费代理(https://proxshift.com/zh/glossary/pay-as-you-go) 按需付费代理允许用户在需要时按所需数量购买,无需订阅、月度最低消费或定期重置的额度。用户向账号充值,再用余额购买 GB 流量或地址;另一种方式是订阅套餐,无论额度是否用完都按月收费。按需付费适合不规律的工作负载、测试,以及不愿为闲置容量付费的用户;如果套餐能提供更低费率,则更适合稳定的大流量需求。 ### 流量有效期(https://proxshift.com/zh/glossary/traffic-expiry) 流量有效期规则决定已购买但未使用的 GB 流量如何处理:许多提供商会在 30 至 90 天后或计费周期结束时将其清零,有些允许结转,少数则让流量无限期有效。对于用量不规律的工作负载,这项差异会决定实际账单,因为只有能随时间逐步使用流量时,购买大额低价档位才划算。 ### 预付钱包(https://proxshift.com/zh/glossary/prepaid-wallet) 预付钱包是客户预先充值的账号余额,通常以 USD 等法定货币计价,每次购买流量或地址都会从中扣款。它无需保存银行卡,也不会产生周期性扣款:只有预先充值后才能消费,余额就是客户的支出上限。钱包天然适合按需付费定价和加密货币充值;使用加密货币时,余额入账时便会锁定兑换汇率。 ### 最低充值额(https://proxshift.com/zh/glossary/minimum-top-up) 最低充值额是提供商接受的账号充值或首次购买产品的最小金额。它决定了用真实工作负载测试网络的成本;对于不提供免费试用的提供商,它取代了免费试用;使用加密货币付款时,金额还需足以承担网络费用。如果提供商不设余额有效期,未使用部分会继续保留在余额中。 ### 按租期计费(https://proxshift.com/zh/glossary/term-billing) 按租期计费是指在所选租用期限内,为每个专用地址支付固定价格,常见期限为 24 小时、30、60 或 90 天,流量可能不限量或采用共享流量池。租期越长,每月费用越低;地址在整个期限内保持不变,在到期前续订即可保留。专用 ISP、专用数据中心代理和专用移动设备均采用这种模式。 ### 位置区域定价(https://proxshift.com/zh/glossary/location-zone-pricing) 位置区域定价把国家/地区分组,并为专用产品设置价格系数,以反映各地区 ISP 地址段、机房托管和运营商套餐的成本;基准区域通常是美国。住宅和移动代理池的每 GB 流量通常在所有国家/地区采用相同价格,因为它按流量而非地址销售。 ### 共享流量池(https://proxshift.com/zh/glossary/traffic-pool) 共享流量池是分配给每个专用地址的月度额度,并在一笔订单的所有地址之间合并:十个地址各有 100 GB,便会共享一个 1,000 GB 的流量池,由实际产生流量的地址取用。它介于不限流量与严格的单地址上限之间,常用于数据中心代理。流量池耗尽后,提供商可能会限速、收取超额费用,或允许用户追加流量。 ### 加密货币付款(https://proxshift.com/zh/glossary/crypto-payment) 加密货币付款是向本次充值生成的地址发送某种币(Bitcoin、Ethereum、USDT、USDC、Litecoin、Monero、Solana、Tron、Dogecoin……),从而为代理账号充值;交易达到所需确认数后,余额会按当时汇率以 USD 入账。这种方式无需银行卡或银行账户,通常也无需身份证明,无法撤销付款,其成本为发送方支付的网络费用。有些提供商同时接受加密货币和银行卡,少数仅接受加密货币。 ### KYC(身份验证)(https://proxshift.com/zh/glossary/kyc) KYC 即“了解你的客户”,是指在销售服务前收集身份证明和企业信息。不同代理提供商的政策差异很大:有些要求所有账号验证,有些仅在消费超过门槛或购买特定产品时要求,还有些从不要求,而是通过执行可接受使用政策和处理滥用行为来管理风险。具体选择反映了提供商的付款方式、司法管辖区和目标客户,也决定客户购买带宽时必须提交多少个人数据。 ### 成功率(https://proxshift.com/zh/glossary/success-rate) 代理成功率是指通过代理发送的请求中,从目标网站获得可用响应的百分比,不包括连接失败、网关错误、封锁或质询。公开数据通常针对特定目标测量;除非测试方法一致,否则无法在不同提供商之间直接比较。对于自己的工作负载,真正有意义的数据,是使用你的客户端、按照你的请求速率访问你的目标时取得的成功率。 ### 延迟与响应时间(https://proxshift.com/zh/glossary/latency) 代理延迟是请求先经过网关、再从出口到达目标所增加的时间,由客户端到网关的网络距离、网关到出口的链路,以及出口本身的连接质量共同决定。使用有线上行链路的数据中心和 ISP 出口通常增加数十毫秒;住宅出口受家庭线路影响,往往增加数百毫秒;移动出口则随蜂窝网络变化。延迟对交互式流程很重要,对批量采集的影响则较小。 ### 吞吐量(https://proxshift.com/zh/glossary/throughput) 吞吐量是代理连接每秒能够传输的数据量,受路径上最慢链路限制:住宅出口取决于家庭网络的上传和下载速度,移动出口取决于蜂窝网络,数据中心和 ISP 出口则取决于设施的上行链路。总吞吐量会随并发增加,因此即使单个出口性能一般,代理池也能传输大量数据;处理大文件和媒体时,真正重要的是单连接吞吐量。 ### 网关错误代码(https://proxshift.com/zh/glossary/gateway-errors) 网关错误代码是由代理网关而非目标网站生成的 HTTP 状态码,表示请求无法转发:凭据缺失或错误、目标定位参数无效、余额耗尽、目标被禁止,或请求的位置没有可用出口。区分网关错误与目标网站错误,是任何故障排查的第一步,因为前者需要在网关这一侧解决。 ### HTTP 407 需要代理身份验证(https://proxshift.com/zh/glossary/http-407) HTTP 407 Proxy Authentication Required 是代理在请求未携带有效代理凭据时返回的状态:缺少 Proxy-Authorization 标头、用户名或密码错误,或仅配置白名单验证时来源 IP 未加入白名单。它相当于代理侧的 401,表示请求从未离开网关;修正凭据或白名单即可解决。 ### 目标超时(https://proxshift.com/zh/glossary/target-timeout) 目标超时是指目标未在网关或客户端允许的时间内完成连接或发送响应,请求因而收到网关的 504,或在客户端中抛出超时异常。通过住宅和移动出口访问大型页面时,较慢的家庭或蜂窝线路会提高超时概率;解决方法是设置合理的客户端超时、重试一次,并减轻请求负载。 ## 常见问题 ### 一般问题 **你们接受哪些付款方式?** 仅接受加密货币。您可以使用比特币、以太坊、USDT、USDC、莱特币、门罗币、Solana、波场币、狗狗币及其他主流币种为预付钱包充值,每笔购买都从该余额中支付。价格以美元显示;结账时会锁定应付的加密货币数量。 **我需要验证身份吗?** 不需要。只需一个电子邮箱地址即可创建账户。我们会严格执行可接受使用政策:不得利用本网络从事违法活动,也不得伤害提供网络连接的用户。 **未使用的流量会过期吗?** 不会。按 GB 购买的住宅和移动代理流量会一直保留在您的余额中,直至用完,无论需要一周还是一年。专用 ISP、数据中心和移动 IP 按您选择的期限提供服务,并可在到期前续订。 **四种代理类型有何区别?** 住宅 IP 来自真实家庭网络,最难被检测,按 GB 计费。ISP 代理是在数据中心托管、注册为住宅网络的地址:速度快、IP 固定且由您独享。数据中心代理速度最快、价格最低,适合对信任度要求不高的场景。移动代理使用由数千部真实手机共享的 4G/5G 运营商 IP,因此信任度最高。 **IP 池有多大?** 截至2026年9月,我们在 195 个国家/地区拥有 70M+ 个住宅 IP、4.9M+ 个 4G/5G 运营商移动 IP、550K+ 个 ISP 地址和 550K+ 个数据中心地址。与所有公开的 IP 池规模一样,住宅和移动代理的数据统计的是一个月内可用的不同地址,而非某一时刻同时在线的数量;ISP 和数据中心的数据则是订单分配所依据的库存量。真正影响任务效果的是目标国家/地区的 IP 池,因此请先少量购买并在当地测试:未使用的流量会保留在您的余额中。 **可以指定城市、州或 ISP 吗?** 可以。住宅代理可通过代理用户名中的参数指定国家/地区、州、城市和 ASN,无需重新生成任何内容即可切换位置。数据中心代理支持选择州和城市,ISP 代理支持选择国家/地区和城市,移动代理则可选择国家/地区和运营商。 **轮换会话和粘性会话如何工作?** 在轮换模式下,每个请求都会通过不同的 IP 发出。在粘性模式下,您可在用户名中附加会话 ID,在设定时长内保持使用同一 IP;如果该 IP 离线,系统会分配同一位置的替代 IP。 **支持哪些协议和身份验证方式?** 所有产品均支持 HTTP、HTTPS 和 SOCKS5。您可以使用用户名和密码进行身份验证,也可以将服务器 IP 加入白名单,无需凭据即可连接。 **是否提供免费试用或退款政策?** 我们不提供免费试用;最低充值金额为 $20,方便您在批量购买前先小额测试。如果产品未能按说明正常工作,请通过您的账户联系支持团队,我们将予以更换或将款项退至您的钱包余额。 ### 住宅代理 **什么是住宅代理?** 住宅代理通过互联网服务提供商分配给真实家庭设备的 IP 地址转发您的请求。在目标网站看来,您的流量与来自该家庭和城市的普通访客无异,因此住宅 IP 能通过数据中心地址无法通过的检测。 **住宅代理与 ISP、数据中心和移动代理有何区别?** 数据中心 IP 位于托管设施中:价格低、速度快,但容易被标记。ISP 代理是在数据中心硬件上托管、注册为住宅网络的地址:固定、快速且可信,按 IP 出售。移动代理使用多部手机共享的 4G/5G 运营商地址,最难被封锁。住宅代理介于两者之间:使用真实家庭 IP,支持轮换或粘性模式,按 GB 计费。 **住宅代理会被检测出来吗?** 被检测出的概率远低于数据中心 IP,因为这类地址属于消费级 ISP,行为也与普通家庭网络一致。但能否被检测仍取决于您的使用方式:使位置与账户匹配、保持会话一致并遵守合理的请求频率,与 IP 本身同样重要。 **IP 池中有多少个住宅 IP?** 截至2026年9月,住宅 IP 覆盖 195 个国家/地区,数量超过7000万(70M+)。与所有公开的 IP 池规模一样,该数据统计的是一个月内可用的不同家庭地址;由于家庭设备会不时上线和离线,某一秒同时在线的数量会更少,而这也能让地址保持新鲜。对您的项目而言,真正有用的是目标国家/地区和城市的 IP 池规模:批量购买前,请向当地连续发送一批轮换请求,并统计不同的出口 IP。 **同一个 IP 可以保持多久?** 在用户名中添加会话 ID 和保持时长后,网关可通过同一出口转发流量,最长保持 24 小时。如果该设备离线,您的下一个请求会获得同一位置的替代 IP,并从那里继续会话。 **流量如何计算?会过期吗?** 您需为通过网关的带宽付费,包括请求和响应流量,并以 GB 计量。购买的流量永不过期,每 GB 的价格由该笔购买达到的最高档位决定。 **是否有带宽或连接数限制?** 没有。您可以按需运行任意数量的并发连接和会话,只需为实际使用的流量付费。每月用量超过 10 TB 的项目可以申请定制费率。 **批量购买前该如何测试?** 最低充值 $20,购买 1 或 2 GB 后运行您的实际工作负载。未用完的流量会保留在余额中供以后使用,因此测试不会产生额外成本。 **使用住宅代理合法吗?** 在大多数司法管辖区,使用代理是合法的。通过代理进行的活动也必须合法:我们的可接受使用政策禁止攻击、欺诈、未经授权的访问,以及在您或目标所在地属于违法的任何行为;我们也会处理滥用举报。 ### ISP 代理 **什么是 ISP 代理?** ISP 代理也称静态住宅代理,是注册于消费级互联网服务提供商、但托管在数据中心硬件上的 IP 地址。网站会将其识别为家庭网络连接,而您可以同时获得有线上行链路的速度和可用性,以及租期内始终不变的地址。 **ISP 代理与住宅代理有何区别?** 住宅代理通过真实家庭设备路由并在资源池中轮换,按 GB 付费,单个 IP 最长可保持 24 小时。ISP 代理则是仅分配给您使用的固定地址,租期从 24 小时到 90 天,流量不限。需要广泛覆盖和轮换时选择住宅代理,需要稳定性和大流量时选择 ISP 代理。 **流量真的不限吗?** 是的。ISP 代理不计量流量,也没有限速阈值。您按 IP 和租期付费,并可在遵守可接受使用政策的前提下自由使用流量。 **有多少个 ISP IP 可用?** 截至 2026年9月,共有 550K+ 个静态住宅地址,覆盖 33 个国家/地区。这些地址是实际库存,并非轮换资源池:每个地址同一时间只分配给一位客户,订单将从该库存中分配。如价格区域所示,此类地址空间在美国最充足,在其他地区相对稀缺;下单时会确认您所选国家/地区和城市的库存。 **租期结束后能保留同一 IP 吗?** 在租期到期前续租,相同地址便会继续保留在您的列表中。未续租而到期的 IP 将返回库存,之后无法保证仍可获得。 **如果 IP 无法使用怎么办?** 请通过控制面板报告。如果该地址持续超过 24 小时无法访问,我们将在剩余租期内免费更换。 **可以选择城市吗?** 所有地区均可选择国家/地区;如果当地资源池支持,还可选择城市,结账时会显示。若需要在每个国家/地区精确选择城市,住宅代理更合适。 **为什么不同国家/地区的价格不同?** 因为地址空间的供应量不同。注册于 ISP 的地址段在美国供应充足,在其他地区较少,因此按地区分组定价:美国为基准,加拿大与西欧、欧洲其他地区,以及亚太地区和巴西,均按公开的倍数定价。下单前会显示分组价格。 **数量折扣如何计算?** 折扣会自动应用于整个订单:购买 10 个或以上 IP 优惠 5%,50 个或以上优惠 10%,100 个或以上优惠 15%;该折扣可与租期和地区价格优惠叠加。 **批量购买前可以测试吗?** 可以。选择 24 小时租期即可测试某一地区,美国每个 IP 的价格低至 $0.75,其他地区略高;最低充值金额 $20 足以测试多个 IP。 ### 数据中心代理 **什么是数据中心代理?** 数据中心代理是托管在商业设施中的 IP 地址,并非由面向消费者的 ISP 分配。它是速度最快、价格最低的代理类型,适合不会封禁托管网段的目标,或您能同时控制通信两端的场景。 **共享流量如何计算?** 订单中的每个 IP 都会为该订单的月度流量池增加 100 GB。任意 IP 的用量都会从流量池扣除,因此十个 IP 可共享 1000 GB,无论流量主要由哪个 IP 使用。流量池会在每个月度周期重置。 **流量池用尽后会怎样?** 速度会降低,直到下一个周期开始,让任务可以继续运行;您也可以随时在控制面板加购流量或更多 IP。 **IP 会与其他客户共享吗?** 不会。数据中心代理为独享资源:租期内,订单中的地址仅供您使用。 **有多少个数据中心 IP 可用?** 截至 2026年9月,共有 550K+ 个独享地址,覆盖 37 个国家/地区的 60 多个城市。这些地址是实际库存,并非轮换资源池:租期内,订单中的地址仅供您使用;订单均从该库存中分配,可购买一个到数千个 IP,并任意搭配城市。 **数据中心 IP 能用于防护严格的网站吗?** 通常不能。会对访问者进行风险评分的目标往往会标记托管网段。此类场景更适合使用住宅或移动代理;对于信任要求较低的大流量任务,数据中心 IP 更具优势。 **可以选择城市吗?** 可以。结账时可从 60 多个地点中为每个 IP 选择国家/地区、州和城市,同一订单可任意搭配多个地点。 **为什么不同地点的价格不同?** 不同地区的带宽和机房托管成本有所差异。北美为基准价格;欧洲、亚太、中东、拉丁美洲和非洲则按区域组及公布的倍数定价,下单前会显示具体价格。 **批量折扣如何计算?** 折扣会自动应用于整个订单:购买 10 个或以上 IP 优惠 5%,50 个或以上优惠 10%,100 个或以上优惠 15%;该折扣可与租期和地点价格优惠叠加。 **可以先测试某个地点吗?** 可以。在北美订购一个 30 天租期的 IP,价格低至 $0.80。先运行您的任务,确认效果符合要求后再扩大订单。 ### 移动代理 **什么是移动代理?** 移动代理会通过蜂窝运营商分配给真实 4G/5G 设备的 IP 地址转发您的流量。运营商让数千名用户共享同一个地址,因此网站对移动 IP 的容忍度远高于其他类型的 IP。 **应该选择轮换模式还是专属模式?** 轮换模式按 GB 计费,覆盖 100 多个国家/地区,每次请求都可获取新的运营商 IP,也可使用粘性会话,适合大规模数据采集。专属模式在整个租期内为您提供一台实体设备及其 IP,流量不限,并可按需轮换,适合账号管理以及任何需要呈现为同一部手机的场景。 **移动代理池有多大?** 截至 2026年9月,代理池在 100 多个国家/地区拥有 4.9M+ 个运营商 IP 地址,按一个月内可用的不同地址统计。一个移动 IP 并不等于一台设备:运营商会让许多用户共用一个地址,因此池中的每个 IP 背后都有大量真实手机。正是这种共享机制让移动 IP 极少被封禁,也使较小的代理池能够比其他网络发挥更大的作用。 **专属设备如何轮换 IP?** 轮换完全由您控制。调用轮换链接或 API 端点,即可按需从同一运营商获取新 IP;也可以设置定时器,让设备每隔几分钟自动轮换。 **可以选择运营商吗?** 可以。如果一个国家/地区有多个可用运营商,您可以进行选择。结账时会显示两种模式在各国家/地区的运营商列表。 **轮换流量会过期吗?** 不会。与住宅代理一样,移动代理的 GB 流量会一直保留在余额中,直到用完;您达到的价格档位适用于整笔购买。 **专属设备的流量不限吗?** 是的。专属设备按租期计费,而非按 GB 计费,也没有达到一定用量后限速的门槛。 **为什么专属设备按国家/地区定价?** 每台专属设备都是实体调制解调器,配有不限流量的运营商套餐,并在您选择的国家/地区托管和维护。各地的套餐、硬件和托管成本差异很大。美国和加拿大为基准价格;西欧和澳大利亚约低 20%,东欧、土耳其、巴西、南非和亚洲约为基准价格的一半。下单前会显示您所选分区的确切价格。轮换流量则在全球采用统一价格。 **移动代理速度较慢吗?** 移动代理的速度取决于蜂窝网络,足以满足网页浏览、应用使用和大多数数据采集任务,但低于有线数据中心连接。如果追求原始吞吐量,数据中心代理或 ISP 代理更合适。 **可以先测试再决定吗?** 可以。您可以花费 $5.24 购买 2 GB 轮换流量,也可以根据国家/地区,以 $5.90 起的价格租用专属设备 24 小时。 ### 对比 **可以在一个项目中混用多种代理网络吗?** 可以,大多数成熟的数据流程都会这样做。一个钱包可为四种网络付款;住宅代理和移动代理通过两个主机名共用一组凭据,专用地址则有各自的凭据。根据目标分配流量:开放来源使用数据中心代理,会评估访客的网站使用住宅代理,账号使用 ISP 代理,其他代理都无法通过时使用移动代理。 **哪个网络的代理池最大?代理池大小重要吗?** 住宅代理池大得多:截至 2026年9月,住宅代理有 70M+ 个地址,移动代理有 4.9M+ 个,ISP 代理有 550K+ 个,数据中心代理有 550K+ 个。对于轮换代理,代理池规模很重要:目标国家/地区的代理池越大,目标网站重复看到同一地址的频率就越低。ISP 和数据中心代理的数字含义不同:您租用的是固定地址,因此该数字表示订单可从中分配的库存,而非供您轮换的地址池。一个移动地址还代表运营商 NAT 后方的许多用户,因此较小的移动代理池也能发挥更大作用。 **哪个网络的单次请求成本最低?** 如果目标接受托管 IP 段,数据中心代理的成本低得多:每个地址每月 100 GB 的共享额度,使单次请求成本仅为几美分的一小部分。一旦目标屏蔽托管 IP 段,成本最低的网络就变成能让请求成功的网络,通常是住宅代理。 **哪个网络速度最快?** 数据中心代理和 ISP 代理最快:两者都通过主要交换中心设施中的有线上行链路连接。住宅代理会增加家庭线路的延迟,移动代理会增加蜂窝网络的延迟;两者都适合网页和 API,但不适合批量传输。 **社交平台必须使用移动代理吗?** 不一定。许多账号使用与账号位于同一国家/地区的 ISP 地址即可稳定运行,成本仅为移动代理的一小部分。当平台质疑住宅级地址、受众以移动端为主,或账号价值足以配备专用设备时,移动代理才是合适选择。 **无需修改代码就能切换代理网络吗?** 基本可以。住宅代理和移动代理只有主机名不同。专用地址使用各自的 ip:port,因此从配置读取代理的客户端只需修改一行即可切换。所有网络的会话 ID、协议和身份验证方式都相同。 **某种代理网络会更加私密吗?** 四种网络的网关行为相同:移除代理标头且不添加新标头,从不终止 TLS,并仅存储计费和处理滥用所需的数据。区别在于目标网站如何看待该地址,而非我们能看到什么。 ## 代理位置 199 个国家和地区在 https://proxshift.com/zh/locations 下设有页面。住宅代理流量在所有地区价格相同;ISP 代理(33 个国家/地区)、数据中心代理(37 个)和专用移动设备(20 个)按价格区定价。 - 提供 ISP 代理的国家/地区:美国、加拿大、英国、德国、法国、荷兰、西班牙、意大利、波兰、奥地利、比利时、瑞士、爱尔兰、瑞典、丹麦、挪威、芬兰、捷克、葡萄牙、罗马尼亚、立陶宛、拉脱维亚、希腊、匈牙利、斯洛伐克、克罗地亚、土耳其、澳大利亚、新西兰、日本、新加坡、香港、巴西 - 提供数据中心代理的国家/地区:美国、加拿大、墨西哥、巴西、阿根廷、智利、英国、爱尔兰、法国、德国、荷兰、比利时、西班牙、葡萄牙、意大利、瑞士、奥地利、波兰、捷克、瑞典、挪威、芬兰、丹麦、罗马尼亚、保加利亚、土耳其、以色列、阿拉伯联合酋长国、印度、新加坡、日本、韩国、香港、台湾、澳大利亚、新西兰、南非 - 提供专用移动设备的国家/地区:美国、加拿大、英国、德国、法国、荷兰、西班牙、意大利、奥地利、爱尔兰、澳大利亚、波兰、罗马尼亚、保加利亚、立陶宛、土耳其、巴西、南非、马来西亚、印度 - 列出城市定位的国家/地区:美国、英国、德国、法国、加拿大、荷兰、西班牙、意大利、巴西、日本、澳大利亚、印度、新加坡、波兰、墨西哥、土耳其、韩国、印度尼西亚、阿根廷、南非、阿拉伯联合酋长国、瑞典、瑞士、越南、比利时、奥地利、爱尔兰、葡萄牙、捷克、丹麦、挪威、芬兰、罗马尼亚、保加利亚、希腊、匈牙利、斯洛伐克、克罗地亚、立陶宛、拉脱维亚、新西兰、香港、台湾、以色列、智利、马来西亚、菲律宾、泰国、尼日利亚、埃及、沙特阿拉伯、哥伦比亚、秘鲁、乌克兰、巴基斯坦、孟加拉国、肯尼亚、摩洛哥、俄罗斯、中国 ## 公司 - 商号:ProxShift;网站:https://proxshift.com;文档即产品规范;支持服务通过账户内的工单提供(不设公开邮箱)。 - 法律文本:https://proxshift.com/zh/legal/terms、https://proxshift.com/zh/legal/acceptable-use、https://proxshift.com/zh/legal/privacy、https://proxshift.com/zh/legal/refunds - 状态:https://proxshift.com/zh/status(JSON:https://proxshift.com/zh/status.json)