# 407 Proxy Authentication Required: ý nghĩa và cách sửa lỗi

> HTTP 407 Proxy Authentication Required nghĩa là proxy từ chối hoặc không nhận được thông tin đăng nhập của bạn. Thông điệp lỗi chính xác trong Python, curl, Node và cách khắc phục.

- URL: https://crawlrelay.com/vi/docs/errors/407-proxy-authentication-required/
- Cập nhật lần cuối: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Mã trạng thái HTTP (4xx, lỗi phía client): thông báo chính xác trong từng công cụ, nguyên nhân có thể theo thứ tự, và cách sửa hiệu quả.

**Trả lời nhanh — 407 Proxy Authentication Required nghĩa là gì với proxy?**

**407 Proxy Authentication Required** nghĩa là proxy từ chối yêu cầu của bạn vì không nhận được thông tin đăng nhập hoặc thông tin sai. Trang web đích không bao giờ được liên hệ. Với các proxy residential của CrawlRelay, bạn hãy kiểm tra ba điều: tên đăng nhập đúng như trên bảng điều khiển, mật khẩu chính xác, và các ký tự đặc biệt phải được mã hóa URL. Gửi lặp lại cùng yêu cầu không bao giờ sửa được lỗi 407.

## 407 Proxy Authentication Required nhìn nhanh

| Thuộc tính | Giá trị |
| --- | --- |
| Lỗi | 407 Proxy Authentication Required |
| Loại | Mã trạng thái HTTP (4xx, lỗi phía client) |
| Gửi bởi | Cổng proxy, không phải trang web đích |
| Định nghĩa tại | RFC 9110, section 15.5.8 (headers: Proxy-Authenticate 11.7.1, Proxy-Authorization 11.7.2) |
| Thử lại? | Không. Cùng thông tin đăng nhập lại bị lỗi; bạn cần sửa trước |
| Kiểm tra trước tiên | Chạy kiểm tra curl dưới đây với tên đăng nhập thuần và không tham số hướng tới |

## 407 Proxy Authentication Required nghĩa là gì?

Lỗi 407 do proxy gửi, không phải trang web bạn muốn truy cập. RFC 9110 mô tả nó tương tự 401 của proxy: client phải xác thực với proxy trước khi tiếp tục. Proxy gửi header `Proxy-Authenticate` chỉ định phương thức xác thực chấp nhận, thường là `Basic`. Client trả lời với header `Proxy-Authorization` chứa `username:password` mã hóa Base64.

Với trang đích HTTPS, lỗi 407 trả về khi gửi yêu cầu `CONNECT` mở kết nối đường hầm. Do đó nhiều thư viện báo lỗi này thành lỗi đường hầm hay kết nối, không phải lỗi HTTP: phiên TLS với trang web chưa khởi tạo.

## a 407 trông như thế nào trong Python, curl, Node.js và trình duyệt?

Cùng một lỗi nhưng hiển thị khác nhau trên mỗi công cụ. Đây là các thông báo bạn nên tìm trong nhật ký của mình:

- **Python requests:** `ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))`
- **curl:** `curl: (56) CONNECT tunnel failed, response 407`
- **Scrapy:** `TunnelError: Could not open CONNECT tunnel with proxy ... [{'status': 407, 'reason': b'Proxy Authentication Required'}]`
- **Chrome, Playwright, Puppeteer:** `net::ERR_TUNNEL_CONNECTION_FAILED`, hoặc cửa sổ đăng nhập bật lên trên trình duyệt
- **Khách Node.js trên mục tiêu http://:** `Request failed with status code 407`

## Nguyên nhân gây ra a 407 là gì?

Khả năng đầu tiên là:

