SSH -L lokale Portweiterleitung mit localhost verweist auf falsche Seiten

SSH -L lokale Portweiterleitung mit localhost verweist auf falsche Seiten

entschuldigen Sie, wenn meine Frage dumm ist, aber ich kann zwei Dinge nicht verstehen. Nehmen wir an, ich mache das Beispiel, das geschrieben wurdeHier:

[...] Sie wollten von Ihrem Laptop aus eine Verbindung herstellen zuhttp://www.ubuntuforumsorg über einen SSH-Tunnel. Sie würden die Quellportnummer 8080 (den alternativen HTTP-Port), den Zielport 80 (den HTTP-Port) und den Zielserver www.ubuntuforums.org verwenden. :

ssh -L 8080:www.ubuntuforums.org:80 <host>

Wo <host>sollte durch den Namen Ihres Laptops ersetzt werden.

F1: Was kann ich damit eigentlich erreichen? Auf dem Remote-Server ist kein SSHD verfügbar, der Datenverkehr verlässt meinen PC also unverschlüsselt, oder? Wofür brauche ich das?

F2: Ich versuche ssh -L 4444:linuxpl.com:80 localhost auszuführen. Wenn ich eingebehttp://localhost:4444In meinem Webbrowser kann ich die interne Site des LiteSpeed-Webservers sehen. Wenn ich andere Seiten ausprobiere, kann ich die internen Apache-Sites sehen. Wenn ich andere ausprobiere, kann ich die 404-Meldung dieser Site „Seite nicht gefunden“ sehen. Einige von ihnen funktionieren jedoch wie erwartet. Warum passiert das? Wie kann ich es beheben?

Antwort1

F1: Das würden Sie nicht wollen. Die Seite ist in ihrer Formulierung albern. Wie Sie sagten, würde der Datenverkehr verschlüsselt von Ihrem Computer zu Ihrem Computer und dann völlig unverschlüsselt zur Forumsseite geleitet. Sie hätten es damit erklären können, dass ein anderer Computer zum Weiterleiten des Datenverkehrs verwendet wird, beispielsweise um eine Firewall zu umgehen.

Was das Tutorial bedeutet, ist "Sie möchten sich mit dem Forum verbindendurchIhren Laptop von einem anderen Rechner aus", dann macht es mehr Sinn.

F2: Wenn Sie öffnenhttp://localhost:4444/auf Ihrem Computer wird eine HTTP-Anforderung an das Forum gesendet, dem Forum wird jedoch mitgeteilt, dass Sie den Host localhostund nicht den gewünschten Host möchten linuxpl.com. Der Server gibt dann wahrscheinlich eine Standardseite zurück und nicht den tatsächlichen virtuellen Host, den Sie wollten, da virtuelle Hosts verwendet werden und localhostnicht auf dieselbe Site wie abgebildet wird linuxpl.com.

Insgesamt funktioniert die Weiterleitung von HTTP-Verkehr durch SSH-Tunnel also oft nicht so einfach. Die Weiterleitung an einen Proxy irgendwo würde viel besser funktionieren.

Damit Ihr Browser die richtigen Header sendet, können Sie Ihre Hosts-Datei so einrichten, dass die Zieladresse Ihr Computer ist. Auf diese Weise stellt der Browser beim Auflösen der Adresse eine Verbindung zu Ihrem lokalen Computer her und teilt dem HTTP-Server dennoch den richtigen Hostnamen mit.

Sie können dies versuchen, indem Sie die Zeile hinzufügen

127.0.0.1        linuxpl.com

nach /etc/hosts

Antwort2

F1: Ich habe dies in einer Umgebung verwendet, in der Sie keinen Zugang zum Internet haben. Stellen Sie sich vor, Sie betreiben Ihren Laptop in einem Netzwerk, das keine Verbindungen zur Außenwelt zulässt, aber es gibt eine einzelne Maschine, die sowohl eine Verbindung zur Außenwelt als auch zu dem Netzwerk herstellen darf, in dem sich Ihr Laptop befindet. Um also surfen zu können, müssen Sie sich mit dieser Maschine verbinden, damit Ihr Internetverkehr über die autorisierte Maschine in das externe Netzwerk gelangt.

Die Verbindung funktioniert ungefähr so: Wenn Siehttp://localhost:4444SSH nimmt die Anfrage entgegen und sendet sie an den Host, der sie dann an linuxpl.com:80 sendet. Die Verbindung zwischen Ihrem Laptop und dem Host wird durch SSH verschlüsselt, die Verbindung zwischen dem Host und dem Internet wird nicht verschlüsselt, d. h. SSH leitet nur Nachrichten zwischen Ihren beiden Maschinen weiter und verschlüsselt sie.

F2: Ich verstehe nicht wirklich, wo das Problem liegt, aber ssh -L 4444:linuxpl.com:80 localhost ergibt nicht wirklich Sinn … da Sie zwischen Ihrem Computer und Ihrem Computer tunneln …

verwandte Informationen