Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen

Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen

大家讲道理
Freigeben: 2017-05-28 10:29:21
Original
3498 Leute haben es durchsucht

Vorwort

Ich bin kürzlich auf ein solches Problem gestoßen, als ich im Labor einen Server für meine Junioren oder Freunde eingerichtet habe, um Linux zu üben Normalerweise gibt es hier im Labor kein Problem mit der direkten Verbindung, es ist alles Intranet. Das Problem tritt jedoch auf, wenn ich ins Wohnheim zurückkehre. Kinderschuhe können sich immer noch über das Campus-Netzwerk verbinden, junge reiche Leute können jedoch nicht über das externe Netzwerk auf das Intranet zugreifen. Gibt es eine Möglichkeit, über das externe Netzwerk eine Verbindung zum Intranetserver herzustellen? Die Antwort lautet „Ja“, es sind jedoch folgende Bedingungen erforderlich: ein Server, auf den vom externen Netzwerk aus zugegriffen werden kann.

1. Beschreiben Sie den aktuellen Maschinenzustand und klären Sie ihn:

PS: 123.123.123.123 wurde nur zufällig von mir ausgewählt


2. Um es für Laien auszudrücken: Es ist eine Maschine A als Reverse-Proxy für Maschine B; verwenden Sie dann Maschine B als Forward-Proxy, um lokale Ports weiterzuleiten

2.1 Vorbereitungen vor der Implementierung

Für jede Maschine erforderlich

Installieren
SSH-Client . Hier verwende ich Centos7, das mit SSH geliefert wird. Wenn Sie eine andere Linux-Version verwenden, googeln Sie diese bitte manuell.

2.2 Stellen Sie die verwendeten SSH-Parameter vor:

Reverse-Proxy

ssh -fCNRForward-Proxy

ssh -fCNL

-f 后台执行ssh指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
-L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口
-p 指定远程主机的端口

******************区分大小写啊各位亲******************
Nach dem Login kopieren
3. Zuerst auf A vorgehen:

Reverse-Proxy von Maschine A zu Maschine B einrichten. Die spezifischen Anweisungen sind

Hier habe ich Port verwendet 7280 von Maschine B und Port 22 von Maschine A. Gemäß den obigen Anweisungen ist der Vorgang wie folgt:
ssh -fCNR [B机器IP或省略]:[B机器端口]:[A机器的IP]:[A机器端口] [登陆B机器的用户名@服务器IP]
Nach dem Login kopieren

Um zu überprüfen, ob es gestartet wurde, können Sie den Befehl
ssh -fCNR 7280:localhost:22 root@123.123.123.123
Nach dem Login kopieren
verwenden, um Folgendes zu überprüfen:

ps aux | grep ssh

Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen

4. Gehen Sie dann auf B vor:

Richten Sie einen Forward-Proxy für die Weiterleitung ein >

Gemäß den in Schritt 3 eingegebenen Anweisungen stimmt der Port von Maschine B hier mit dem Port von Maschine B oben überein, und der Port 1234 ist auch der von Maschine B.

ssh -fCNL [A机器IP或省略]:[A机器端口]:[B机器的IP]:[B机器端口] [登陆B机器的用户名@B机器的IP]
Nach dem Login kopieren
Um zu überprüfen, ob es gestartet wurde, können Sie mit dem Befehl

prüfen:

ssh -fCNL *:1234:localhost:7280 localhost
Nach dem Login kopieren

ps aux | grep ssh

Der 1234-Port ist hier der lokale Weiterleitungsport, verantwortlich für die Kommunikation mit externen Parteien. Der Port 7280, der über das Internet kommuniziert und Daten weiterleitet, realisiert die Funktion, von anderen Maschinen aus zugänglich zu sein. Gleichzeitig weist das *-Zeichen darauf hin, dass der Zugriff von jeder IP aus möglich ist.

Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen

5. Es ist Zeit, das Wunder zu zeigen

Nachdem wir die AB-Maschine konfiguriert haben, können wir uns von einem Computer im externen Netzwerk aus im Intranet anmelden. Da sich mein aktueller Computer im internen Netzwerk befindet und die Server im externen Netzwerk (d. h. der konfigurierten Maschine B), kann ich über Maschine B eine Verbindung zu Maschine A in meinem internen Netzwerk herstellen. Die spezifischen Anweisungen lauten:

