无需 KYC — 无需身份证、无需自拍、无需文件 · 每个套餐均支持 ASN、州、城市和 ZIP 定向 · 使用加密货币从 US$25 支付
语言: 简体中文
开始使用

用例 · QA 和支持

用于 ISP 特定 Bug 复现的住宅代理

有些工单只在某个网络上才有意义。在固定无线上失败,显示错误的城市,或某个有线电视提供商上的图像过期。该网络上的住宅 IP 将工单转变为可重复的测试。

最后更新: · 3 分钟阅读

快速回答

如何复现只在某个互联网服务提供商上出现的 bug?

网络 bug 复现是指在与客户相同类型的连接上重现其故障:同一提供商、同一城市,最好同一时段。Broadband Proxies 按 ASN 和城市为 QA 与支持团队提供美国住宅 IP。粘性会话持续 最长 30 分钟(IP 可能提前更换,例如家庭设备离线时)。1 GB 套餐价格为 US$2.63;无需 KYC,支持加密货币支付。

Bug 复现一览

常见工单仅在固定无线网络上失败、检测到错误的城市或州、某一网络上内容过期、被标记为可疑而拦截
定向ASN 加州、城市或 ZIP,例如 USERNAME-country-us-state-az-city-phoenix-asn-22773(凤凰城的 Cox 网络)
粘性会话最长 30 分钟(IP 可能提前更换,例如家庭设备离线时)
协议HTTP、HTTPS(CONNECT)和 SOCKS5
需要记录的内容请求的定位、出口 IP、来源 ASN、UTC 时间窗口、会话 ID
无法复制的内容客户的路由器、Wi-Fi、设备和本地 DNS 设置
价格US$2.63 1 GB,US$5.94 10 GB,每个项目可创建子用户

家庭 IP 能复现哪些 ISP 特有的 bug?

住宅出口为你的服务提供客户网络的公网 IP。任何基于该 IP 的逻辑都会表现得与客户处一致。四类工单经常出现。

  • 固定无线网络上的共享地址。 T-Mobile Home Internet(AS21928)和 Verizon 5G Home(AS22394)使用运营商级 NAT,因此许多家庭共享一个公网 IPv4 地址。按 IP 的速率限制可能一次性封掉一整组用户。T-Mobile 报告 2025 年 12 月 31 日有 8,450,000 个 5G 宽带客户。Verizon 报告 2026 年 6 月 30 日有 6,208,000 个固定无线连接。
  • 地理位置错误。 IP 数据库可能把家庭定位到错误的城市或州。门店查找、税费计算和本地内容随后只在该网络上出错。
  • 过时的归属标签。 Charter 于 2026 年 8 月 19 日完成对 Cox 的收购。数据库可能根据最后刷新时间将 AS22773 标为 Cox 或 Charter,这会破坏按 ISP 名称匹配的规则。
  • CDN 边缘节点差异。 CDN 可能从不同边缘节点响应同一城市中的 Comcast 用户和 CenturyLink 用户。在丹佛,FCC 列出 Comcast 覆盖 98.7%、CenturyLink 覆盖 95.3% 的住宅单元(2025 年 12 月 31 日数据)。某一边缘节点上的过期对象或 TLS 错误只会在一个网络上出现。

代理测试无法复现什么?

代理复制的是公网 IP 及其网络,而不是整个连接。客户的路由器、Wi-Fi、浏览器扩展和设备无法触及。请客户提供浏览器版本和截图以覆盖这些方面。

DNS 是另一个限制。通过代理时,域名可能由代理网络而非 ISP 的解析器解析,因此仅涉及 DNS 的 bug 需要其他方法。

IPv6 也需注意。下面的检查使用 api.ipify.org,它仅通过 IPv4 响应。如果 bug 仅在 IPv6 下出现,代理测试可以排除或确认 IPv4 路径。你仍需要一条原生 IPv6 线路来确认其余部分。

如何在某一网络上复现工单?

  1. 收集网络信息

    询问 ISP 名称、城市或 ZIP、故障时间及错误文本。像我们的出口 IP 指南这样的查询可以获取 ASN,无需共享密码或路由器访问权限。

  2. 构建一个粘性用户名

    对于凤凰城的 Cox 客户:USERNAME-country-us-state-az-city-phoenix-asn-22773-session-bug4521-ttl-30。

  3. 确认并记录出口

    运行下面的脚本。它会记录出口 IP、来源 ASN 和前缀,然后监控 IP 变化。

  4. 在会话内复现

    在浏览器或测试运行器中使用相同的用户名。在会话窗口内完成,并记录任何 IP 变化。

  5. 运行对照网络

    在同一城市的另一个 ASN 上重复步骤。如果 bug 消失,说明网络是原因之一。

工单的粘性会话记录(Python,requests)
# Keep one sticky exit for a bug reproduction and write a record for the ticket.
import json
import time
from datetime import datetime, timezone

import requests

GATEWAY = "gw.broadbandproxies.com"
PORT = 7777
TARGET = "country-us-state-az-city-phoenix-asn-22773"  # Cox network in Phoenix
SESSION = "bug4521"
USERNAME = "USERNAME-" + TARGET + "-session-" + SESSION + "-ttl-30"
PASSWORD = "PASSWORD"

proxy = "http://%s:%s@%s:%d" % (USERNAME, PASSWORD, GATEWAY, PORT)
proxies = {"http": proxy, "https": proxy}


def now():
    return datetime.now(timezone.utc).isoformat(timespec="seconds")


def exit_ip():
    r = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
    r.raise_for_status()
    return r.json()["ip"]


