Was ist SSH-Portweiterleitung? Was nützt das?

Was ist SSH-Portweiterleitung? Was nützt das?

Vorwort

Zunächst hatte ich eine vage Vorstellung vom Begriff „SSH-Portweiterleitung“. Er klang obskur und schwer zu verstehen. Ich wusste nicht, welche Funktion er hatte oder wozu er diente. Also begann ich, nach relevanten Informationen zu suchen, sie zu verstehen und zu verwenden. Später stellte ich fest, dass es gar nicht so kompliziert war. Es war äußerst einfach zu verstehen und zu verwenden.

Zunächst kann die SSH-Portweiterleitung in lokale Portweiterleitung, Remote-Portweiterleitung und dynamische Portweiterleitung unterteilt werden. Im Folgenden werde ich jede Art der Portweiterleitung separat erklären.

1. Lokale Portweiterleitung

Führen Sie zunächst auf Ihrem lokalen Host Folgendes aus:

Format ssh -L lokaler Port:Zielhost:Zielport Tunnelhost -N
Beispiel ssh -L 8080:wwww.example.com:80 [email protected]

-L ist die Kennung für die lokale Portweiterleitung
local-port lokale Portnummer
Zielhost Zielhost
Ziel-Port Ziel-Portnummer
Tunnel-Host fungiert als Weiterleitungsserver
-N bedeutet nur Weiterleitung, keine Anmeldung am Server

Derzeit entspricht der lokale Zugriff auf locahost:8080 dem Remote-Zugriff auf www.example:com:80

Anwendungsszenarien:

Wenn der Remote-Host einen Server auf Port 9888 einsetzt, die Firewall diesen Port jedoch nicht öffnet,
Wenn Sie lokal auf diese 9888 zugreifen möchten, können Sie das obige Beispiel verwenden, um die Firewall für den SSH-Zugriff zu umgehen. Wenn sich der Remote-Host im Ausland befindet, können Sie auch die 80/443 des Remote-Hosts binden, um wissenschaftlichen Zugriff durchzuführen.

2. Remote-Portweiterleitung

Führen Sie zunächst auf Ihrem lokalen Host Folgendes aus:

Format ssh -R Remote-Port:Zielhost:Zielport Tunnel-Host -N
Beispiel ssh -R 8888:localhost:8080 [email protected] -N

-R ist die Kennung für die Remote-Portweiterleitung
Remote-Port Remote-Portnummer
Zielhost Zielhost
Ziel-Port Ziel-Portnummer
Tunnel-Host fungiert als Weiterleitungsserver
-N bedeutet, dass es nur als Weiterleitung verwendet wird und Sie sich nicht beim Server anmelden. Zu diesem Zeitpunkt entspricht der Remotezugriff auf www.example:com:8888 dem lokalen Zugriff auf locahost:8080

Anwendungsszenarien:
Wenn der lokale Host einen Server auf Port 9888 bereitstellt und der Remote-Host auf den lokalen Port 9888 zugreifen möchte, können Sie das obige Beispiel verwenden

3. Dynamische Portweiterleitung (SOCKS5)

Format ssh -D lokaler Port Tunnel-Host -N
Beispiel ssh -D 7999 [email protected] -N

-D ist die Kennung für die lokale Portweiterleitung
local-port lokale Portnummer
Tunnel-Host fungiert als Weiterleitungsserver
-N bedeutet nur Weiterleitung, keine Anmeldung am Server

Beachten Sie, dass diese Weiterleitung das SOCKS5-Protokoll verwendet und nicht wie die lokale/entfernte Portweiterleitung direkt aufgerufen werden kann. Wir müssen die HTTP-Anforderung vor der Weiterleitung in SOCKS5 konvertieren. Im Folgenden finden Sie einen Anwendungsfall für die Anforderung

curl -x socks5://localhost:7999 https://www.baidu.com
curl -x socks5://localhost:7999 https://www.weibo.com

Zu diesem Zeitpunkt entspricht der lokale Zugriff auf socks5://localhost:7999 https://www.baidu.com der Aufforderung an den Remote-Server www.example.com, auf https://www.baidu.com / https://www.weibo.com zuzugreifen.
Sie können die Socks5-Proxy-Bindung 7999 auch über den Browser festlegen. Zu diesem Zeitpunkt wird beim Durchsuchen einer beliebigen Website dieser Proxy aufgerufen. Anschließend fordert dieser Proxy die Remote-Maschine zur Anforderung auf, gibt das Anforderungsergebnis an den Socks5-Proxy zurück und gibt es dann an den Browser zurück.

Anwendungsszenarien:

Befindet sich Ihr Server im Ausland, ist der lokale Zugriff auf ausländische Links einem wissenschaftlichen Zugriff gleichzustellen. Unterstützt Proxy-QQ-Daten, sodass Hosts ohne Netzwerk mit dem Netzwerk verbunden werden können.

4. Was ist der Unterschied zwischen lokaler und dynamischer Portweiterleitung?