- **Sai tên đăng nhập hoặc mật khẩu.** Lỗi gõ, mật khẩu cũ sau khi đặt lại, hoặc dùng thông tin của người dùng phụ khác.
- **Ký tự đặc biệt không mã hóa.** Mật khẩu chứa `@`, `:`, `/` hoặc `#` làm hỏng URL `user:pass@host`. Bạn cần mã hóa phần trăm: `@` thành `%40`, `:` thành `%3A`.
- **Hậu tố hướng mục tiêu hỏng.** Các cổng đọc mục tiêu từ tên đăng nhập sẽ thấy tên đăng nhập dài. Lỗi gõ trong khóa hoặc mã quốc gia biến nó thành tên đăng nhập proxy không nhận ra.
- **Thông tin đăng nhập không được gửi ra ngoài mã của bạn.** Chrome bỏ qua tên đăng nhập và mật khẩu đặt trong `--proxy-server`. Puppeteer cần `page.authenticate()`, còn Selenium cần trình chuyển tiếp cục bộ.
- **Số dư tài khoản trống.** Kiểm tra tài khoản còn lưu lượng trước khi gỡ lỗi code.

## Làm sao để chẩn đoán a 407 từng bước?

1. Kiểm tra thông tin đăng nhập với curl không tham số hướng tới (lệnh dưới). Có dòng `HTTP/1.1 407` trong đầu ra chi tiết là xác nhận vấn đề.
2. Thêm dần từng tham số hướng tới, chạy lại kiểm tra mỗi lần.
3. Ghi lại URL proxy chương trình xây dựng, ẩn mật khẩu, và so sánh ký tự từng cái với bảng điều khiển.
4. Nếu curl được mà chương trình bạn lỗi, thư viện không gửi thông tin đăng nhập. Xem hướng dẫn sửa của công cụ bạn.

*Kiểm tra URL bị lỗi với curl (cổng HTTP, chi tiết)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## Làm sao để sửa a 407?

