Ich habe einen Linux-Server und möchte ihn in ein Heimnetzwerk hinter einem Router stellen. Ich muss irgendwann von außen auf diesen Server zugreifen, möchte aber keine Portweiterleitung einrichten, da ich keinen Zugriff auf den Router habe und auch die IP-Adresse des Routers nicht kenne.
Was ich tun kann, ist, ein Programm auf den Linux-Server zu setzen. Wenn es also mit dem Internet verbunden ist, sendet es ständig Daten an meinen anderen Server online, damit ich die IP-Adresse davon kenne. Aber gibt es eine Möglichkeit, von außen auf den Server hinter dem Router zu ssh zuzugreifen? so etwas wie NAT oder Socket, der die Netzwerkverbindung aufrechterhält?
Danke vielmals
quelle
autossh
um es offen zu halten.Sie können eine Art VPN verwenden, um dies zum Laufen zu bringen, benötigen jedoch einen Server, auf den der nicht zugreifbare Server zugreifen kann. Anschließend können Sie OpenVPN auf dem Server einrichten, Ihren PC und den Firewall-Server aktivieren
client-to-client
, und du bist fertig. http://openvpn.net/howto.htmlquelle
Lange Zeit, um zu antworten. Das Hoffen könnte jemandem helfen, der dasselbe jetzt sucht.
Wenn Sie auf einen Server hinter NAT zugreifen möchten und keinen Code schreiben möchten, können Sie wahrscheinlich eines der folgenden Tools verwenden, das Ihren Anforderungen entspricht.
Beide oben genannten Tools setzen voraus, dass Sie Zugriff auf den Linux-Computer haben, um dessen Client zu installieren Einige ihrer Vorteile sind:
Ich persönlich bevorzuge es, mehr zu treffen, da Sie das hosten können tmate server auf Ihrem eigenen Zwischenserver (für reverse ssh), während teleconsole nur für reverse ssh eine Verbindung zu ihren eigenen Servern herstellen kann.
quelle
Diese Antwort basiert auf der akzeptierten, fügt aber die Details hinzu, mit denen ich sie erledigen konnte. Ich entschuldige mich für die Erklärung des Fußgängers, da dies überhaupt nicht mein Fachwissen ist.
Angenommen, Sie haben zwei Computer,
A
undB
. Du möchtestssh
vonA
zuB
und Sie können in den mit ihnen verbundenen Routern keine Portweiterleitung durchführen.Wie die akzeptierte Antwort besagt, benötigen Sie einen Server
S
dazu: im computerB
, wirst du erlaubenssh
Verbindungen kommen vonS
; und vom ComputerA
, Sie werden diesen Tunnel unter betretenS
erreichenB
.Aber wie bekommt man den Server?
S
? ich fandserveo
(Verknüpfung: https://serveo.net/ ). Es ist sehr einfach zu bedienen. Sie müssen nichts installieren oder registrieren und es ist kostenlos. Laut der Website sind die folgenden Schritte zu befolgen:Stellen Sie sich einen Alias für den Computer vor
B
. Zum Beispiel,computer_B_alias
.Im Computer
B
, ausführenssh -R computer_B_alias:22:localhost:22 serveo.net
.Jetzt können Sie auf den Computer zugreifen
B
vom ComputerA
indem Sie auf dem Computer Folgendes ausführenA
:ssh -J serveo.net user@computer_B_alias
, wo Sie ersetzen müssenuser
durch den Namen des Benutzers in ComputerB
.P .: Natürlich machen Sie Punkt 2 zu einer automatischen Aufgabe, wenn Sie Ihren Computer starten
B
.P.S.S .: Bevor Sie dies versuchen, stellen Sie sicher, dass
ssh
ist auf beiden Computern installiert. Für Ubuntusudo apt-get install ssh
würde den Job machen.quelle