Virtualbox NAT + Host-Only-Adapter

Virtualbox NAT + Host-Only-Adapter

Mein Host ist Ubuntu 12.04 und der Gast ist ein Debian Squeeze (LAMP-Server). Ich möchte dem Host erlauben, sich mit dem Gast zu verbinden. Und dem Gast erlauben, sich mit dem Internet zu verbinden. Der Gast sollte nicht von außen aktiviert werden. Das ist der Grund, warum ich keine Netzwerkbrücke verwende. Ich möchte eine statische IP für den Host einrichten. Ich bin gefolgtdieses Tutorial.

Ich habe diese Schritte also ausgeführt, kann mich aber nicht vom Host zum Gast verbinden ssh. Ich kann den Server nicht über den Browser aufrufen. pingFunktioniert jedoch!

Ich habe einen virtuellen Host-Only-Netzwerkadapter ( vboxnet0) mit folgenden Einstellungen erstellt:

IPv4-Adress: 192.168.56.1
IPv4-Netmask: 255.255.255.0

ifconfigim Ubuntu-Host wird Folgendes angezeigt:

eth0      Link encap:Ethernet  Hardware Adresse XX:XX:XX:XX:XX:XX  
          inet Adresse:192.168.2.100  Bcast:192.168.2.255  Maske:255.255.255.0
          inet6-Adresse: XXXX:XXX:XXXX:XXXX:X:X/XX Gültigkeitsbereich:Global


vboxnet0  Link encap:Ethernet  Hardware Adresse XX:XX:XX:XX:XX:XX  
          inet Adresse:192.168.56.1  Bcast:192.168.56.255  Maske:255.255.255.0
          inet6-Adresse: XXXX:XXX:XXXX:XXXX:X:X/XX Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10069 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:0 (0.0 B)  TX-Bytes:1539501 (1.5 MB)

Auf dem Debian-Squeeze-Gast /etc/network/interfacessieht das folgendermaßen aus:

 # The host-only network interface
   auto eth1
   iface eth1 inet static
   address 192.168.56.1
   netmask 255.255.255.0
   network 192.168.56.0
   broadcast 192.168.56.255

Ich habe bereits versucht, zu zu wechseln, eth1ohne eth0Ergebnis.

In den VirtualBox-Einstellungen ermöglicht der Promiscuous-Modus die Verbindung von VMs und Hosts.

Ich bin an die Grenzen meines Wissens gestoßen.

die Ausgabe von:

netstat --inet --inet6 -ln | grep :22

ist nichts.

die Ausgabe von:

sudo iptables -L INPUT -nv

Ist:

 Chain INPUT (policy ACCEPT 166 packets, 30786 bytes)
  pkts bytes target     prot opt in     out     source               destination 

Antwort1

Sie sollten in Ihrem Gast nicht dieselbe IP-Adresse verwenden (wie die auf der Host-Schnittstelle). Wenn Sie vboxnet0 auf dem Host auf die IP-Adresse 192.168.56.1 einrichten, sollten Sie in Ihrem Gast beispielsweise 192.168.56.2 verwenden. Das Gateway für Ihren Gast sollte die IP des Hosts sein (in Ihrem Fall 192.168.56.1).

Dies sollte die Verbindung Host<->Gast herstellen. Wenn Sie möchten, dass Ihr Gast auch Internet hat, sollten Sie seine IP (oder das Netzwerk) auf Ihrem Host maskieren.

iptables -t nat -I POSTROUTING -s 192.168.56.0/24 -j MASQUERADE
sysctl net.ipv4.ip_forward=1

Möglicherweise müssen Sie die Standardrichtlinie so festlegen, dass Ihr maskiertes Netzwerk weitergeleitet wird, oder es speziell aktivieren:

iptables -P FORWARD ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

Hinweis: Sie können diese Zeilen mit Root ausführen, um Ihrem Gast den Internetzugang zu ermöglichen. Diese Zeilen sollten jedoch wahrscheinlich in die Firewall-Konfiguration Ihres Hosts (z. B. ufw) gehen. Die Sysctl-Konfigurationsdatei lautet: /etc/sysctl.conf. Sie können dort ip_forward festlegen, wenn Sie es immer aktiviert haben möchten.

verwandte Informationen