Per SSH aus der Ferne auf eine Ubuntu-VM zugreifen

Per SSH aus der Ferne auf eine Ubuntu-VM zugreifen

Ich habe nicht viel Erfahrung mit Netzwerken oder Linux, aber ich versuche, mich von außerhalb meines Heimnetzwerks per SSH mit einer virtuellen Ubuntu-Maschine zu verbinden. Die virtuelle Ubuntu-Maschine (VirtualBox) läuft auf einem Debian-Desktop. Ich habe ein bisschen recherchiert und herausgefunden, dass ich Port 22 vom Router an die virtuelle Maschine weiterleiten muss.

  • Ich habe die Netzwerkeinstellung der VM auf Bridge geändert.
  • Ich leite den Port an die VM weiter.
  • Ich überprüfte (http://www.yougetsignal.com/), um den Port als offen anzuzeigen.

Aber wenn ich versuche, eine Verbindung herzustellen, funktioniert es immer noch nicht. ssh username@ -- Verbindung abgelehnt

Muss ich in der virtuellen Maschine etwas tun, um eingehende Verbindungen zuzulassen? Oder einen Port weiterleiten?

Mache ich etwas falsch? Ich wäre für jede Hilfe sehr dankbar!

Antwort1

Standardmäßig arbeitet VirtualBox im „NAT“-Modus, was bedeutet, dass es ein „virtuelles“ Netzwerk erstellt und Netzwerkzugriffe von der VM übersetzt, sodass es für die Außenwelt so aussieht, als kämen sie von Ihrem tatsächlichen Computer.

VirtualBox lässt die VM glauben, sie sei mit einem Netzwerk verbunden, aber in Wirklichkeit stellt VirtualBox Netzwerkdienste bereit, darunter einen Mini-DHCP-Server. Dann führt VirtualBox Netzwerkzugriffe „im Namen“ der VM durch, sodass sie wie eine weitere Anwendung aussieht, die auf Ihrem PC ausgeführt wird.

Dies bedeutet jedoch, dass die Außenwelt nichts von der VM weiß und nicht direkt darauf zugreifen kann.

Ich glaube, die Portumleitung, die Sie durchgeführt haben, war von Ihrem Heimrouter zu Ihrem PC, nicht zur VM. Möglicherweise fehlt Ihnen eine Konfiguration auf der VirtualBox-Seite. Entschuldigen Sie, wenn Sie dies bereits getan haben, aber Ihre Frage war diesbezüglich nicht klar.

Grundsätzlich müssen Sie die Netzwerkkonfiguration der VM ändern und auf „Bridged“ setzen. Dadurch wird eine virtuelle Schnittstelle auf Ihrem PC erstellt und die VM verwendet diese, um auf die Außenwelt zuzugreifen. Alles, was in diese Schnittstelle eingeht oder dorthin geht, wird an die VM weitergeleitet. Somit ist die VM in dem Netzwerk, mit dem Ihr PC verbunden ist, als eine weitere Maschine sichtbar (sie hat sogar ihre eigene MAC-Adresse!).

Abhängig von der Konfiguration Ihres Netzwerks erhält die VM dann möglicherweise eine DHCP-Adresse wie jeder andere PC, der mit Ihrem Router verbunden ist, oder Sie müssen eine statische IP-Adresse dafür konfigurieren. Dies hängt davon ab, wie Ihr Netzwerk eingerichtet ist.

Sobald die VM eine „echte“ Adresse hat, können Sie auf Ihrem Router den Anweisungen folgen, um Port 22 an die IP-Adresse der VM weiterzuleiten. Dies sollte wie erwartet funktionieren.

Wenn dies nicht der Fall ist:

  • Sehen Sie sich die Firewall-Konfiguration Ihrer VM an (iptables -L -n). Blockiert sie etwas?
  • Richten Sie einen weiteren Computer in Ihrem lokalen Netzwerk ein und versuchen Sie, per SSH auf die IP-Adresse der VM zuzugreifen. Wenn das möglich ist, müssen Sie die Weiterleitungskonfiguration in Ihrem Router noch einmal überprüfen. Wenn das nicht möglich ist, müssen Sie die SSH- und Firewall-Konfiguration der VM erneut überprüfen.

Antwort2

so wie ich das verstehe, liegt Ihr Problem an Ihrem Server-Computernetzwerk, denn wenn Sie das VM-Netzwerk erst einmal im Bridge-Modus eingerichtet haben, kann es losgehen (überprüfen Sie dies über die ssh <your.vm.ip.number>Befehlszeile Ihres Servers – nicht in der VM).

Ihr Server befindet sich hinter einem Router, genau wie eine VM, die NAT auf Ihrem Computer verwendet.

Sie müssen sich an den Netzwerkadministrator Ihres Servers wenden, damit er die lokale IP-Adresse Ihrer VM an einen Port/Portbereich weiterleiten kann (stellen Sie sicher, dass Ihre VM eine statische IP-Adresse hat).

Sie können dies selbst tun, wenn Sie auf Ihrem Server-Gateway die entsprechende Berechtigung dazu haben.

eine kleine Visualisierung:

Internet
     '---ROUTER (SERVER1 and SERVER2 use NAT on this router)
            |   (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
            | 
            '--- SERVER1 (vm1, vm2, vm3 use Bridge)
            |       '---vm1
            |       '---vm2
            |       '---vm3
            '--- SERVER1 (vm4, vm5 use Bridge)
            |       '---vm4
            |       '---vm5

Antwort3

Angesichts Ihrer Situation müssen Sie die Firewall für Ihre VM anscheinend wie folgt konfigurieren: $ sudo ufw allow ssh

Antwort4

Dies ist auch im "NAT-Modus" möglich. Oracle VM Virtualbox verfügt über eine Portweiterleitungsfunktion.

Gehen Sie zu Virtualbox-Einstellungen > Netzwerk > Adapter (NAT) > Erweitert > Portweiterleitung

Erweitert > Portweiterleitung

verwandte Informationen