# ProxyError: 'Nie można połączyć się z proxy' w Python i Node.js

> requests.exceptions.ProxyError 'Nie można połączyć się z proxy' — przeczytaj ukrytą przyczynę (odmowa, timeout, DNS, 407, 502) i zastosuj odpowiednią poprawkę.

- URL: https://crawlrelay.com/pl/docs/errors/cannot-connect-to-proxy/
- Ostatnia aktualizacja: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Błąd biblioteki klienta (Python, Node.js): dokładny komunikat w każdym narzędziu, możliwe przyczyny w kolejności oraz działające rozwiązanie.

**Szybka odpowiedź — Co oznacza Cannot connect to proxy (ProxyError) w kontekście proxy?**

**'Nie można połączyć się z proxy'** to błąd opakowujący: biblioteki requests i urllib3 w Pythonie zawierają w nim prawdziwy powód. Przeczytaj najgłębszą przyczynę. 'Połączenie odrzucone' lub timeout oznacza problem z hostem, portem lub siecią; 'Nie udało się rozwiązać' oznacza DNS; 'Nieudane połączenie tunelu: 407' oznacza błędne dane uwierzytelniające. W CrawlRelay każdy z nich da się naprawić w jednym zdaniu.

## Cannot connect to proxy (ProxyError) w skrócie

| Atrybut | Wartość |
| --- | --- |
| Błąd | Cannot connect to proxy (ProxyError) |
| Typ | Błąd biblioteki klienta (Python, Node.js) |
| Wysłane przez | Twój klient HTTP, przed lub podczas rozmowy z proxy |
| Zdefiniowano w | Library error; read the nested cause for the real reason |
| Spróbować ponownie? | Zależy od ukrytej przyczyny |
| Najpierw sprawdź | Przeczytaj najgłębszy wyjątek: odmowa, timeout, rozpoznanie nazwy lub kod statusu |

## Co oznacza Cannot connect to proxy (ProxyError)?

urllib3 zgłasza `ProxyError` dla każdej awarii związanej z proxy, a requests przekazuje ten błąd dalej. Przydatne informacje są w zagnieżdżonym wyjątku, który traceback pokazuje na końcu długiej linii.

Klienci Node.js zachowują się różnie: raportują błąd gniazda bezpośrednio, np. `ECONNREFUSED` lub `ETIMEDOUT`, często nie mówiąc, że adres to proxy.

## Jak wygląda 'Cannot connect to proxy' w Python, curl, Node.js i przeglądarkach?

Ten sam błąd wyświetla się inaczej w każdym narzędziu. Oto komunikaty, które warto wyszukać w logach:

- **Odrzucone:** `ProxyError('Unable to connect to proxy', NewConnectionError(... Connection refused))`
- **DNS:** `NameResolutionError(... Failed to resolve ...)` w `ProxyError`
- **Dane uwierzytelniające:** `OSError('Tunnel connection failed: 407 Proxy Authentication Required')`
- **Błąd bramy:** `OSError('Tunnel connection failed: 502 Bad Gateway')`
- **Node.js:** `Error: connect ECONNREFUSED`, `ETIMEDOUT` lub `ENOTFOUND`, a potem adres proxy

## Co powoduje 'Cannot connect to proxy'?

Najczęściej na początku:

- **Zły host lub port** w URL proxy.
- **Brak schematu:** `host:port` bez `http://` jest nieoczekiwanie interpretowane przez niektóre biblioteki.
- **Zablokowany ruch wychodzący** w Twojej sieci lub na serwerze.
- **Błędy uwierzytelniania lub bramy** pojawiające się przy kroku CONNECT, opakowane w ten sam wyjątek.
- **Zmienna środowiskowa** taka jak `HTTPS_PROXY` wskazująca na stare proxy i nadpisująca konfigurację.

## Jak krok po kroku zdiagnozować 'Cannot connect to proxy'?

1. Wypisz pełny wyjątek i przeczytaj ostatnią zagnieżdżoną przyczynę.
2. Wypisz zmienne `requests.utils.get_environ_proxies(url)` lub `HTTP_PROXY`, `HTTPS_PROXY` i `NO_PROXY` aby zobaczyć, co jeszcze jest ustawione.
3. Uruchom poniższy test curl na tym samym urządzeniu.
4. Dopasuj przyczynę do listy rozwiązań poniżej.

