Headless VirtualBox VM NAT-Netzwerk

1

Ich habe einen Remote-Linux-Server, auf den nur über SSH zugegriffen werden kann.

Mein Ziel ist es, mithilfe von VirtualBox mehrere virtuelle Maschinen auf diesem Hostserver zu hosten. Der Host-Server hat 1 IP-Adresse, daher wird NAT zum Weiterleiten an die VMs verwendet. Beispiel: 10022 wird an Server1: 22 weitergeleitet, und 20022 wird an Server2: 22 weitergeleitet.

Ich habe VirtualBox installiert und eine vorkonfigurierte CentOS-VM auf den Hostserver kopiert.

Ich starte die VM, kann aber keine Verbindung zum Server herstellen, z. B. ssh -p 10022 127.0.0.1 Timeout.

Ich habe viele Dinge ausprobiert:

Methode 1: Vorhandenes .vdi kopiert, an neue VM angehängt
Methode 2: Importierte .Ova-VM (Ich dachte, es würde bei Problemen mit der MAC-Neuinitialisierung helfen?)

NAT-Netzwerktyp, versucht natnet1 192.168 / 16 und 10.0 / 16
VBoxManage modifyvm "hermes.awoms.com" --natnet1 "192.168/16"

Portweiterleitung mit und ohne Angabe der VM-IP im Befehl modifyvm --natpf1
VBoxManage modifyvm "hermes" --natpf1 "guestssh,tcp,,10022,,,22"
VBoxManage modifyvm "hermes" --natpf1 "guestssh,tcp,,10022,192.168.0.15,22"

Ich kann nicht sehen, ob die VM gerade startet ( VBoxHeadless "hermes" --start & läuft ohne Fehler) Ich kann nicht feststellen, ob VM eine IP-Adresse erhält

Kann ich noch etwas tun, um weitere Informationen von VirtualBox oder der VM zu erhalten, wenn der einzige Zugriff, den ich habe, SSH ist?

Brock Hensley
quelle
Könnten Sie bitte überprüfen: 1. Wenn der Prozess der VM während des Startvorgangs eine Aktivität anzeigt. --- 2. Wenn der DHCP-Server eine IP-Adresse geleast hat. Ich vermute, Sie beziehen sich auf eine DHCP-Lease in Ich kann nicht feststellen, ob VM eine IP-Adresse erhält --- 3. Versuchen Sie, direkt (ohne NAT) auf die geleaste IP-Adresse zuzugreifen. --- 4. Aktivieren Sie die serielle Konsole im Gast und versuchen Sie, eine Verbindung über einen virtuellen seriellen Port herzustellen.
pabouk

Antworten:

1

Das sollte einfach funktionieren.

Ihre VM ist möglicherweise nicht in der Lage, den Startvorgang abzuschließen, oder hat eine falsche eth0-Netzwerkkonfiguration (nicht unterstützte Netzwerkkarte, DHCP-Client nicht aktiviert).

Ich würde Ihnen vorschlagen, VRDP (oder VNC, wenn Sie OSE verwenden) zu verwenden, um zu sehen, was in Ihrer VM vor sich geht ( http://www.virtualbox.org/manual/ch07.html / http://www.virtualbox.org/manual/ch09.html#otherextpacks )

jlliagre
quelle
Ja, ich wusste nicht, dass Sie MSTSC (Windows RDP) damit verwenden können! Es liegt eine Fehlermeldung vor "This kernel requires an x86-64 CPU, but only detected an i686 CPU. Unable to boot - please use a kernel appropriate for your CPU"
Brock Hensley
0

Der Versuch, eine Verbindung über herzustellen

ssh -p 10022 127.0.0.1

ist mit Sicherheit gescheitert: Sie versuchen, über Port 10022 eine Verbindung zu demselben Computer herzustellen, von dem aus Sie den Befehl ausführen. Dies ist nicht das, was Sie möchten. Sie wissen also nicht wirklich, ob die Installation funktioniert oder nicht, weil Ihre Kommunikationsmittel mit dem Gast nicht korrekt sind.

Auf Ihrem Linux-Server können Sie versuchen, mit Ihrem Gast Kontakt aufzunehmen, indem Sie einen Ping-Befehl senden:

ping -c3 10.0.0.15

10.0.0.15 ist die Standard-IP-Adresse, die VBox NAT-Clients gibt. Wenn dies fehlschlägt, können Sie versuchen, nmap zu verwenden:

sudo nmap -sn 10.0.0.0/24

Dies sollte die IP des Gasts identifizieren, wenn Sie die Standardeinstellungen beibehalten haben.

Wenn der Gast antwortet, können Sie jetzt versuchen, eine Verbindung herzustellen: vom Server,

ssh [email protected]

oder was auch immer die Gast-IP war. Zu diesem Zeitpunkt müssen Sie Ihre VM anweisen, Port 10022 auf ssh-Kommunikation zu überwachen. Stellen Sie zunächst sicher, dass Sie das Paket mit dem SSH-Server heruntergeladen haben, bearbeiten Sie dann die Datei / etc / ssh / sshd_config und ändern Sie die Zeile

 Port 22

in die Linie

 Port 10022

Starten Sie nun den ssh-Server neu und verlassen Sie das Gastbetriebssystem.

Von einem anderen Rechner im LAN darfst du jetzt

ssh -p 10022 myname@IP

wo ich durch IP die IP-Adresse des Linux-Servers anzeigte. Damit sollten Sie zumindest loslegen

MariusMatutiae
quelle
1
Mark, Sie (und diejenigen, die Ihre Antwort bewertet haben) verstehen falsch, wie NAT und Portweiterleitung funktionieren. Schauen Sie doch mal rein virtualbox.org/manual/ch06.html#natforward
jlliagre
Auf welchen Teil beziehen Sie sich genau? Ping funktioniert, er leitet keine privilegierten Ports weiter.
NAT von Loopback-Adressen (127.0.0.0/8) sollte möglich sein. Kannst du bitte erklären, warum du zu Beginn deines Posts etwas anderes erzählst?
pabouk
1
@ Mark, ich fürchte, das meiste, was du geschrieben hast, ist falsch. ssh -p 10022 localhost sollte einfach funktionieren. Fast alle Ihre anderen Vorschläge sollten fehlschlagen (ping, nmap, ssh @ 10.0.0.15), aber 'ssh -p 10022 meinname @ IP', was möglicherweise funktioniert, aber nur, wenn meinname ein gültiger Benutzer in der VM ist.
jlliagre