# Proxy dân cư cho việc tái hiện lỗi theo từng ISP

> Tái hiện lỗi mạng theo ISP: kiểm thử trang của bạn từ mạng và thành phố của khách hàng, với IP gia đình Mỹ cố định (sticky) từ 0,50 US$/GB. Không cần KYC, crypto.

- URL: https://broadbandproxies.com/vi/use-cases/network-bug-reproduction/
- Cập nhật lần cuối: 2026-10-18
- Publisher: Broadband Proxies (https://broadbandproxies.com)

Một số ticket chỉ có ý nghĩa trên một mạng. Nó lỗi trên mạng không dây cố định, hiện sai thành phố, hoặc một hình ảnh bị cũ trên một nhà cung cấp cáp. Một IP gia đình trên mạng đó biến ticket thành bài kiểm thử bạn có thể lặp lại.

**Trả lời nhanh — Làm thế nào để tôi tái hiện một lỗi chỉ xảy ra trên một nhà cung cấp internet?**

Tái hiện lỗi mạng nghĩa là lặp lại sự cố của khách hàng từ cùng loại kết nối: cùng nhà cung cấp, cùng thành phố, lý tưởng nhất là cùng giờ. **Broadband Proxies** cung cấp cho đội QA và hỗ trợ IP nhà tại Mỹ theo ASN và thành phố. Phiên sticky kéo dài tối đa 30 phút (IP có thể thay đổi sớm hơn, ví dụ nếu thiết bị gia đình mất kết nối). Gói 1 GB có giá 2,63 US$; không cần KYC và thanh toán bằng crypto.

## Tái hiện lỗi trong nháy mắt

| Thuộc tính | Giá trị |
| --- | --- |
| Các ticket điển hình | Chỉ lỗi trên fixed wireless, nhận diện sai thành phố hoặc bang, nội dung cũ trên một mạng, bị chặn là đáng ngờ |
| Nhắm mục tiêu | ASN cộng bang, thành phố hoặc ZIP, ví dụ `USERNAME-country-us-state-az-city-phoenix-asn-22773` (mạng Cox ở Phoenix) |
| Phiên sticky | tối đa 30 phút (IP có thể thay đổi sớm hơn, ví dụ nếu thiết bị gia đình mất kết nối) |
| Giao thức | HTTP, HTTPS (CONNECT) và SOCKS5 |
| Cần ghi log gì | Targeting đã yêu cầu, IP thoát, ASN gốc, khung giờ UTC, id phiên |
| Điều nó không thể sao chép | Router, Wi-Fi, thiết bị và cài đặt DNS cục bộ của khách hàng |
| Giá | 2,63 US$ cho 1 GB, 5,94 US$ cho 10 GB, sub-user theo dự án |

## Những lỗi đặc thù theo ISP nào có thể tái hiện bằng IP nhà?

Một IP thoát dân cư cho dịch vụ của bạn IP công cộng của mạng khách hàng. Mọi logic dựa trên IP đó sẽ hoạt động đúng như với khách hàng. Bốn loại ticket thường gặp.

- **Địa chỉ dùng chung trên fixed wireless.** T-Mobile Home Internet (AS21928) và Verizon 5G Home (AS22394) dùng carrier-grade NAT, nên nhiều hộ gia đình dùng chung một địa chỉ IPv4 công cộng. Giới hạn tốc độ theo IP khi đó có thể chặn cả một nhóm người dùng cùng lúc. T-Mobile báo cáo 8.450.000 khách hàng băng rộng 5G vào ngày 31 tháng 12 năm 2025. Verizon báo cáo 6.208.000 kết nối fixed wireless vào ngày 30 tháng 6 năm 2026.
- **Lỗi định vị địa lý.** Cơ sở dữ liệu IP có thể đặt một hộ gia đình sai thành phố hoặc bang. Công cụ tìm cửa hàng, dòng thuế và nội dung địa phương khi đó sẽ sai chỉ trên mạng đó.
- **Nhãn chủ sở hữu cũ.** Charter đã hoàn tất thương vụ Cox vào ngày 19 tháng 8 năm 2026. Các cơ sở dữ liệu có thể ghi AS22773 là Cox hoặc Charter tùy lần làm mới cuối, điều này có thể phá vỡ các quy tắc khớp theo tên ISP.
- **Khác biệt edge CDN.** Một CDN có thể trả lời người dùng Comcast và CenturyLink trong cùng thành phố từ các edge khác nhau. Tại Denver, FCC liệt kê Comcast ở mức 98,7% và CenturyLink ở mức 95,3% số hộ dân cư (dữ liệu ngày 31 tháng 12 năm 2025). Một object cũ hoặc lỗi TLS trên một edge chỉ xuất hiện trên một mạng.

## Điều gì một bài test proxy không thể tái hiện?

Proxy sao chép IP công cộng và mạng của nó, không phải toàn bộ kết nối. Router, Wi-Fi, tiện ích trình duyệt và thiết bị của khách hàng nằm ngoài tầm với. Hãy yêu cầu phiên bản trình duyệt và ảnh chụp màn hình để bù đắp những phần đó.

DNS là một giới hạn khác. Qua proxy, tên có thể được phân giải bởi mạng proxy thay vì resolver của ISP, nên lỗi chỉ liên quan DNS cần một phương pháp khác.

IPv6 cũng cần lưu ý. Đoạn kiểm tra bên dưới dùng api.ipify.org, chỉ trả lời qua IPv4. Nếu lỗi chỉ xuất hiện qua IPv6, bài test proxy có thể loại trừ hoặc xác nhận đường IPv4. Bạn vẫn cần một đường IPv6 gốc để xác nhận phần còn lại.

## Làm thế nào để tôi tái hiện một ticket trên một mạng?

1. **Thu thập thông tin về mạng** — Hỏi tên ISP, thành phố hoặc ZIP, thời điểm lỗi và nội dung lỗi. Một tra cứu như hướng dẫn IP thoát của chúng tôi cho ra ASN mà không cần chia sẻ mật khẩu hay quyền truy cập router.
2. **Tạo username cố định (sticky)** — Với khách hàng Cox ở Phoenix: USERNAME-country-us-state-az-city-phoenix-asn-22773-session-bug4521-ttl-30.
3. **Xác nhận và ghi log IP thoát** — Chạy script bên dưới. Nó ghi lại IP thoát, ASN gốc và prefix, sau đó theo dõi thay đổi IP.
4. **Tái hiện trong phiên** — Dùng cùng username trong trình duyệt hoặc test runner. Hoàn thành trong cửa sổ phiên, và ghi chú mọi thay đổi IP.
5. **Chạy một mạng đối chứng** — Lặp lại các bước trên một ASN khác trong cùng thành phố. Nếu lỗi biến mất, mạng là một phần nguyên nhân.

*Bản ghi phiên sticky cho một ticket (Python, requests)*

```python
# 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))
```

## Một bản ghi tái hiện nên chứa gì?

| Trường | Ví dụ | Vì sao điều đó quan trọng |
| --- | --- | --- |
| Targeting đã yêu cầu | `country-us-state-az-city-phoenix-asn-22773` | Đồng nghiệp có thể chạy lại cùng bài test sau này |
| IP thoát | 203.0.113.24 (dải tài liệu) | Tìm trong log server và CDN của bạn |
| ASN gốc và prefix | AS22773, từ RIPEstat | Chứng minh mạng, không chỉ yêu cầu |
| Khung giờ UTC | 2026-10-18 14:05 đến 14:30 UTC | Khớp các dòng log giữa các múi giờ |
| Id phiên và TTL | `bug4521`, 30 phút | Hiển thị IP có giữ nguyên hay không |
| Kết quả | HTTP 403 trên /checkout/ | Lỗi, tái hiện được hay không |
| Đối chứng | Cùng thành phố trên AS209: không lỗi | Tách nguyên nhân do mạng khỏi nguyên nhân do mã |

## Tôi được phép kiểm thử hệ thống của ai theo cách này?

Kiểm thử trang web, ứng dụng hoặc API của chính bạn, hoặc hệ thống mà chủ sở hữu đã yêu cầu bạn kiểm thử. Việc tái hiện một ticket thường chỉ cần vài request chứ không phải cả một đợt crawl. [Chính sách sử dụng hợp lý](https://broadbandproxies.com/vi/acceptable-use/) của chúng tôi cấm việc dội request và quét các hệ thống khi chưa có sự cho phép của chủ sở hữu.

Không đưa dữ liệu khách hàng vào username hay session id. Hãy dùng mã ticket như `bug4521`, tuyệt đối không dùng email hay tên. Các trang ngân hàng, chính phủ và cổng thanh toán bị chặn trên mọi gói, nên không thể kiểm thử trang của bên cung cấp thanh toán qua gateway.

## Một đội hỗ trợ cần bao nhiêu lưu lượng?

Một lần tái hiện thường chỉ gồm vài lần tải trang cộng với các bước kiểm tra trong script. 1 GB (2,63 US$) đủ cho một lần dùng thử trên một ISP và thành phố. 10 GB (5,94 US$) phù hợp cho đội QA với mỗi tester một sub-user. Lưu lượng không bao giờ hết hạn.

| Gói | Số lượng | Giá | Giá mỗi đơn vị |
| --- | --- | --- | --- |
| Dùng thử | 1 GB | 2,63 US$ | 2,63 US$/GB |
| Khởi đầu | 5 GB | 3,75 US$ | 0,75 US$/GB |
| Nhóm | 10 GB | 5,94 US$ | 0,59 US$/GB |

Trong mọi gói: Giao thức: HTTP, HTTPS, SOCKS5 · Nhắm mục tiêu: ASN (ISP), tiểu bang, thành phố và ZIP tại Mỹ; quốc gia ở nơi khác; độ khả dụng theo thành phố có thể khác nhau · Phiên: Xoay hoặc cố định (tối đa 30 phút) · Xác thực: Tên đăng nhập và mật khẩu, hoặc danh sách IP được phép (tối đa 10 IP) · Hạn dùng lưu lượng: Không bao giờ hết hạn

**Trước khi bạn thanh toán**

- Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn.
- Số dư chưa sử dụng sẽ giữ trên tài khoản của bạn và không bao giờ hết hạn. Khi một giao dịch mua có giá thấp hơn mức nạp tối thiểu, phần được thêm vào chỉ để đạt mức tối thiểu sẽ được hoàn lại theo yêu cầu gửi bộ phận hỗ trợ trong vòng 30 ngày sau khi thanh toán, bằng USDT hoặc USDC, miễn là phần đó chưa được sử dụng. Phần còn lại của số dư không được hoàn trả, trừ khi pháp luật yêu cầu.
- Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút

## Tái hiện lỗi mạng: câu hỏi

### Tôi có thể giữ nguyên một IP cho cả bài test không?

Có, trong một phiên sticky: tối đa 30 phút (IP có thể thay đổi sớm hơn, ví dụ nếu thiết bị gia đình mất kết nối). Thêm `-session-<id>-ttl-<minutes>` vào cuối username và dùng lại cùng id đó trong mọi công cụ. Ghi lại IP đầu ra lúc bắt đầu và lúc kết thúc. Nếu IP đã thay đổi, hãy ghi rõ trong ticket, vì IP mới có thể nằm trên một prefix khác.

### Tôi có thể tái hiện lỗi carrier-grade NAT không?

Thường là có. Nhắm tới AS21928 cho T-Mobile Home Internet hoặc AS22394 cho Verizon 5G Home. Các IP đầu ra trên những mạng đó thường dùng chung địa chỉ với người dùng khác, giống như đường mạng của khách hàng. Broadband Proxies không thể cho biết một IP đầu ra cụ thể là gateway tại nhà hay điện thoại, nên hãy ghi ASN thay vì loại thiết bị.

### Bài test có bao gồm IPv6 không?

Không, như ví dụ ở đây. Ví dụ kiểm tra IP đầu ra bằng api.ipify.org, mà dịch vụ này chỉ trả lời qua IPv4. Nếu lỗi của khách hàng chỉ xảy ra qua IPv6, bài test proxy cho bạn biết đường IPv4 có ổn hay không. Hãy xác nhận phía IPv6 từ một kết nối IPv6 gốc.

### Tôi nên hỏi khách hàng những gì?

Tên ISP, thành phố hoặc ZIP, thời điểm lỗi, trình duyệt và thông báo lỗi chính xác. ASN là hữu ích nhất: một trang tra cứu sẽ hiển thị nó mà không cần đăng nhập. Tuyệt đối không hỏi mật khẩu, quyền truy cập router hay điều khiển từ xa thiết bị của khách hàng. Những thứ đó không cần thiết để kiểm thử phía mạng.

### Nhiều tester có thể dùng chung một gói không?

Có. Tạo một sub-user cho mỗi tester hoặc mỗi dự án. Mỗi sub-user có thông tin đăng nhập, hạn mức lưu lượng và tổng mức sử dụng riêng. Bạn cũng có thể cho phép tối đa 10 IP thay vì dùng mật khẩu, phù hợp với các CI runner có địa chỉ cố định. Lưu lượng đều lấy từ gói duy nhất bạn đã mua.

### Nếu không có IP nào online trên ASN đó ở thành phố đó thì sao?

Độ khả dụng của ASN thay đổi theo mạng, thành phố và thời điểm trong ngày; trang thanh toán hiển thị những gì đang online, và không công bố số lượng IP cho từng ISP. Bỏ ZIP trước, rồi đến thành phố, và giữ ASN cùng tiểu bang. Một nhà cung cấp nhỏ hơn có thể chỉ online vào một số giờ nhất định, nên hãy thử lại vào đúng thời điểm trong ngày mà khách hàng báo lỗi. Ghi trong ticket mức độ nhắm mục tiêu mà bạn đã dùng.

---

Broadband Proxies: Broadband Proxies là nhà cung cấp proxy dân cư US với nhắm mục tiêu theo ISP (ASN) và thành phố, thanh toán bằng crypto không cần tải ID lên: chọn Comcast, Spectrum, AT&T, Verizon Fios hoặc 30 mạng US khác, cùng bang, thành phố và ZIP, tính phí theo GB.