Der lokale Port gibt zu Beginn die Remote-Portnummer an, während die Remote-Portnummer, die der dynamischen Portweiterleitung entspricht, unbekannt ist.
Sie können auch verstehen, dass dynamische Ports tatsächlich die Art der Anforderung sind und der entsprechende Port automatisch an uns gebunden ist. Die Unterschiede sind wie folgt:
Lokaler Port L:8080 => R:80
Dynamischer Port L:8080 ⇒ R:N

Die dynamische Portweiterleitung ist sehr leistungsstark. Sie kann nicht nur HTTP verarbeiten, sondern sich auch automatisch an andere Protokolle anpassen und entsprechende Ports binden.

Wenn Sie beispielsweise von einem Computer ohne Internetzugang auf QQ zugreifen möchten, wissen diejenigen, die QQ verwendet haben, dass eine Proxy-Einstellung vorhanden ist. Daher können wir die dynamische Portweiterleitung verwenden, um auf das Internet zuzugreifen.

Bildbeschreibung hier einfügen

Sie können den SOCKS-Typ festlegen und die Proxy-Adresse und Portnummer darin schreiben, sodass die von QQ generierten Daten über die entsprechende 111.222.333:1080 weitergeleitet werden.

Auf diese Weise kann ich, auch wenn der lokale Computer über kein Netzwerk verfügt, die Nummer 111.222.333:1080 zum Weiterleiten von Daten verwenden, um Netzwerkzugriff zu erhalten.

Beispielsweise ist in der folgenden Situation ein Host ohne Internetzugang ebenfalls über die Proxy-Methode mit dem Internet verbunden.

Bildbeschreibung hier einfügen

5. Mehrstufige Portweiterleitung

Sie können mehrere Portweiterleitungen lokal starten. Beispielsweise haben wir eine lokale Maschine A und zwei Remote-Maschinen B und C.
Zu diesem Zeitpunkt möchten Sie über den lokalen Computer A auf B zugreifen, um indirekt auf C zuzugreifen, d. h. A -> B > C
Dann kann dies mithilfe einer mehrstufigen Weiterleitung erreicht werden. Schauen wir uns den Fall an:

Erstellen Sie den ersten SSH-Tunnel auf dem lokalen Computer

ssh -L 7000:localhost:3000 [email protected] -N

Der Remote-Computer www.example.com baut selbst einen zweiten SSH-Tunnel auf, was als Selbstüberwachung verstanden werden kann.

ssh -L 3000:localhost:8000 [email protected] -N

Das Ergebnis ist
L:7000 --> R:3000
R:3000 --> R:8000
Daher kann L:7000 indirekt auf R:8000 zugreifen.

6. Fazit

Lokale Portweiterleitung: lokale Anfrage === Remote-Anfrage Remote-Portweiterleitung: Remote-Anfrage === lokale Anfrage Dynamische Portweiterleitung: lokaler Zugriff auf alle externen Anfragen === Remote-Ersatz für den Zugriff auf alle externen Anfragen

Die oben genannten Portweiterleitungstypen können in Kombination verwendet werden und sind nicht auf denselben Typ beschränkt. Wenn Sie die Weiterleitung zu Ihrem Vorteil nutzen möchten, müssen Sie sich auf die praktische Anwendung verlassen.

Bisher geht es in diesem Artikel darum: Was ist SSH-Portweiterleitung? Was nützt das? Dies ist das Ende des Artikels. Weitere relevante Inhalte zur SSH-Portweiterleitung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Shell-Skripteinstellungen zum Verhindern von Brute-Force-SSH
  • Was ist SSH? Wie benutzt man? Was sind die Missverständnisse?
  • Detaillierte Erläuterung der Wissenspunkte zur Linux-Remoteverwaltung und SSHD-Dienstüberprüfung
  • So ändern Sie die SSH-Portnummer in der Centos8-Umgebung
  • SSH-Remoteverwaltungsdienst

<<:  Detaillierte Erklärung der HTML-Ereignisse „onfocus gain focus“ und „onblur lose focus“

>>:  JavaScript-Fehlerbehandlung try..catch...finally + umfasst throw+TypeError+RangeError

Artikel empfehlen

Rsync+crontab regelmäßige Synchronisierungssicherung unter centos7

In letzter Zeit möchte ich regelmäßig wichtige in...

Mit CSS3 3D-Effekten einen Würfel erstellen

Wenn wir lernen, die 3D-Effekte von CSS3 zum Erst...

Analyse des Unterschieds zwischen relativem und absolutem HTML-Pfad

Gerade HTML-Anfänger stehen häufig vor dem Problem...

FTP-Remoteverbindung zu Linux über SSH

Installieren Sie zunächst SSH in Linux. Nehmen Si...

Methode zur Optimierung von MySQL-Gruppenabfragen

MySQL behandelt GROUP BY- und DISTINCT-Abfragen i...

So löschen Sie eine MySQL-Tabelle

Das Löschen einer Tabelle in MySQL ist sehr einfa...

Angular Dependency Injection erklärt

Inhaltsverzeichnis Überblick 1. Abhängigkeitsinje...

Zusammenfassung der Erfahrungen mit der Verwendung des Div-Box-Modells

Berechnung des Boxmodells <br />Rand + Rahme...