SSH "Verzögerung" im LAN auf einigen Computern, gemischte Distributionen

9

Ich habe seit einigen Monaten ein seltsames Problem mit SSH-Verbindungen in meinem LAN. Dies passiert nur, wenn ich mit meinem Windows 10-Gerät eine Verbindung zu einem (Barebone-) Linux-Computer herstelle.

Wenn ich eine Verbindung zu einem SSH-Server herstelle, wird meine Eingabe nur einmal pro Sekunde gesendet. Wenn ich eine Taste gedrückt halte, wird für eine Sekunde nichts gedruckt, und nach dieser Sekunde sehe ich jeden Tastendruck, den ich während dieser Zeit ausgeführt habe.

So sieht es auf den Arbeitsservern aus:

So sieht es bei denen mit dem Problem aus:

Dinge, die ich getestet / herausgefunden habe

  • Das Ändern der Einstellung "UseDNS" in / etc / sshd behebt das Problem nicht
  • Dies geschieht mit bash (und zsh) unter Debian (OpenSSH_7.4p1 Debian-10 + deb9u6, OpenSSL 1.0.2r, 26. Februar 2019) und Ash unter Alpine Linux (OpenSSH_7.9p1, OpenSSL 1.1.1b, 26. Februar 2019).
  • Dies ist unter Alpine Linux OpenSSH_7.7p1, LibreSSL 2.7.4 nicht der Fall
  • Es passiert nicht bei jeder Maschine, nur bei einigen (nicht abhängig von der Distribution)
  • resolv.conf ist korrekt
  • Fehler tritt mit und ohne ClientAliveInterval auf (auf Client und Server getestet)
  • Das Pingen der Geräte ist immer schnell (weniger als 1 ms), es handelt sich also nur um SSH
  • Es bleibt auch zurück, wenn ich vom Linux-Subsystem unter Windows 10 und mit Putty und mit MobaXterm ssh
  • Keine Probleme, wenn ich eine Verbindung von Linux anstelle von Windows herstelle

Hat jemand irgendwelche Hinweise oder Dinge, die ich versuchen könnte? Vielen Dank

Christian
quelle

Antworten:

15

In der Regel ist dies ein Zeichen für Nagles Algorithmus . Sie können diese Socket-Option deaktivieren.

(Ich habe bereits in anderen Fällen ähnliche TCP-Verzögerungen zwischen Linux und Windows gesehen. In einem Fall wurde dies durch Interaktionen zwischen TCP-Windows-Größen und PSH-Flags (Push) verursacht, die dazu führten, dass Windows verspätet bestätigte und / oder es erneut versuchte.)

eckes
quelle
Super, danke für die schnelle Lösung! In den Putty-Einstellungen habe ich das Kontrollkästchen "Nagle-Algorithmus deaktivieren" deaktiviert (das standardmäßig aktiviert zu sein scheint) und jetzt funktioniert es!
Christian
@ Christian danke für die Bestätigung, ich habe meine Antwort ein wenig vereinfacht
eckes
@ Christian, ich bin verwirrt. Sie aktiviert Nagles algortihm, und jetzt sind die Zeichen nicht nicht in größere Pakete kommen? Das scheint mir der falsche Weg zu sein, also war die Antwort vor der Bearbeitung vielleicht tatsächlich besser.
Carsten S
@CarstenS Ja, alles, was ich getan habe, war, den "Nagle-Algorithmus deaktivieren" in Putty zu deaktivieren, was bedeutet, dass ich ihn aktiviert habe . Aber ich denke, es ist eine ältere Version von Putty, also ist vielleicht das Etikett auf dem Kontrollkästchen falsch
Christian
Hm, in der Tat seltsam.
eckes