def origin(ip):
    r = requests.get(
        "https://stat.ripe.net/data/prefix-overview/data.json",
        params={"resource": ip, "sourceapp": "bug-repro"},
        timeout=30,
    )
    r.raise_for_status()
    data = r.json()["data"]
    return [a["asn"] for a in data.get("asns", [])], data.get("resource")


ip = exit_ip()
asns, prefix = origin(ip)
record = {"target": TARGET, "session": SESSION, "start_utc": now(), "exit_ip": ip,
          "origin_asns": asns, "prefix": prefix, "ip_changes": []}

# Reproduce the bug in the browser now, with the same username.
# This loop only checks every 5 minutes that the exit IP has not moved.
for _ in range(5):
    time.sleep(300)
    current = exit_ip()
    if current != ip:
        record["ip_changes"].append({"time_utc": now(), "new_ip": current,
                                     "origin_asns": origin(current)[0]})
        ip = current

record["end_utc"] = now()
print(json.dumps(record, indent=2))

复现记录应包含什么?

字段示例为什么重要
请求的定位country-us-state-az-city-phoenix-asn-22773同事之后可以运行相同的测试
出口 IP203.0.113.24(文档范围)在服务器和 CDN 日志中搜索它
来源 ASN 和前缀AS22773,来自 RIPEstat证明是网络问题,而不仅仅是请求
UTC 时间窗口2026-10-18 14:05 至 14:30 UTC跨时区匹配日志行
会话 ID 和 TTLbug4521,30 分钟显示 IP 是否保持不变
结果/checkout/ 上出现 HTTP 403该 bug 是否被复现
对照AS209 上的同一城市:无错误将网络原因与代码原因区分开

我可以用这种方式测试哪些系统?

测试你自己的网站、应用或 API,或所有者已授权你测试的系统。复现一个工单应该只需少量请求,而不是爬取。我们的可接受使用政策禁止对未经所有者许可的系统进行洪水攻击和扫描。

不要在用户名和会话 ID 中包含客户数据。使用工单号,例如 bug4521,绝不要使用电子邮件或姓名。银行、政府和支付门户网站已在所有套餐中被屏蔽,因此无法通过网关测试支付提供商的页面。

支持团队需要多少流量?

一次复现通常只需几次页面加载,加上脚本中的检查。1 GB(US$2.63)涵盖在一个 ISP 和城市上的试用。10 GB(US$5.94)适合每位测试人员一个子用户的 QA 团队。流量永不过期。

测试

1 GB

US$2.63

US$2.63/GB

  • 先检查一个城市的一个 ISP
  • ASN、州、城市和 ZIP 定向
  • HTTP、HTTPS、SOCKS5
选择 1 GB

入门

5 GB

US$3.75

US$0.75/GB

  • 对比两到三个网络
  • 轮换或粘性会话
  • 流量永不过期
选择 5 GB

团队

10 GB

US$5.94

US$0.59/GB

  • 跨多个 ISP 定期检查
  • 每个项目的子用户
  • 流量永不过期
选择 10 GB

每个套餐都包含: 协议: HTTP、HTTPS、SOCKS5 · 定向: 美国境内支持 ASN(ISP)、州、城市和 ZIP;其他地区支持国家;城市可用性因地区而异 · 会话: 轮换或粘性(最长 30 分钟) · 身份验证: 用户名和密码,或 IP 白名单(最多 10 个 IP) · 流量有效期: 永不过期

网络 bug 复现:常见问题

我可以在整个测试期间保持同一 IP 吗?

可以,在粘性会话内:最长 30 分钟(IP 可能提前更换,例如家庭设备离线时)。将 -session-<id>-ttl-<minutes> 放在用户名末尾,并在每个工具中复用同一 id。在开始时和结束时记录出口 IP。如果发生了变化,请在工单中说明,因为新 IP 可能位于不同的前缀。

我可以复现运营商级 NAT 的 bug 吗?

通常可以。针对 T-Mobile Home Internet 定位 AS21928,或针对 Verizon 5G Home 定位 AS22394。这些网络上的出口通常与其他用户共享地址,就像客户的线路一样。Broadband Proxies 无法判断给定出口是家庭网关还是手机,因此请记录 ASN 而非设备类型。

测试是否覆盖 IPv6?

如这里所示,不覆盖。示例使用 api.ipify.org 检查出口,而该服务仅通过 IPv4 响应。如果客户的故障仅在 IPv6 下发生,代理测试会告诉你 IPv4 路径是否正常。请从原生 IPv6 连接确认 IPv6 侧的情况。

我应该向客户询问什么?

ISP 名称、城市或 ZIP、故障发生时间、浏览器和确切错误。ASN 最有帮助:查询页面无需任何登录即可显示。绝不要索取密码、路由器访问权限或对客户设备的远程控制。测试网络侧不需要这些。

多个测试人员可以共享一个套餐吗?

可以。为每位测试人员或项目创建一个子用户。每个子用户都有自己的凭据、流量上限和用量总计。你还可以允许最多 10 个 IP 代替密码,这适合具有固定地址的 CI runner。流量来自你购买的那一个套餐。

如果该城市该 ASN 上没有在线 IP 怎么办?

ASN 可用性因网络、城市和一天中的时段而异;结账时显示在线可用的选项,且不公布每个 ISP 的 IP 数量。先去掉 ZIP,再去掉城市,保留 ASN 和州。较小的提供商可能只在某些时段在线,因此在客户报告的时间点重试。请在工单中注明你使用的定位级别。

1 GB US$2.63 · 含 ASN · 无需 KYC

开始使用