Ich versuche den Unterschied zwischen "lokaler Portweiterleitung" und "dynamischer Portweiterleitung" zu verstehen.
Muss im Befehl ssh für die "lokale Portweiterleitung" immer der Zielhost angegeben werden?
Bedeutet "dynamic" in "dynamic port forwarding", dass im Befehl ssh für "dynamic port forwarding" der Zielhost nicht angegeben werden muss? Wenn ja, wann wird das Ziel angegeben?
ssh
port-forwarding
StackExchange für alle
quelle
quelle
Antworten:
Ja, Sie müssen eine Ziel-IP und einen Port angeben, wenn Sie die lokale Weiterleitung verwenden. Von
man ssh
:Natürlich ist nur die Bindeadresse optional.
Nein, Sie können keinen Zielhost oder -port angeben, wenn Sie die dynamische Weiterleitung verwenden. Bei der dynamischen Weiterleitung fungiert SSH als SOCKS-Proxy. Nochmals von der Manpage (Hervorhebung meiner):
Mit
-L
macht SSH keinen Versuch, den Verkehr zu verstehen. Er sendet einfach alles, was er auf dem lokalen Port empfängt, an den Zielport. Sie bestimmen den Zielport zum Zeitpunkt des Verbindungsaufbaus. Mit-D
fungiert SSH als Proxyserver und kann daher Verbindungen von mehreren Ports verarbeiten (z. B. kann ein Browser, der für die Verwendung als SOCKS-Proxy konfiguriert ist, über dieselbe Verbindung auf HTTP, HTTPS, FTP usw. zugreifen). Und wie bei anderen Proxy-Servern wird der Datenverkehr zur Bestimmung des Ziels verwendet.quelle
-D
muss dies tun , um zu verstehen, wohin die Daten gesendet werden sollen.Eine andere Möglichkeit, dieses Konzept zu erlernen, besteht darin, einen Blick darauf zu werfen, wie sich ein Client mit dem EMR-Cluster (Elastic Map Reduce) von Amazon verbindet. EMR stellt eine Reihe lokaler Apps zur Verfügung, auf die normalerweise über SSH-Tunnel zugegriffen wird.
Für einen Client gibt es zwei Optionen: A) SSH-Befehl für die Weiterleitung des lokalen Ports: ssh -i key.pem -L 8157: abcd: 8088 hadoop @ abcd
Hier sagt der Client zum Beispiel, dass 8157 auf localhost an abcd weitergeleitet wird: 8088 Der Client muss eine Anfrage an localhost stellen: http: // localhost: 8157 Andere Anwendungen könnten Ports wie 8089,8090 und das überwachen Der Client muss für jede dieser Verbindungen eine SSH-Verbindung herstellen.
B) Dynamische Portweiterleitung Hier wird ein einzelner SSH-Befehl verwendet: ssh -i key.pem -D 8157 hadoop @ abcd
Der auf Port 8157 eingehende Datenverkehr wird über den SSH-Tunnel geleitet. Das Ziel des Datenverkehrs ist das Ziel der URL. Sie können beispielsweise einen Proxy-Client auf Ihrem Webserver verwenden und einige http-URIs umleiten, um den Proxy zu verwenden. Sie können über einen einzigen Befehl auf alle Ihre Anwendungen unter 80898090 zugreifen.
Informationen hierzu finden Sie in folgendem Dokument: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html
quelle