Ich habe kürzlich einen VPS "gekauft", den ich als Proxy verwenden möchte, um einige Websites und Dinge verwenden zu können, die ich aus Deutschland nicht erreichen kann.
Da ich noch zu faul war, um Squid und OpenVPN einzurichten (was ich derzeit für nötig halte), verwende ich SSH-Tunneling.
Jetzt, nach ein paar Wochen, fragte ich mich, ob SSH-Tunneling nicht in Ordnung sei oder - und das ist meine Frage - ob es irgendwelche Vorbehalte / Kontras / Nachteile gibt, die ich beachten muss?
ssh
proxy
ssh-tunneling
Nils Riedemann
quelle
quelle
Antworten:
Das Leistungsproblem tritt auf, wenn Sie TCP über TCP tunneln, da zwei Ebenen adaptive Korrekturen durchführen (langsamer Start, Vermeidung von Überlastungen, schnelle erneute Übertragung, siehe RFC2001 ).
Wenn sie sich nicht bewusst sind, werden sie große Schwierigkeiten haben, wenn Sie einen Verlust an der äußeren Verbindung haben.
Diese Seite beschreibt das Phänomen im Detail.
bearbeiten:
Anstatt beim TCP-über-TCP-Problem zu bleiben, schauen Sie sich sshuttle an, das es verhindert. Weitere Informationen zu dieser Situation finden Sie
im Abschnitt " Betriebstheorie ".
quelle
tun/tap
Tunneln, was zu tcp-over-tcp führt. SOCKSv5 leidet nicht unter denselben Problemen, funktioniert jedoch nicht mit allen Anwendungen transparent (während tun / tap nur eine weitere Netzwerkschnittstelle ist, sodass es transparent gehandhabt werden kann).Eine Sache, an die ich denken kann, ist Leistung. Aber das hängt wirklich davon ab, welche Art von Sachen Sie tunneln.
quelle
Normalerweise habe ich festgestellt, dass die Latenz zunimmt, aber der Durchsatz beim SSH-Tunneling in Ordnung (90%) des Normalwerts ist. Stellen Sie sicher, dass die Einstellung
ServerAliveInterval
getrennt ist, und trennen Sie sie in ein Skript, um den Tunnel bei einem Fehler weiterhin neu zu starten.Der Hauptnachteil ist, dass es sich um einen Pro-TCP-Port-Tunnel handelt, sofern Sie nicht SOCKS verwenden. SOCKS ist in Ordnung, aber die Latenz scheint damit noch weiter zuzunehmen, und natürlich unterstützt nicht jeder Client SOCKS.
Möglicherweise müssen Sie
GatewayPorts
auf dem Client oder SSH-Server ausgeführt werden, damit andere Benutzer eine Verbindung über Ihren Tunnel herstellen können. Auf dem Server erfordert dies Root-Zugriff auf die sshd_config.Die wichtigste Leistungsbeschränkung (wie andere bemerken) ist, dass unzuverlässige Verbindungen bei diesem Ansatz wahrscheinlich nicht gut abschneiden, da die TCP-Algorithmen bei der Kapselung nicht gut reagieren.
Trotzdem scheint SSH die meiste Zeit "das Richtige zu tun".
quelle