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
- Server-Logs prüfen: Absturz, Speicher, Neustarts?
- Wiederholen mit Backoff (Retry): einzelne Resets sind im Netz normal und sollten vom Client abgefangen werden.
- Timeouts und Keep-Alive-Einstellungen von Client, Server und Zwischenstationen abgleichen (Client-Timeout kürzer als Server-Timeout).
- Verbindungen nicht unbegrenzt wiederverwenden; bei Fehler neue aufbauen.
- Anderes Netz, VPN/Proxy/Antivirus testen.
- Mit
curl -v,openssl s_clientodertcpdumpDetails sammeln. - 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