Ich versuche, eine Gruppe von Gästen in VirtualBox so einzurichten, dass jeder von ihnen auf das Internet zugreifen kann und für beide und den Host sichtbar ist. Ich möchte auch, dass die Gäste statische IP-Adressen haben.
Hier ist das Verfahren, das ich bisher befolgt habe:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp 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 gateway 192.168.56.254 dns-search cloudspace.local dns-nameservers 8.8.8.8 8.8.4.4
Wenn der Gast wieder hochfährt, funktioniert das Host-Only-Netzwerk einwandfrei. Die Rechnerpaare Host/Gast und Gast/Gast können sich gegenseitig anpingen, das Internet funktioniert jedoch nicht, da apt-get
fehlschlägt.
Wenn ich dann den Befehl service networking restart
gebe, funktioniert das Netzwerk ordnungsgemäß.
Was mache ich falsch?
Ich habe versucht, die Reihenfolge zu ändern, in der die Netzwerkkarten in der Datei /etc/network/interfaces
angezeigt werden. Ich habe außerdem das NAT/Host-Only-Netzwerk zwischen den beiden Netzwerkkarten ausgetauscht. Nichts hat geklappt.
Der Host ist Windows 8.1 und der Gast ist Ubuntu Server 13.10. Ich habe das gleiche unter Mac OS X mit ähnlichen Ergebnissen versucht.
Ich würde mich sehr über jede Hilfe freuen.
pdate:
Ich habe die Ausgabe der folgenden Befehle eingefügt, um die Diagnose zu erleichtern:
$ cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp 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 gateway 192.168.56.254 $ ifconfig -a eth0 Link encap:Ethernet HWaddr 08:00:27:75:47:64 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe75:4764/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:10 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1180 (1.1 KB) TX bytes:1332 (1.3 KB) eth1 Link encap:Ethernet HWaddr 08:00:27:93:98:d8 inet addr:192.168.56.1 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe93:98d8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:140 errors:0 dropped:0 overruns:0 frame:0 TX packets:225 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14418 (14.4 KB) TX bytes:27378 (27.3 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1184 (1.1 KB) TX bytes:1184 (1.1 KB) $ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.56.254 0.0.0.0 UG 0 0 0 eth1 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
pdate 2:
Nachdem ich Sudo service networking restart
ausgeführt habe, wird die Ausgabe von route -n
zu:
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Wie kann ich diese Konfiguration beim Booten sicherstellen?
Es ist einfacher, das Problem zu beheben, wenn Sie die Ergebnisse veröffentlichen, die beim Pingen einer externen Adresse (z. B. der von Ihnen verwendeten Google DNS-Server), der aktuellen Netzwerkeinstellungen und der Routing-Tabelle angezeigt werden.
/sbin/ifconfig -a
/sbin/route -n
Ohne mehr zu wissen, ist dies ein Schuss in die Dunkelheit, aber ich gehe davon aus, dass entweder a) Sie keine DHCP-Adresse für eth0 erhalten oder b) Ihre Gateway-Einstellungen für eth1 mit der zugewiesenen Standardroute für DHCP in Konflikt geraten.
Wenn Sie keine DHCP-Adresse für eth0 erhalten, ist dies wahrscheinlich eine Fehlkonfiguration in VirtualBox (wie das Zurückholen Ihrer Adapter).
In beiden Fällen benötigen Sie keine Gateway- oder DNS-Einstellungen, die speziell für eth1 zugewiesen wurden, da diese von DHCP für eth0 zugewiesen werden. Daher entferne ich die Zeilen gateway, dns-search und dns-nameservers aus Ihrer Konfiguration. Ihre virtuellen Maschinen können weiterhin ohne Gateway-Einstellung kommunizieren, wenn sie sich im selben Netzwerk befinden und VirtualBox richtig eingerichtet ist.
Edit: Um sicherzustellen, dass Sie nach einem Neustart kein Gateway auf eth1 haben, entfernen Sie die Zeilen aus Ihrem eth1-Block, damit es so aussieht:
auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
Wenn Sie fertig sind, enthält Ihre Interface-Datei keine Gateway-Leitungen mehr.
Ich habe diese Lösung gefunden, die der Antwort von @ jkt123 und der Frage von @ Umar entspricht, aber kürzer ist. Ich würde mich über Feedback freuen!
In virtualbox aktivieren Sie sowohl NAT als auch Host-only Netzwerke. (Übrigens: Es funktioniert auf meinem win7 Host. Ich weiß nicht, wie ich das unter Linux Host machen soll.).
Auf dem Host - finden Sie die IP-Adresse der "Nur-Host" -Schnittstelle
ipconfig /all # for windows Host
ifconfig -a # for linux Host
Im Gast editiere/etc/network/interfaces. Der Trick war Reihenfolge umkehren eth1 (nur Host) kommt VOR eth0 (Internet/DHCP). Ich weiß nicht warum.
auto lo # keep the original loopback settings
iface lo ... # yeah, i don't remember, just keep it.
# ----> Ok, this is my addition <-----
auto eth1
allow-hotplug eth1 # i think hotplug it helps. not sure.
iface eth1 inet static
address 192.168.56.100 # arbitrary IP address between 2 and 254
auto eth0 # This is the original content
iface eth0 inet dhcp # of this file, now at the end.
neustarten.
Zunächst habe ich beide Netzwerke NAT mit DHCP und Host only network mit static ip add 192.168.40.41
aktiviert.
Dann folgte ich mit diesem Befehl:
nano cat /etc/network/interfaces
Ich habe folgendes Ergebnis erhalten:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.41.4
netmask 255.255.255.0
Und vor dem Neustart habe ich den folgenden Befehl eingegeben:
Sudo service networking restart
Dann neu gestartet.
Nachdem ich in VM VirtualBox geladen habe, funktionieren beide Netzwerke. Ich kann eine Verbindung zum Internet herstellen und über einen Webbrowser eine Verbindung zu 192.168.40.41
herstellen.
Ich hoffe, dies wird hilfreich sein, um nano
Editor zu bekommen:
Sudo apt-get update
Sudo apt-get install nano
Geben Sie dann einfach nano
in das Terminal ein, um es zu starten.
Sie haben mehrere Standardgateways, die verschiedenen Netzwerkkarten zugewiesen sind. Im Allgemeinen bedeutet "Standard" eine vorausgewählte Option. Wenn in diesem Fall ein angegebenes Standard-Gateway für beide Netzwerkkarten definiert ist, ist dies keine vorausgewählte Option. Darüber hinaus würde dies auch zu Kommunikationsproblemen wie asynchronem Routing führen. Ich bin nicht sicher, wie die Metrik beider Schnittstellen auf 0 gesetzt ist, aber es kann daran liegen, dass beide Netzwerkkarten mit Gateways ausgestattet sind. Die diesbezüglichen Informationen von Microsoft finden Sie hier. Die Metrik-Funktion enthält eine Reihe von Faktoren, die bestimmen, wie Prioritäten festgelegt werden. (Link: https://support.Microsoft.com/de-de/help/299540/an-erklärung-der-automatischen-metrischen-Funktion-für-ipv4-Routen )
In Übereinstimmung mit @ jkt123 in der beantworteten Antwort sollte nur 1 Standard-Gateway zugewiesen werden.