it-swarm.com.de

Wie kann ich einen VirtualBox-Gast über einen Host extern mit SSH versorgen?

Ich habe ein Ubuntu VM auf meinem Windows 7-Rechner. Wie richte ich es ein, damit ich über SSH von außen auf den Webserver zugreifen kann?

Ich habe Schritte gefunden (SSH-Zugriff zwischen VirtualBox-Host und Gast-VMs einrichten), um von meinem Host aus auf meinen Gast zu sshen , aber ich habe immer noch das Problem, über meinen Router darauf zuzugreifen.

Ich nehme an, ich könnte einen SSH-Server auf meinem Windows-Computer installieren und dann einige Male tunneln (obwohl ich nicht 100% sicher bin, was ich lokal, dynamisch usw. verwenden soll oder wie ich mehrere Tunnel einrichten soll?). Aber gibt es eine Möglichkeit, den VM direkt auf meinen Router zuzugreifen, damit ich ihn direkt weiterleiten kann?

615
Jordan

Die beste Möglichkeit, sich bei einer Gast-Linux-VirtualBox VM anzumelden, ist Portweiterleitung . Standardmäßig sollte bereits eine Schnittstelle vorhanden sein, die NAT verwendet. Gehen Sie dann zu den Netzwerkeinstellungen und klicken Sie auf die Schaltfläche Portweiterleitung . Fügen Sie eine neue Regel hinzu. Geben Sie als Regelnamen "ssh" ein. Fügen Sie als "Host-Port" 3022 ein. Fügen Sie als "Gast-Port" 22 ein. Alles andere in der Regel kann leer gelassen werden.

oder von der Kommandozeile

VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"

dabei ist 'myserver' der Name der erstellten VM. Überprüfen Sie die hinzugefügten Regeln:

VBoxManage showvminfo myserver | grep 'Rule'

Das ist alles! Bitte stellen Sie sicher, dass Sie nicht vergessen, einen SSH Server in der VM zu installieren:

Sudo apt-get install openssh-server

Um SSH in die Gast-VM zu schreiben, schreiben Sie:

ssh -p 3022 [email protected]

Wobei user Ihr Benutzername in der VM ist.

1261
vkostromin

Ändern Sie den Adaptertyp in VirtualBox in Bridged, und legen Sie fest, dass der Gast DHCP verwendet, oder legen Sie eine statische IP-Adresse außerhalb der Grenzen von DHCP fest. Dadurch verhält sich die virtuelle Maschine wie ein normaler Gast in Ihrem Heimnetzwerk. Sie können dann weiterleiten.

128
JohnD

Das Beibehalten des NAT -Adapters und das Hinzufügen eines zweiten Host-only-Adapters funktioniert hervorragend und ist von entscheidender Bedeutung für Laptops (bei denen sich das externe Netzwerk immer ändert).

http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/

Denken Sie daran, ein Host-Only-Netzwerk in virtualbox selbst zu erstellen (GUI -> Einstellungen -> Netzwerk). Andernfalls können Sie die Host-Only-Schnittstelle nicht auf dem Gast erstellen.

65
orip

Vorgehensweise Nur-Host-Netzwerk ( besser als Bridged) für Solaris 10 und Ubuntu 16.04

Nur-Host-Schnittstelle hinzufügen

  1. Virtualbox> Datei> Einstellungen> Netzwerk> Nur-Host-Netzwerke> Hinzufügen
  2. Herunterfahren vm.
  3. VM-Einstellungen> Netzwerk. Erster Adapter sollte Nat sein, zweiter Host-only.
  4. Starten Sie cmd.exe und führen Sie ipconfig /all aus. Sie sollten Linien sehen:

    Ethernet adapter VirtualBox Host-Only Network:
       ...
       IPv4 Address. . . . . . . . . . . : 192.168.59.1
    

    Der zweite Adapter im Gast sollte ebenfalls 192.168.59 sein. *.

  5. Starten Sie die VM.

Solaris 10

  1. Überprüfen Sie Einstellungenifconfig -a. Sie sollten e1000g0 und e1000g1 sehen. Wir sind an e1000g1 interessiert.
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. Überprüfen Sie vom Host, ob diese Schnittstelle erreichbar ist: ping 192.168.56.10

Behalten Sie diese Einstellungen beim Neustart bei

# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot

Configure ssh service ( administration ) um sich als root anzumelden (nicht empfohlen)

Überprüfen Sie, ob ssh aktiviert ist

# svcs -a | grep ssh
online         15:29:57 svc:/network/ssh:default

Ändern Sie/etc/ssh/sshd_config entsprechend

PermitRootLogin yes

Starten Sie den ssh-Dienst neu

svcadm restart ssh

