# ProxyError: 'Không thể kết nối tới proxy' trong Python và Node.js

> requests.exceptions.ProxyError 'Không thể kết nối tới proxy' giải thích: đọc nguyên nhân lồng nhau (từ chối, timeout, DNS, 407, 502) và áp dụng sửa thích hợp.

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

Lỗi thư viện client (Python, Node.js): 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 — Cannot connect to proxy (ProxyError) nghĩa là gì với proxy?**

**'Không thể kết nối tới proxy'** là lỗi bọc: requests và urllib3 của Python đưa nguyên nhân thật vào bên trong nó. Đọc nguyên nhân sâu nhất. 'Kết nối bị từ chối' hoặc hết thời gian chờ nghĩa là vấn đề với host, port hoặc mạng; 'Không phân giải được' nghĩa là DNS; 'Kết nối tunnel thất bại: 407' nghĩa là lỗi xác thực. Với CrawlRelay, mỗi lỗi này có cách sửa chỉ trong một dòng.

## Cannot connect to proxy (ProxyError) nhìn nhanh

| Thuộc tính | Giá trị |
| --- | --- |
| Lỗi | Cannot connect to proxy (ProxyError) |
| Loại | Lỗi thư viện client (Python, Node.js) |
| Gửi bởi | Client HTTP của bạn, trước hoặc trong khi nói chuyện với proxy |
| Định nghĩa tại | Library error; read the nested cause for the real reason |
| Thử lại? | Phụ thuộc nguyên nhân lồng nhau |
| Kiểm tra trước tiên | Đọc ngoại lệ sâu nhất: bị từ chối, timeout, phân giải tên hoặc mã trạng thái |

## Cannot connect to proxy (ProxyError) nghĩa là gì?

urllib3 ném ra một `ProxyError` cho mỗi lỗi liên quan đến proxy, và requests sẽ truyền lỗi đó lên. Thông tin hữu ích nằm trong ngoại lệ lồng nhau, mà traceback hiển thị ở cuối dòng dài.

Các client Node.js hành xử khác nhau: họ báo lỗi socket trực tiếp, như `ECONNREFUSED` hoặc `ETIMEDOUT`, thường không nói rõ địa chỉ là proxy.

## 'Cannot connect to proxy' 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:

- **Từ chối:** `ProxyError('Unable to connect to proxy', NewConnectionError(... Connection refused))`
- **DNS:** `NameResolutionError(... Failed to resolve ...)` bên trong `ProxyError`
- **Xác thực:** `OSError('Tunnel connection failed: 407 Proxy Authentication Required')`
- **Lỗi gateway:** `OSError('Tunnel connection failed: 502 Bad Gateway')`
- **Node.js:** `Error: connect ECONNREFUSED`, `ETIMEDOUT` hoặc `ENOTFOUND`, theo sau là địa chỉ proxy

## Nguyên nhân gây ra 'Cannot connect to proxy' là gì?

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

- **Sai host hoặc port** trong URL proxy.
- **Thiếu scheme:** `host:port` không có `http://` được phân tích theo cách bất ngờ bởi một số thư viện.
- **Bị chặn lưu lượng ra ngoài** trên mạng hoặc server của bạn.
- **Lỗi xác thực hoặc gateway** xuất hiện trong bước CONNECT, bọc trong cùng ngoại lệ.
- **Biến môi trường** như `HTTPS_PROXY` trỏ tới proxy cũ và ghi đè mã của bạn.

## Làm sao để chẩn đoán 'Cannot connect to proxy' từng bước?

1. In ra đầy đủ ngoại lệ và đọc nguyên nhân lồng cuối cùng.
2. In ra `requests.utils.get_environ_proxies(url)` hoặc các biến `HTTP_PROXY`, `HTTPS_PROXY` và `NO_PROXY` để xem còn cấu hình gì.
3. Chạy thử curl bên dưới từ cùng máy.
4. So sánh nguyên nhân với danh sách sửa lỗi bên dưới.

*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 'Cannot connect to proxy'?

- **Từ chối hoặc hết thời gian:** sửa host và port, hoặc mở lưu lượng ra ngoài đến gateway.
- **Không phân giải được:** kiểm tra DNS trên máy; thử host với `nslookup`.
- **407:** sửa và mã hóa URL cho thông tin xác thực. Xem [407 Proxy Authentication Required](https://crawlrelay.com/vi/docs/errors/407-proxy-authentication-required/).
- **502 hoặc 504:** thử lại với exit mới. Xem [502](https://crawlrelay.com/vi/docs/errors/502-bad-gateway/) và [504](https://crawlrelay.com/vi/docs/errors/504-gateway-timeout/).
- **Proxy biến môi trường không mong muốn:** đặt `session.trust_env = False` trong requests, hoặc xóa biế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)
```

## Có nên thử lại sau 'Cannot connect to proxy' không?

Chỉ thử lại với nguyên nhân tầng mạng có thể thay đổi: hết thời gian và lỗi gateway như 502 hoặc 504. Kết nối bị từ chối, lỗi DNS hoặc 407 sẽ lặp lại cho đến khi bạn thay đổi cấu hình, nên xử lý như lỗi nghiêm trọng.

## Cannot connect to proxy (ProxyError) áp dụng thế nào với CrawlRelay?

Với CrawlRelay, URL proxy là `http://USERNAME:PASSWORD@` theo sau là host gateway và port HTTP liệt kê dưới đây, dùng chung cho HTTP và HTTPS. Dùng URL `http://` giống nhau cho cả khóa `http` và `https` trong requests: scheme xác định giao thức nói chuyện với proxy, không phải với website.

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: [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/vi/docs/errors/ssl-wrong-version-number/) · [407](https://crawlrelay.com/vi/docs/errors/407-proxy-authentication-required/) · [Hướng dẫn Python](https://crawlrelay.com/vi/docs/python/).

## Cannot connect to proxy (ProxyError): các câu hỏi thường gặp của lập trình viên

### 'Max retries exceeded with url' có nghĩa gì với proxy?

Nó nghĩa là urllib3 đã từ bỏ sau khi dùng hết số lần thử, và nguyên nhân thật sẽ nằm trong phần 'Caused by' của thông báo. Với proxy, phần đó thường là ProxyError có nguyên nhân lồng: kết nối bị từ chối, hết thời gian, lỗi phân giải tên hoặc trạng thái tunnel như 407.

### Tại sao requests lại dùng proxy mà tôi không cấu hình?

requests mặc định đọc biến môi trường `HTTP_PROXY`, `HTTPS_PROXY` và `NO_PROXY`, và trên Windows nó còn đọc cài đặt proxy hệ thống. Giá trị còn sót lại sẽ ghi đè mong đợi của bạn. Gán `session.trust_env = False` hoặc truyền proxy rõ ràng ở mỗi yêu cầu.

### Tôi có phải viết http:// hay https:// trước địa chỉ proxy?

Viết `http://` cho proxy HTTP, dù website dùng HTTPS. Scheme mô tả cách client nói chuyện với proxy. Viết `https://` khiến phiên bản urllib3 mới hơn bắt đầu TLS với proxy, gây lỗi SSL trên port proxy HTTP thường.

## 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ờ.