Der Parameter -p ist hier die angegebene Anmelde-IP. Wir haben oben Port 1234 als Weiterleitungsport angegeben, also verwenden wir Port 1234 zum Anmelden. Dann ist gdut728 der Benutzername von Maschine A im internen Netzwerk und 123.123.123.123 ist der Benutzername von Maschine B im externen Netzwerk.

ssh -p1234 gdut728@123.123.123.123
Nach dem Login kopieren

6. Diese Reverse-Proxy-Methode ist instabil. Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen

Leider schlägt dieser SSH-Reverse-Link aufgrund einer Zeitüberschreitung fehl. Der Kanal, der das externe Netzwerk mit dem internen Netzwerk verbindet, kann nicht aufrechterhalten werden. Aus diesem Grund benötigen wir eine andere Methode, um einen stabilen SSH-Reverse-Proxy-Tunnel bereitzustellen.

6.1 Bei jeder erneuten SSH-Verbindung müssen Sie das Passwort eingeben. Hier richten Sie also zunächst eine passwortfreie Anmeldung im Intranet ein.

Auf Maschine A im Intranet ausführen:

Je nach Port, den ich zuvor festgelegt habe, lautet dieser Befehl wie folgt

ssh-copy-id 内网用户名@外网IP -p指定转发的端口
Nach dem Login kopieren

ssh-copy-id gdut728@123.123.123.123 -p1234
Nach dem Login kopieren
Danach kann Maschine A im internen Netzwerk eine SSH-Verbindung herstellen Maschine B in meinem externen Netzwerk. Sie können sich ohne Passwort anmelden.

Um zu überprüfen, ob Sie sich ohne Passwort anmelden können, können Sie den folgenden Befehl verwenden:Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen


ssh root@123.123.123.123
Nach dem Login kopieren
6.2 Verwenden Sie Autossh, um einen stabilen Tunnel einzurichten.

Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellenCentos7 hat

nicht standardmäßig installiert. Verwenden Sie daher den folgenden Befehl, um

zu installieren Spezifische Autossh-Anweisungen: autossh

yum install autossh
Nach dem Login kopieren

Die Parameter sind die gleichen wie bei SSH, der Unterschied besteht jedoch darin, dass Autossh automatisch die Verbindung wiederherstellt, wenn der Tunnel getrennt wird, SSH jedoch nicht. Ein weiterer Unterschied ist der Parameter -M. Dieser Parameter gibt einen Port an, der von Maschine B im externen Netzwerk verwendet wird, um Informationen von Maschine A im internen Netzwerk zu empfangen wird zur Maschine A zurückgeschickt, damit er die Verbindung wiederherstellen kann.

autossh -M 7281 -fCNR 7280:localhost:22 root@123.123.123.123
Nach dem Login kopieren

autossh

7. Konfigurieren Sie schließlich Linux so, dass Autossh beim Booten automatisch gestartet wird, sodass Sie nach dem Neustart von Linux nicht mehr selbst Autossh starten müssen. Verwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen

Eingabe:

Inhalt hinzufügen:

vi /etc/rc.d/rc.local

Denn nach Centos7 wurde das ursprüngliche autossh -M 7281 -fCNR 7280:localhost:22 root@123.123.123.123 Startskript direkt geändert Funktion, die automatisch wirksam wird, muss erneut ausführbare Berechtigungen erhalten, da sie geändert wurde

und geben Sie dann <a href="http://www.php.cn/wiki/%20ein.%201294.html" target="_blank">chmod<code>/etc/rc.d/rc.local +x /etc/rc.d/rc.local

8. Fazit: <a href="http://www.php.cn/wiki/1294.html" target="_blank">chmod</a> +x /etc/rc.d/rc.local


Endlich konfiguriert. Ob die Verbindung derzeit getrennt wird, ist unklar. Mal sehen, was morgen passiert, und dann

Update

. Wenn etwas nicht stimmt, korrigieren Sie mich bitte ~

Beziehen Sie sich auf die folgende Website

SSH in das LAN vom externen Netzwerk, Reverse-Proxy + Forward-Proxy-Lösung

Verwenden Sie den SSH-Reverse-Tunnel für die Intranet-Penetration

Das obige ist der detaillierte Inhalt vonVerwenden Sie SSH-Reverse-Proxy und AutosSH, um vom externen Netzwerk aus eine Verbindung zum internen Netzwerk herzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
ssh
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage