Auf meinem Laptop läuft eine Ubuntu-VM-Instanz. Sowohl Host als auch VM verwenden dasselbe Betriebssystem - Ubuntu 12.04. Ich habe versucht, vom Host aus per SSH zu kommunizieren, wie
ssh username@<VM-IP>
Es versucht es eine Zeit lang und sagt dann
ssh: connect to host <ip-address> port 22: Connection timed out
Dann habe ich versucht zu pingen
Ich bekomme 100% packet loss
. Ich vermute, das liegt daran, dass es keine etablierte Route gibt. Wie kann ich das beheben?
Antwort1
Einfacher Weg: Gehen Sie zu „Netzwerkeinstellungen“, „Portweiterleitung“ und fügen Sie eine Regel hinzu, um VM-Port 22 beispielsweise Port 9022 auf dem Host zuzuordnen. Führen Sie dann aus ssh localhost -p 9022
.
Besserer Weg: Installieren Sie das Ubuntu- lxc
Paket, gehen Sie dann in VirtualBox zur VM Network settings
, stellen Sie Attached to
auf ein Bridged Adapter
, stellen Sie Name
auf ein lxcbr0
, starten Sie die virtuelle Maschine neu und sie erhält eine neue IP, die vom Host aus erreichbar ist. Wenn Sie das tun, starten Sie jedoch niemals gleichzeitig einen LXC-Container und eine VirtualBox-VM, die an dieselbe Bridge angeschlossen sind, da der Host sonst durchdrehen könnte (irgendwo ein ziemlich hässlicher Fehler).
Antwort2
Gehen Sie in die Netzwerkeinstellungen von Virtualbox und ändern Sie den Netzwerkadapter entweder auf „Bridged“ oder „Nur Host“. Stellen Sie sicher, dass sich die IP-Adresse der VM im selben Subnetz befindet wie die des Hosts.
Antwort3
Überprüfen Sie, ob Sie den Server installiert haben openssh-server
.
sudo apt-get install openssh-server
Überprüfen Sie dann, ob der richtige Port aktiviert ist
/etc/ssh/sshd_config
wenn Sie mit einer anderen Portnummer als von außen darauf zugreifen oder Ihr Router eine Regel zur Weiterleitung an einen anderen Port hat
Möglicherweise müssen Sie dort auch die Auskommentierung aufheben, wenn Sie per Kennwort autorisiert werden möchten.
#PasswordAuthentication yes
Aktivieren Sie den gleichen Port (Standard 22) für die Weiterleitung in der Netzwerkkonfiguration Ihrer virtuellen Maschine.