Ohne KYC — keine ID, kein Selfie, keine Dokumente. Mit Krypto bezahlen: BTC, USDT, USDC, ETH, SOL, LTC
Sprache: Deutsch
Jetzt starten

Proxy-Fehlerreferenz · Verbindungs- und TLS-Fehler

Verbindungsabbruch durch Gegenstelle (ECONNRESET) durch einen Proxy

Socket-Fehler: die genaue Meldung in jedem Tool, wahrscheinliche Ursachen in Reihenfolge und die Lösung, die funktioniert.

Zuletzt aktualisiert: · 5 Min. Lesezeit

Kurze Antwort

Was bedeutet Connection reset by peer (ECONNRESET) bei einem Proxy?

Verbindungsabbruch durch Gegenstelle bedeutet, dass das Gegenüber die TCP-Verbindung abrupt mit einem Reset und nicht mit einem normalen Schließen beendet hat. Bei CrawlRelay Residential Proxies sind die üblichen Ursachen eine wiederverwendete, veraltete Keep-Alive-Verbindung, ein ausgefallener Ausgang oder eine Ziel-Firewall, die Verbindungen trennt. Versuchen Sie sichere Anfragen auf einer neuen Verbindung erneut und halten Sie inaktive Verbindungen nicht zu lange offen.

Connection reset by peer (ECONNRESET) auf einen Blick

FehlerConnection reset by peer (ECONNRESET)
TypSocket-Fehler
Gesendet vonDer Netzwerk-Stack, nachdem die Gegenseite die Verbindung abrupt geschlossen hat
Definiert inTCP reset (RST segment): RFC 9293
Noch einmal versuchen?Ja, bei sicheren Anfragen, auf einer neuen Verbindung
Zuerst prüfenPrüfen Sie, ob die Resets nach inaktiven wiederverwendeten oder neuen Verbindungen folgen

Was bedeutet Connection reset by peer (ECONNRESET)?

TCP kann eine Verbindung grußvoll beenden oder mit einem Reset. Ein Reset teilt Ihrem Gerät mit, dass die Gegenseite die Verbindung verworfen hat, sodass alle in der Übertragung befindlichen Daten verloren gehen. Python wirft ConnectionResetError; Node.js wirft ECONNRESET oder 'socket hang up'.

Der 'Peer' ist der direkte Gesprächspartner Ihres Sockets, also das Proxy-Gateway. Der Reset kann aber weiter hinten auf der Kette entstanden sein und dort weitergeleitet werden.

Wie sieht a connection reset in Python, curl, Node.js und Browsern aus?

Der gleiche Fehler wird in jedem Tool anders angezeigt. Hier sind die Meldungen, nach denen Sie in Ihren Logs suchen sollten:

  • Python: ConnectionResetError: [Errno 104] Connection reset by peer, oder [WinError 10054] unter Windows
  • requests: ConnectionError(ProtocolError('Connection aborted.', ConnectionResetError(...)))
  • Node.js: Error: socket hang up oder read ECONNRESET
  • curl: curl: (56) Recv failure: Connection reset by peer

Was verursacht a connection reset?

Wahrscheinlich zuerst:

  • Veraltete Keep-Alive-Verbindungen. Eine Verbindung im Pool lag inaktiv und wurde von der Gegenseite geschlossen; die nächste Anfrage auf dieser Verbindung schlägt sofort fehl.
  • Ein ausgefallener Ausgang, der jede Verbindung, die ihn nutzte, beendet.
  • Eine Ziel-Firewall, die Verbindungen zurücksetzt, die sie nicht mag.
  • Lange Uploads oder Downloads, die irgendwo auf dem Pfad durch eine Inaktivitätsgrenze abgebrochen werden.

Wie diagnostiziere ich a connection reset Schritt für Schritt?

  1. Prüfen Sie, ob Resets bei der ersten Anfrage einer Verbindung oder nach inaktivem Wiederverwenden auftreten.
  2. Zählen Sie Resets pro Host: Ein einzelner Host deutet auf das Ziel hin; alle Hosts zusammen deuten auf den Pfad oder den Pool.
  3. Beachten Sie den Zeitpunkt: Resets nach genau N Sekunden Inaktivität deuten auf eine Inaktivitätsgrenze hin.
