Zonder KYC — geen ID, geen selfie, geen documenten. Betaal met crypto: BTC, USDT, USDC, ETH, SOL, LTC
Taal: Nederlands
Aan de slag

Proxy foutreferentie · Browser- en clientfouten

ProxyError: 'Kan geen verbinding maken met proxy' in Python en Node.js

Clientbibliotheekfout (Python, Node.js): het exacte bericht in elk hulpmiddel, de waarschijnlijke oorzaken in volgorde, en de oplossing die werkt.

Laatst bijgewerkt: · 4 min leestijd

Kort antwoord

Wat betekent Cannot connect to proxy (ProxyError) bij een proxy?

'Kan geen verbinding maken met proxy' is een wrapperfout: de echte reden zit erin verborgen door Python's requests en urllib3. Lees de diepste oorzaak. 'Verbinding geweigerd' of een time-out betekent een probleem met host, poort of netwerk; 'Kon niet resolveren' betekent DNS; 'Tunnelverbinding mislukt: 407' betekent een probleem met de inloggegevens. Bij CrawlRelay heeft elk van deze een éénregelige oplossing.

Cannot connect to proxy (ProxyError) in één oogopslag

FoutCannot connect to proxy (ProxyError)
TypeClientbibliotheekfout (Python, Node.js)
Verzonden doorJe HTTP-client, vóór of tijdens communicatie met de proxy
Gedefinieerd inLibrary error; read the nested cause for the real reason
Opnieuw proberen?Afhankelijk van de onderliggende oorzaak
Eerst controlerenLees de binnenste uitzondering: geweigerd, time-out, naamresolutie of een statuscode

Wat betekent Cannot connect to proxy (ProxyError)?

urllib3 werpt elke keer een ProxyError op bij een mislukking die met de proxy te maken heeft, en requests geeft deze door. De nuttige informatie zit in de geneste uitzondering, die de traceback aan het einde van een lange regel toont.

Node.js clients gedragen zich anders: zij melden direct de socketfout, zoals ECONNREFUSED of ETIMEDOUT, vaak zonder te zeggen dat het adres dat van de proxy was.

Hoe ziet 'Cannot connect to proxy' eruit in Python, curl, Node.js en browsers?

Dezelfde fout verschijnt anders in elk hulpmiddel. Dit zijn de berichten om in je logs te zoeken:

  • Geweigerd: ProxyError('Unable to connect to proxy', NewConnectionError(... Connection refused))
  • DNS: NameResolutionError(... Failed to resolve ...) binnen de ProxyError
  • Inloggegevens: OSError('Tunnel connection failed: 407 Proxy Authentication Required')
  • Gateway-fout: OSError('Tunnel connection failed: 502 Bad Gateway')
  • Node.js: Error: connect ECONNREFUSED, ETIMEDOUT of ENOTFOUND, gevolgd door het proxy-adres

Wat veroorzaakt 'Cannot connect to proxy'?

Waarschijnlijk eerst:

  • Verkeerde host of poort in de proxy-URL.
  • Ontbrekende scheme: host:port zonder http:// wordt door sommige libraries verrassend geparsed.
  • Geblokkeerd uitgaand verkeer op jouw netwerk of server.
  • Inloggegevens- of gatewayfouten die optreden tijdens de CONNECT-stap, verpakt in dezelfde uitzondering.
  • Omgevingsvariabelen zoals HTTPS_PROXY die naar een oude proxy wijzen en je code overschrijven.

Hoe diagnosticeer ik 'Cannot connect to proxy' stap voor stap?

  1. Print de volledige uitzondering en lees de laatste geneste oorzaak.
  2. Print requests.utils.get_environ_proxies(url) of de variabelen HTTP_PROXY, HTTPS_PROXY en NO_PROXY om te zien wat er nog meer is ingesteld.
  3. Voer de curl-test hieronder uit vanaf dezelfde machine.
  4. Koppel de oorzaak aan de lijst met oplossingen hieronder.
Test de foutieve URL met curl (HTTP-poort, uitvoerig)
# 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:[email protected]: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

Hoe los ik 'Cannot connect to proxy' op?

  • Geweigerd of time-out: fix de host en poort, of open uitgaand verkeer naar de gateway.
  • Kon niet resolveren: controleer DNS op de machine; probeer de host met nslookup.
  • 407: fix en URL-encode de inloggegevens. Zie 407 Proxy Authentication Required.
  • 502 of 504: probeer opnieuw met een nieuwe exit. Zie 502 en 504.
  • Ongewenste proxy in omgeving: zet session.trust_env = False in requests, of ruim de variabelen op.
Python: bouw de proxy-URL met gecodeerde inloggegevens
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)

Moet ik opnieuw proberen na 'Cannot connect to proxy'?

Herhaal alleen netwerkfouten die kunnen veranderen: time-outs en gateway-fouten zoals 502 of 504. Een geweigerde verbinding, DNS-fout of 407 herhaalt zich tot je de configuratie verandert; maak die fataal in je foutafhandeling.

Hoe geldt Cannot connect to proxy (ProxyError) voor CrawlRelay?

Voor CrawlRelay is de proxy-URL http://USERNAME:PASSWORD@ gevolgd door de onderstaande gateway-host en HTTP-poort, voor zowel HTTP- als HTTPS-doelen. Gebruik dezelfde http:// URL voor zowel de http als https keys in requests: het schema bepaalt het protocol tussen client en proxy, niet tussen client en website.

Gateway: gw.crawlrelay.com, poort 7777 (HTTP, HTTPS via CONNECT) en poort 7778 (SOCKS5). Gebruikersnaamformaat: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Gerelateerd: SSL: WRONG_VERSION_NUMBER · 407 · Python-gids.

Cannot connect to proxy (ProxyError): vragen die ontwikkelaars stellen

Wat betekent 'Max retries exceeded with url' met een proxy?

Dat betekent dat urllib3 opgaf na zijn retries; de echte reden volgt in het 'Caused by'-gedeelte. Bij een proxy is dat meestal een ProxyError met een geneste oorzaak: verbinding geweigerd, time-out, naam-resolutie mislukt of een tunnelstatus zoals 407.

Waarom gebruikt requests een proxy die ik niet heb geconfigureerd?

requests leest standaard de omgevingsvariabelen HTTP_PROXY, HTTPS_PROXY en NO_PROXY, en op Windows ook de systeemproxy-instellingen. Een achtergebleven waarde overschrijft dan jouw verwachtingen. Zet session.trust_env = False, of geef de proxies expliciet door bij elke aanvraag.

Schrijf ik http:// of https:// voor het proxy-adres?

Schrijf http:// voor een HTTP-proxy, zelfs als de website HTTPS gebruikt. Het schema omschrijft hoe je client met de proxy praat. Schrijven van https:// laat nieuwere urllib3-versies TLS starten met de proxy, wat faalt op een plain HTTP-proxy-poort met een SSL-fout.

Andere proxyfouten in deze referentie

HTTP-statuscodes

Browser- en clientfouten

Verbindings- en TLS-fouten

Residentiële proxy's met documentatie die de faalgevallen beschrijft

CrawlRelay residentiële proxy's van US$ 0,50/GB, verkeer dat nooit verloopt.

Vanaf US$ 0,50/GB · zonder KYC

Aan de slag