Überprüfen Sie es vom Host

ssh [email protected]

Ubuntu 16.04

Listenschnittstellen:

ip addr

Sie sollten drei Schnittstellen wie lo, enp0s3, enp0s8 sehen. Wir werden die dritte verwenden.

Bearbeiten Sie/etc/network/interfaces

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Dann Sudo ifup enp0s8. Überprüfen Sie, ob enp0s8 die richtige Adresse hat. Sie sollten Ihre IP sehen:

 $ ip addr show enp0s8
 ...
    inet 192.168.56.10/24 brd 192.168.56.255 scope global secondary enp0s8

Wenn nicht, können Sie Sudo ifdown enp0s8 && Sudo ifup enp0s8 ausführen.

https://superuser.com/questions/424083/virtualbox-Host-ssh-to-guest/424115#424115

22
rofrol

Sie können auch Bridged Network (oder "Bridge Adapter", in neueren Versionen) in Network Settings verwenden. Dadurch wird Ihr VM in ein VLAN mit Ihrem Computer verschoben. Sie können also einfach so in die VM ssh.

ssh user @ IP_OF_VM

20

Um von Ihrem Host-Computer aus auf Ubuntu VM zu sshen, das in VirtualBox ausgeführt wird, müssen Sie zwei Netzwerkadapter für die VM einrichten.

Beenden Sie zunächst das VM, falls noch nicht geschehen.

Wählen Sie dann das VM und klicken Sie in der VirtualBox-Symbolleiste auf das Menü Einstellungen:

enter image description here

Einrichten des Adapters 1

enter image description here

Adapter 2 einrichten

enter image description here

(Hinweis: Sie müssen keine Portweiterleitung einrichten.)

Das ist es. Nach dem Einrichten können Sie Ihre VM starten. In Ihrer VM sieht die Netzwerkkonfiguration wie folgt aus und Sie haben auch Internetzugang:

enter image description here

Auch auf Ihrem Host-Rechner können Sie auf Ihre VM ssh:

enter image description here

Stellen Sie sicher, dass der SSH-Server auf der VM installiert ist und ausgeführt wird.

$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D

Wenn nicht, installieren Sie es:

$ Sudo apt-get install openssh-server

Auch zu Ihrer Information:

  • Meine VirtualBox-Version: 5.2.6 r120293 (Qt5.6.2), 2018
  • Meine Ubuntu-Version: Ubuntu 16.04.3 LTS
  • Mein Host-Computer: Windows 10
11
Yuci

Für Windows Host können Sie:

  1. Im Virtualbox Manager:
    1. wählen ctrl+G in deinem virtualbox manager,
    2. dann gehe zum netzwerk pannel
    3. ein privates Netzwerk hinzufügen
      1. stellen Sie sicher, dass DHCP NICHT aktiviert ist
  2. In der Netzwerkverwaltung (Windows)
    1. Wählen Sie den neu erstellten Nur-Virtualbox-Host-Adapter und die physische Netzwerkkarte aus
    2. Rechtsklicke und wähle "Make bridge"
  3. Genießen
5

Befolgen Sie die nachstehenden Schritte, um sich auf Ihrem Ubuntu VM anzumelden, der auf dem Host-Computer mit PuTTY (ohne Portweiterleitung) in der virtuellen Box ausgeführt wird:

  1. Wählen Sie im Virtualbox-Manager das VM aus und klicken Sie auf das Einstellungssymbol. Gehen Sie dann zu "Netzwerke" und aktivieren Sie zwei Adapter wie folgt:

    • Adapter 1 (für Internetzugang): Angeschlossen an -> NAT, Erweitert -> Überprüfen Sie das angeschlossene Kabel.
    • Adapter 2: Angeschlossen an -> Nur Host-Adapter, Erweitert -> Überprüfen Sie das angeschlossene Kabel und den Promiscuous-Modus -> Alle zulassen.
  2. Starten Sie das Ubuntu VM.

  3. Melden Sie sich beim VM als root an.
  4. Bearbeiten Sie die Datei '/ etc/network/interfaces' wie folgt und speichern Sie sie:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. Starten Sie die VM neu.

  6. Melden Sie sich bei VM an und führen Sie den folgenden Befehl aus, um die eth1 zugewiesene IP zu überprüfen:

    ifconfig
    
  7. Verwenden Sie diese IP, um die PuTTY-Sitzung für die VM zu öffnen.

4
Piyush Raj

Sie können von Ihrem Gast auch eine Portweiterleitung an Ihren Host, OR JEDEN ANDEREN SERVER, initiieren. Dies ist besonders nützlich, wenn Ihr Gast "gesperrt" ist oder die Option "ModifyVM" auf andere Weise nicht ausführen kann (z. B. keine Berechtigung für VBoxManage).