Testen Sie die fehlerhafte URL mit curl (HTTP-Port, ausführlich)
# 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

Wie behebe ich a connection reset?

  • Wiederholen Sie idempotente Anfragen (GET, HEAD) einmal auf einer neuen Verbindung.
  • Verkürzen Sie die inaktive Wiederverwendung: Schließen Sie Verbindungen im Pool, die länger als ein paar Sekunden inaktiv sind, oder öffnen Sie pro Anfrage eine neue Verbindung, wenn Sie sowieso eine neue IP brauchen.
  • Beenden Sie eine wiederholt zurücksetzende Session und starten Sie eine neue.
  • Verlangsamen Sie sich bei Hosts, die unter Last zurücksetzen.
Python: Wiederholung mit Retry-After, exponentiellem Backoff und Jitter
import random
import time

import requests

PROXY = "http://USERNAME:[email protected]:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))

Soll ich nach a connection reset einen erneuten Versuch starten?

Wiederholen Sie einen Reset bei sicheren Anfragen wie GET einmal. Wiederholen Sie keine POST-Anfragen, die Daten ändern, ohne zu prüfen: die erste Anfrage wurde möglicherweise schon verarbeitet. Ein Ausbruch von Resets bei einem Host bedeutet, dass dieser Host Sie trennt; reduzieren Sie dort das Tempo.

Wie wirkt sich Connection reset by peer (ECONNRESET) auf CrawlRelay aus?

Bei CrawlRelay erfolgt die Rotation pro neuer Verbindung. Ein Client, der eine Verbindung offen hält, behält bei jeder Anfrage derselben Verbindung den gleichen Ausgang, also setzt ein ausgefallener Ausgang diese Verbindung zurück. Öffnen Sie die Verbindung neu, um einen frischen Ausgang zu erhalten; die Sessions-Anleitung zeigt die Muster.

Gateway: gw.crawlrelay.com, Port 7777 (HTTP, HTTPS über CONNECT) und Port 7778 (SOCKS5). Benutzername im Format: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Verwandt: 502 Bad Gateway · Zeitüberschreitung beim Lesen · Sessions-Anleitung.

Connection reset by peer (ECONNRESET): Fragen, die Entwickler stellen

Warum bekomme ich in Node.js mit Proxy 'socket hang up'?

Die Verbindung wurde geschlossen, bevor eine Antwort eingetroffen ist. Bei einem Proxy sind die häufigsten Ursachen eine wiederverwendete, veraltete Keep-Alive-Verbindung, ein ausgefallener Ausgang oder ein Ziel, das die Verbindung beendet hat. Wiederholen Sie GET-Anfragen auf einem neuen Socket und begrenzen Sie, wie lange inaktive Sockets im Pool bleiben.

Ist ein Verbindungsreset ein Zeichen, dass ich blockiert bin?

Manchmal. Firewalls können Verbindungen von abgelehnten Clients zurücksetzen, aber Resets passieren auch aus harmlosen Gründen in jedem Residential-Netzwerk. Achten Sie auf das Muster: Resets, die auf einen Host beschränkt sind und mit der Anfragerate zunehmen, deuten darauf hin, dass der Host zurückdrängt.

Soll ich Keep-Alive für Scraping deaktivieren?

Nicht vollständig. Keep-Alive spart Zeit, wenn Sie mehrere Anfragen an denselben Host durch denselben festen Ausgang senden. Wenn Sie bei jeder Anfrage eine neue IP wollen, ist eine neue Verbindung pro Anfrage die sauberere Wahl. Sorglos gemischt verursacht hingegen veraltete Verbindungs-Resets.

Weitere Proxy-Fehler in diesem Leitfaden

HTTP-Statuscodes

Browser- und Clientfehler

Verbindungs- und TLS-Fehler

Residential-Proxys mit Dokumentationen, die Fehlerfälle abdecken

CrawlRelay Residential-Proxys von 0,50 $/GB, Traffic, der nie abläuft.

Ab 0,50 $/GB · ohne KYC

Jetzt starten