- **Mã hóa thông tin đăng nhập** bằng `urllib.parse.quote(value, safe='')` trong Python hoặc `encodeURIComponent()` trong JavaScript trước khi xây dựng URL.
- **Trình duyệt:** truyền `username` và `password` vào tuỳ chọn `proxy` của Playwright, gọi `page.authenticate()` trong Puppeteer, và dùng trình chuyển tiếp cục bộ cho Selenium. Xem hướng dẫn [Playwright](https://crawlrelay.com/vi/docs/playwright/) và [Puppeteer](https://crawlrelay.com/vi/docs/puppeteer/).
- **Biến môi trường:** nếu đặt `HTTPS_PROXY`, hãy trích dẫn toàn bộ giá trị trong shell để `@` và `$` không bị mất.
- **Đổi mật khẩu** trong bảng điều khiển nếu nghi ngờ rò rỉ, rồi cập nhật mọi trình crawl dùng nó.

*Python: tạo URL proxy với thông tin đăng nhập được mã hóa*

```python
from urllib.parse import quote

import requests

user = "USERNAME-country-us"
password = "p@ss:word/1"  # example containing special characters

# safe="" also encodes "/", "@" and ":" inside the credentials
proxy = "http://{}:{}@gw.crawlrelay.com:7777".format(
    quote(user, safe=""), quote(password, safe="")
)
proxies = {"http": proxy, "https": proxy}  # http:// for both keys

r = requests.get("https://api.ipify.org", proxies=proxies, timeout=(10, 30))
print(r.status_code, r.text)
```

*Playwright (Python): thông tin đăng nhập dưới dạng trường riêng biệt*

```python
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://gw.crawlrelay.com:7777",
        "username": "USERNAME-country-us",
        "password": "PASSWORD",
    })
    page = browser.new_page()
    response = page.goto("https://api.ipify.org")
    print(response.status, page.inner_text("body"))
    browser.close()
```

## Có nên thử lại sau a 407 không?

Không tự động thử lại lỗi 407. Thử cùng thông tin đăng nhập trả lại cùng kết quả, việc thử lại nhiều gây tràn log. Xem 407 là lỗi cấu hình: tạm dừng công việc, sửa thông tin đăng nhập, rồi chạy lại. Nếu 407 đột ngột xuất hiện trong công việc vài ngày không lỗi, có thể mật khẩu bị đổi hoặc người dùng phụ bị vô hiệu.

## 407 Proxy Authentication Required áp dụng thế nào với CrawlRelay?

Cổng CrawlRelay đọc tên đăng nhập và mật khẩu mỗi kết nối mới. Cấu hình hướng mục tiêu và phiên được mã trong tên đăng nhập, nên mật khẩu đúng vẫn lỗi khi hậu tố sai. Tạo tên đăng nhập bằng một hàm hỗ trợ và ghi log kết quả một lần khi bắt đầu. Trang [bắt đầu nhanh](https://crawlrelay.com/vi/docs/) có định dạng chính xác.

Gateway: `gw.crawlrelay.com`, cổng 7777 (HTTP, HTTPS qua CONNECT) và cổng 7778 (SOCKS5). Định dạng tên người dùng: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Tham khảo liên quan: [401 vs 407](https://crawlrelay.com/vi/docs/errors/401-unauthorized/) · [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/vi/docs/errors/err-tunnel-connection-failed/) · [Không thể kết nối proxy](https://crawlrelay.com/vi/docs/errors/cannot-connect-to-proxy/).

## 407 Proxy Authentication Required: các câu hỏi thường gặp của lập trình viên

### Lỗi 407 do trang web tôi đang crawl gửi à?

Không. 407 luôn do proxy ở giữa bạn và trang web gửi. Yêu cầu chưa tới trang web, nên trang web không thể đếm lưu lượng hay chặn bạn. Nếu trang cần đăng nhập, nó sẽ gửi 401 thay vì 407. Sửa thông tin đăng nhập proxy là 407 sẽ hết.

### Tại sao code tôi bị 407 mà curl dùng cùng proxy lại chạy được?

Thư viện của bạn không gửi thông tin đăng nhập hoặc gửi sai cách. Nguyên nhân thường là thông tin đánh vào cờ trình duyệt bị bỏ qua, biến môi trường mất ký tự đặc biệt, hay mật khẩu chưa mã hóa URL. In ra URL proxy code bạn tạo, ẩn mật khẩu, và so sánh với lệnh curl.

### Lỗi 407 có tính vào lưu lượng trong gói của tôi không?

Phản hồi 407 chỉ vài trăm byte, yêu cầu chưa tới đích, nên không tải trang nào. Chi phí nằm ở chỗ khác: crawler vô tình lặp lại 407 tốn thời gian và làm đầy log. Đặt 407 làm điểm dừng nghiêm ngặt khi xử lý lỗi.

## Các lỗi proxy khác trong tài liệu tham khảo này

- [401 Unauthorized vs 407](https://crawlrelay.com/vi/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/vi/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/vi/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/vi/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/vi/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/vi/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/vi/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/vi/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/vi/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/vi/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/vi/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/vi/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/vi/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/vi/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/vi/docs/errors/ssl-wrong-version-number/)

**Proxy dân cư với tài liệu bao gồm các trường hợp lỗi** CrawlRelay proxy dân cư từ 0,50 US$/GB, lưu lượng không bao giờ hết hạn. [Xem giá](https://crawlrelay.com/vi/pricing/) · [Bắt đầu nhanh](https://crawlrelay.com/vi/docs/)

---

CrawlRelay: CrawlRelay là dịch vụ proxy dân cư xoay vòng và proxy di động 4G/5G dành cho nhà phát triển, hỗ trợ scrapers và pipeline dữ liệu AI: traffic trả tiền theo nhu cầu không hết hạn từ 0,50 US$/GB, thanh toán bằng crypto, không cần tải lên ID. Không cần KYC — không cần ID, không chụp selfie, không giấy tờ.
