EMZETT.
Login

ECONNRESET: connection reset by peer

Kurz: Die Gegenseite hat die TCP-Verbindung abrupt beendet, während du Daten gesendet oder erwartet hast.

Genauer: Meldungen: Error: read ECONNRESET (Node.js), Connection reset by peer (Linux), ERR_CONNECTION_RESET (Chrome). Im Gegensatz zu connection refused (niemand lauscht am Port) kam die Verbindung zunächst zustande und wurde dann hart abgebrochen (TCP-RST).

Im Detail

Mögliche Ursachen

  • Der Server stürzt ab oder startet neu.
  • Eine Firewall, ein Proxy oder Load Balancer unterbricht Leerlauf- oder lange Verbindungen (Idle Timeout).
  • Der Server beendet Keep-Alive-Verbindungen, die der Client noch wiederverwenden will.
  • Zu große Anfragen oder Verletzung von Limits.
  • Instabiles Netz (WLAN, VPN, Mobilfunk) oder Sicherheitssoftware, die TLS-Verkehr blockiert.
  • Der Server ist überlastet und verwirft Verbindungen (Backlog voll).
  • TLS-Fehlkonfiguration (falsche Version/Chiffren).

Lösungswege

  1. Server-Logs prüfen: Absturz, Speicher, Neustarts?
  2. Wiederholen mit Backoff (Retry): einzelne Resets sind im Netz normal und sollten vom Client abgefangen werden.
  3. Timeouts und Keep-Alive-Einstellungen von Client, Server und Zwischenstationen abgleichen (Client-Timeout kürzer als Server-Timeout).
  4. Verbindungen nicht unbegrenzt wiederverwenden; bei Fehler neue aufbauen.
  5. Anderes Netz, VPN/Proxy/Antivirus testen.
  6. Mit curl -v, openssl s_client oder tcpdump Details sammeln.
  7. Last und Verbindungslimits (zum Beispiel ulimit -n) kontrollieren.

Einordnung

Das Muster „Fehler nur manchmal“ spricht für Zeitüberschreitungen oder Lastspitzen, „immer“ für Konfiguration oder Firewall. In Node.js: req.on('error', ...) und Agent-Einstellungen für keepAlive setzen, Fehler nicht unbehandelt lassen, sonst stürzt der Prozess ab.

Siehe auch: ERR_CONNECTION_REFUSED, ERR_CONNECTION_TIMED_OUT, HTTP Keep-Alive