*Przetestuj nie działający URL za pomocą curl (port HTTP, tryb verbose)*

```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
```

## Jak naprawić 'Cannot connect to proxy'?

- **Odrzucone lub przeterminowane:** popraw host i port albo otwórz ruch wychodzący do bramy.
- **Nie udało się rozwiązać:** sprawdź DNS na maszynie; spróbuj hosta z `nslookup`.
- **407:** popraw i zakoduj w URL dane uwierzytelniające. Zobacz [407 Proxy Authentication Required](https://crawlrelay.com/pl/docs/errors/407-proxy-authentication-required/).
- **502 lub 504:** spróbuj ponownie przez nowy exit. Zobacz [502](https://crawlrelay.com/pl/docs/errors/502-bad-gateway/) i [504](https://crawlrelay.com/pl/docs/errors/504-gateway-timeout/).
- **Niechciane proxy z zmiennych środowiskowych:** ustaw `session.trust_env = False` w requests lub wyczyść zmienne.

*Python: zbuduj adres proxy z zakodowanymi poświadczeniami*

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

## Czy warto ponawiać próbę po 'Cannot connect to proxy'?

Powtarzaj tylko przyczyny na poziomie sieci, które mogą się zmienić: timeouty i błędy bramy takie jak 502 lub 504. Odmowa połączenia, awaria DNS lub 407 powtórzą się, dopóki nie zmienisz konfiguracji – traktuj je jako krytyczne przy obsłudze błędów.

## Jak Cannot connect to proxy (ProxyError) odnosi się do CrawlRelay?

Dla CrawlRelay URL proxy to `http://USERNAME:PASSWORD@` po którym następuje host bramy i port HTTP niżej, dla celów HTTP i HTTPS jednakowo. Używaj tego samego URL `http://` dla kluczy `http` i `https` w requests: schemat opisuje protokół z proxy, nie ze stroną.

Gateway: `gw.crawlrelay.com`, port 7777 (HTTP, HTTPS przez CONNECT) i port 7778 (SOCKS5). Format nazwy użytkownika: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Powiązane: [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/pl/docs/errors/ssl-wrong-version-number/) · [407](https://crawlrelay.com/pl/docs/errors/407-proxy-authentication-required/) · [Python guide](https://crawlrelay.com/pl/docs/python/).

## Cannot connect to proxy (ProxyError): pytania, które zadają deweloperzy

### Co oznacza 'Max retries exceeded with url' przy proxy?

Oznacza to, że urllib3 poddało się po wyczerpaniu limitu prób, a prawdziwa przyczyna jest w części 'Caused by' komunikatu. Przy proxy to zwykle ProxyError z zagnieżdżoną przyczyną: odmowa połączenia, timeout, błąd nazw lub status tunelu jak 407.

### Dlaczego requests używa proxy, którego nie skonfigurowałem?

requests domyślnie czyta zmienne środowiskowe `HTTP_PROXY`, `HTTPS_PROXY` i `NO_PROXY`, a na Windows też systemowe ustawienia proxy. Stara wartość nadpisuje Twoje założenia. Ustaw `session.trust_env = False` lub podawaj proxy jawnie przy każdym żądaniu.

### Czy mam wpisać http:// czy https:// przed adresem proxy?

Wpisz `http://` dla proxy HTTP, nawet gdy witryna jest HTTPS. Schemat mówi, jak klient komunikuje się z proxy. Wpisanie `https://` powoduje, że nowsze urllib3 zaczynają TLS z proxy, co kończy się błędem SSL na porcie zwykłego proxy HTTP.

## Inne błędy proxy w tym odniesieniu

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

**Proxy rezydencjalne z dokumentacją opisującą przypadki błędów** CrawlRelay proxy rezydencjalne od 0,50 USD/GB, ruch, który nigdy nie wygasa. [Zobacz ceny](https://crawlrelay.com/pl/pricing/) · [Szybki start](https://crawlrelay.com/pl/docs/)

---

CrawlRelay: CrawlRelay to serwis proxy rezydencjalne i mobilne proxy 4G/5G z rotacją, stworzony dla programistów i potoków danych AI: ruch bez wygasania w modelu pay-as-you-go od 0,50 USD/GB, płatny w kryptowalutach, bez konieczności przesyłania dokumentów. Bez KYC — brak dowodu, selfie i dokumentów. Płać w kryptowalutach.
