
Wenn ich mich nicht irre, sollte ein SSH-Tunnel von Port 80 zu einem Webserver auf Port 80 es meinem Port 80 ermöglichen, durch diesen Server zu tunneln, richtig? Wenn ich jedoch einen Tunnel einrichte und auf eine Website zugreife, scheint mein Protokoll immer noch von meinem Heimcomputer zu kommen und nicht von der IP des Servers. Irgendwelche Ideen, warum?
Ich verwende den folgenden Befehl, aber er scheint lediglich eine SSH-Verbindung zum Host im Terminal herzustellen:
ssh root@webserver -L 80:127.0.0.1:80
Antwort1
Habe dies gerade ausprobiert und festgestellt, dass es funktioniert:
ssh -ND 8080 [email protected]
Root muss den lokalen Port 80 auf Ihrem Computer binden, da es sich um einen reservierten Port handelt (und 8080 die übliche Alternative ist). Um nur Ihren Browserverkehr weiterzuleiten, können Sie Firefox/Chrome/Whatever so einstellen, dass ein Socks-Proxy „localhost“ auf „8080“ verwendet wird.
Versuchen Sie es ohne Root, funktioniert bei mir auf einem Webserver, für den ich keinen Root-Zugriff habe.
Antwort2
Sobald der Tunnel (mit ) eingerichtet ist, -L
müssen Sie die verwendete URL ändern. http://127.0.0.1/
Wenn beispielsweise der Site-Name aufgrund der Einrichtung des virtuellen Hostings übereinstimmen muss, müssen Sie ihn zu Ihrer Desktop-Hosts-Datei hinzufügen:
127.0.0.1 www.domain.com
Sie könnten einen Alias auf dem Server-Vhost definieren, sodass Sie einen Namen für 127.0.0.1 wie „test.domain.com“ verwenden können und der echte Name direkt dorthin wechselt, falls das jemals nützlich sein sollte – das Vergessen, Einträge aus der Hosts-Datei zu entfernen, ist ein guter Weg, um Verwirrung zu stiften. Hängt davon ab, wie die Site funktioniert.
Um Port 80 weiterzuleiten, müssen Sie nur auf dem Desktop Root sein, ''nicht'' auf dem Webserver.Ich empfehle dringend, die SSH-Anmeldung für Root nicht zuzulassen.
Verwenden eines nicht privilegierten PortsMaifunktionieren, wiederum abhängig von Ihrer Site:
ssh user@webserver -L 1080:127.0.0.1:80
und verwenden Sie die URL http://127.0.0.1:1080/
.
Verwendung eines SOCKS-Proxys ( -D
) wie empfohlenMaikann je nach SOCKS-/DNS-/Firewall-/NAT-Konfiguration zu einigen Überraschungen führen.
(Alternativ zu root können Sie unter Linux auch POSIX-Funktionen für reservierte Ports verwenden, siehehttps://stackoverflow.com/questions/413807/ist-es-ein-weg-für-nicht-root-prozesse-zu-binden-an-privilegierte-ports-1024-auf-l, dies funktioniert jedoch nicht mit Standardversionen von OpenSSH, da es eine zusätzliche, fest codierte Prüfung der Portnummern hat, es sei denn, es wurde mit NO_IPPORT_RESERVED_CONCEPT
definiertem kompiliert. Die Antworten auf die verlinkte Frage enthalten verschiedene andere Lösungen dafür.)