Gibt es Nachteile beim SSH-Tunneling?

Gibt es Nachteile beim SSH-Tunneling?

Ich habe vor kurzem einen VPS „gekauft“, den ich als Proxy verwenden möchte, um einige Websites und Dinge nutzen zu können, auf die ich von Deutschland aus nicht zugreifen kann.

Da ich bisher zu faul war, Squid und OpenVPN einzurichten (was meiner Meinung nach derzeit nötig ist), verwende ich SSH-Tunneling.

Jetzt, nach ein paar Wochen, habe ich mich gefragt, ob SSH-Tunneling nicht völlig in Ordnung ist, oder – und das ist meine Frage – ob es irgendwelche Vorbehalte/Kontras/Nachteile gibt, die ich beachten muss?

Antwort1

Das Leistungsproblem entsteht, wenn Sie TCP über TCP tunneln, weil Sie zwei Schichten haben, die adaptive Korrekturen durchführen (langsamer Start, Vermeidung von Überlastungen, schnelle erneute Übertragung, sieheRFC2001).

Da sie nicht voneinander wissen, werden sie bei einem Verlust der externen Verbindung große Schwierigkeiten haben.

Diese Seitebeschreibt das Phänomen im Detail.

Anstatt sich mit dem TCP-über-TCP-Problem zu beschäftigen, werfen Sie einen Blick aufShuttlewas dies verhindert.
Schauen Sie sich den Abschnitt mit dem Namen "Theorie der Arbeitsweise" für noch mehr Einzelheiten zu dieser Situation.

Antwort2

Eine Sache, die mir spontan einfällt, ist die Leistung. Aber das hängt wirklich davon ab, was für Dinge Sie tunneln.

Antwort3

Normalerweise habe ich festgestellt, dass die Latenz zunimmt, aber der Durchsatz ist mit SSH-Tunneling in Ordnung (90 %). Stellen Sie sicher, dass Sie die Einstellungen ServerAliveIntervalso vornehmen, dass Verbindungsabbrüche verhindert werden, und binden Sie sie in ein Skript ein, um den Tunnel bei einem Fehler neu zu starten.

Der Hauptnachteil besteht darin, dass es sich um einen Tunnel pro TCP-Port handelt, es sei denn, Sie verwenden SOCKS. SOCKS ist in Ordnung, aber die Latenz scheint damit noch weiter zu steigen, und natürlich unterstützt nicht jeder Client SOCKS.

Möglicherweise müssen Sie es GatewayPortsauf dem Client oder SSH-Server ausführen, damit andere sich über Ihren Tunnel verbinden können. Auf dem Server erfordert dies Root-Zugriff auf die sshd_config.

Der wichtigste Leistungseinschränkung (wie andere anmerken) liegt darin, dass dieser Ansatz bei unzuverlässigen Verbindungen wahrscheinlich nicht gut abschneidet, da die TCP-Algorithmen bei Kapselung nicht gut reagieren.

Dennoch scheint SSH meistens „das Richtige zu tun“.

Antwort4

Beim SSH-Tunneling sollte es keine TCP-over-TCP-Probleme geben.

ssh entkapselt und kapselt TCP erneut ein, sodass Sie keine klassischen TCP-over-TCP-Probleme haben

Referenz:

https://en.wikipedia.org/wiki/Tunneling_protocol#cite_note-6

https://marc.info/?l=openssh-unix-dev&m=105554033415532

verwandte Informationen