Drei kleinere Anforderungen sind: 1) Sie sind/können sich beim VirtualBox-Gast anmelden (über die 'Konsolen'-GUI, einen anderen Gast usw.), 2) Sie haben ein Konto beim VirtualBox-Host (oder einem anderen Server) und 3) SSH und TCP Weiterleitung ist nicht blockiert.

Vorausgesetzt, Sie können die 3 Anforderungen erfüllen, sind dies die Schritte:

  1. Führen Sie auf dem Gast netstat -rn aus und suchen Sie die Gateway-Adresse für das Standardroutenziel 0.0.0.0. Angenommen, es ist "10.0.2.2". Diese 'Gateway'-Adresse ist eine der virtuellen IP-Adressen des VirtualBox-Hosts.
  2. Führen Sie auf dem Guest ssh -R 2222:localhost:22 10.0.2.2 aus, wobei "10.0.2.2" die IP-Adresse des VirtualBox-Servers ist - oder eine andere Server-IP, an die Sie weiterleiten möchten.
  3. Führen Sie auf dem Host ssh 10.0.2.2 -p2222 aus, wobei 10.0.2.2 die in Schritt 1 festgelegte virtuelle Gateway-/VBHost-IP ist. Wenn es sich NICHT um den VirtualBox-Host handelt, zu dem Sie eine Portweiterleitung durchführen, lautet der Befehl ssh localhost -p2222.
4
Andrew

Eine gute Erklärung zum Konfigurieren der Portweiterleitung mit NAT finden Sie in den VirtualBox-Dokumenten: http://www.virtualbox.org/manual/ch06.html#natforward

2
rodrunner

Ubuntu 18.04 LTS

Konfiguration mit Bridged, um die Server-IP zu sehen und ohne "Port-Weiterleitung" zu verbinden

VirtualBox> Rechtsklick in Server> Einstellungen> Netzwerk> Adapter 2 aktivieren> "Bridged" auswählen> Promiscuous-Modus: Alle zulassen> Kabelverbindung prüfen> Server starten

Bearbeiten Sie auf dem Ubuntu-Server die Datei Sudo nano /etc/netplan/*init.yaml,

Meine Beispieldatei:

network:
    ethernets:
        enp0s3:
            addresses: []
            dhcp4: true
        enp0s8:
            addresses: [192.168.0.200/24]
            dhcp4: no
            dhcp6: no
            nameservers:
               addresses: [8.8.8.8, 8.8.4.4]
    version: 2

Befehle, die Ihnen helfen werden

nano /etc/netplan/file.yaml   # file to specify the rules of network
reboot now          # restart ubuntu server right now
netplan apply       # do after edited *.yaml, to apply changes
ifconfig -a         # show interfaces with ip, netmask, broadcast, etc...
ping google.com     # to see if there is internet

Statische IP-Adressen auf Ubuntu 18.04 LTS Server konfigurieren - mit NetPlan

1
DarckBlezzer

Einfach die Netzwerkeinstellung auf Bridged zu setzen, hat den Trick für mich getan.

Ihre IP-Adresse ändert sich, wenn Sie dies tun. In meinem Fall änderte sich dies jedoch nicht sofort. ifconfig hat dieselbe IP zurückgegeben. Ich habe das VM und den Boom neu gestartet, die IP hat sich auf einen Start mit 192 gesetzt. * Und mir wurde sofort SSH-Zugriff gewährt.

0
boulder_ruby

Verwenden Sie den Netzwerkadapter NAT und Portweiterleitung hinzufügen. Erwähnen Sie die tatsächliche Host-IP. Verwenden Sie nicht 127.0.0.1 oder localhost.

0
anunaki

In sicheren Netzwerken funktioniert das Einstellen Ihres Netzwerks auf Bridge möglicherweise nicht. Administratoren konnten nur eine Mac-Adresse pro Port zulassen oder sogar den Port blockieren, falls die Switches mehrere Macs an einem Port erkennen.

Meiner Meinung nach ist die beste Lösung, zusätzliche Netzwerkschnittstellen einzurichten, um zusätzliche Dienste zu verwalten, die Sie auf Ihren Computern ausführen möchten. Ich habe also eine Bridge-Schnittstelle, die das Bridgen ermöglicht, wenn ich meinen Laptop mit nach Hause nehme, und kann SSH von anderen Geräten in meinem Netzwerk sowie einen Host-Only-Adapter verwenden, wenn ich SSH von meinem VM aus verwenden möchte Mein Laptop, wenn ich mit dem WLAN-Netzwerk von eduroam auf dem Campus verbunden bin.

0
tensai