Seltsame Verlangsamung der TCP-Verbindung bei der X11-Weiterleitung

Seltsame Verlangsamung der TCP-Verbindung bei der X11-Weiterleitung

Ich habe einen Heimcomputer H (Linux), einen Arbeitscomputer W (Mac OS X) und einen öffentlichen Server S (dasselbe Linux wie H) mit der IP 11.22.33.44.

Da sich H und W alle hinter NAT befinden, verwende ich Autossh, um sie beide mit S zu verbinden und über Tunnel miteinander zu kommunizieren:

# From H to S
ssh -R :8822:127.0.0.1:22 [email protected]
# From W to S
ssh -R :7722:127.0.0.1:22 [email protected]

Wenn ich im Büro bin, stelle ich häufig per SSH eine Verbindung zu H her und leite X11 zurück:

# on W
ssh -X -p 8822 [email protected]
xterm
...

Sowohl H als auch W haben eine sehr geringe Latenz zu S (Ping etwa 2-5 ms), also lief alles ziemlich reibungslos, bis mein Büro umgezogen ist und der ISP gewechselt hat. Der Ping von W zu S bleibt niedrig und alles ist immer noch schnell, bis die X-Weiterleitung beginnt. Immer wenn ich versuche, xterm von H über X11-Weiterleitung zu starten, wird die TCP-Verbindung darüber extrem langsam. Andere SSH-Sitzungen von W zu H ohne Weiterleitung bleiben jedoch schnell. Nach Strg-C des nicht reagierenden xterm wird die weiterleitende SSH-Sitzung sofort wiederhergestellt und reagiert.

Es fühlt sich an, als würde jemand die SSH-Sitzungen beobachten und sie verlangsamen, wenn eine X11-Kommunikation stattfindet. Um herauszufinden, was schief gelaufen ist, habe ich einen Test wie diesen durchgeführt:

# on W
ssh -R 11.22.33.44:6010:127.0.0.1:6000 [email protected]
# on S
DISPLAY=11.22.33.44:10 xterm  # works fine!
# on H
DISPLAY=11.22.33.44:10 xterm  # unresponsive

Das Merkwürdige ist, dass xterm einwandfrei funktioniert, wenn es auf S startet. Wenn es auf H startet, bleibt es hängen, nicht der H→S-Teil, sondern die W→S-SSH-Sitzung, da das Tippen darauf extrem langsam wurde. Nach Strg-C erholte sich das hängende xterm sofort.

Es scheint kein Netzwerkproblem zu sein, da H→S und W→S alle großartig sind (sowohl hinsichtlich Latenz als auch Bandbreite). Über den Tunnel ist scp zwischen W und H schnell; lftp fish://Hvon W aus funktioniert es auch einwandfrei.

Da dies nach einem ISP-Wechsel passierte, habe ich mich gefragt, ob der ISP den Datenverkehr drosselt. Die X11-Weiterleitung funktioniert jedoch in jede Richtung zwischen W und S oder zwischen H und S einwandfrei. Es ist nur so, dass jeglicher X11-Datenverkehr zwischen W und H, auf jede mir einfallende Weise, die SSH-Verbindung verlangsamt, die ihn weiterleitet.

Ich bin zutiefst verwirrt über dieses Durcheinander. Kann mir jemand helfen herauszufinden, welchen Teil ich mir ansehen sollte?

verwandte Informationen