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.1 Vorbereitungen vor der Implementierung
2.2 Stellen Sie die verwendeten SSH-Parameter vor:
ssh -fCNR
Forward-Proxy
ssh -fCNL
-f 后台执行ssh指令 -C 允许压缩数据 -N 不执行远程指令 -R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口 -L 将本地机(客户机)的某个端口转发到远端指定机器的指定端口 -p 指定远程主机的端口 ******************区分大小写啊各位亲******************
ssh -fCNR [B机器IP或省略]:[B机器端口]:[A机器的IP]:[A机器端口] [登陆B机器的用户名@服务器IP]
ssh -fCNR 7280:localhost:22 root@123.123.123.123
ps aux | grep ssh
ssh -fCNL [A机器IP或省略]:[A机器端口]:[B机器的IP]:[B机器端口] [登陆B机器的用户名@B机器的IP]
prüfen:
ssh -fCNL *:1234:localhost:7280 localhost
ps aux | grep ssh
ssh -p1234 gdut728@123.123.123.123
6. Diese Reverse-Proxy-Methode ist instabil.
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.Auf Maschine A im Intranet ausführen:
Je nach Port, den ich zuvor festgelegt habe, lautet dieser Befehl wie folgtssh-copy-id 内网用户名@外网IP -p指定转发的端口
ssh-copy-id gdut728@123.123.123.123 -p1234
Um zu überprüfen, ob Sie sich ohne Passwort anmelden können, können Sie den folgenden Befehl verwenden:
ssh root@123.123.123.123
Centos7 hat
nicht standardmäßig installiert. Verwenden Sie daher den folgenden Befehl, um zu installieren Spezifische Autossh-Anweisungen: autossh
yum install autossh
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
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.
Eingabe: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
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!