Ich habe einen Oracle Linux-Gast, der einen Webserver in VirtualBox auf einem Windows 7-Host ausführt. Ich muss das Netzwerk einrichten, damit ich drei Dinge tun kann:
- Der Host kann über einen Browser und SSH eine Verbindung zum Gast herstellen
- Der Gast kann über das VPN des Hosts mit anderen Servern im internen Netzwerk kommunizieren
- Der Gast kann das Internet von außen erreichen
Ich habe ein paar Antworten gelesen und ein paar Konfigurationen ausprobiert. Folgendes passiert:
Überbrückt
- Gastgeber kann Gast nicht erreichen
- Gast kann nicht durch VPN sehen
- Gäste können das Internet erreichen
NAT
- Gastgeber kann Gast nicht erreichen
- Gast kann durch VPN sehen
- Der Gast kann das Internet nicht erreichen
Nur Host
Alle 3 Bedingungen schlagen fehl.
NAT-Netzwerk
- Gastgeber kann Gast nicht erreichen
- Gast kann durch VPN sehen
- Der Gast kann das Internet nicht erreichen
Ich sollte auch darauf hinweisen, dass der Host manchmal über ein VPN verbunden ist, während er ein anderes Mal einfach direkt in das Unternehmensnetzwerk eingesteckt wird. Wenn es direkt eingesteckt ist, erfüllt ein überbrückter Adapter alle 3 Bedingungen. Idealerweise gibt es eine Konfiguration, die alle drei Bedingungen erfüllt, unabhängig davon, ob ein VPN oder eine direkte Verbindung besteht.
networking
virtualbox
vpn
ewok
quelle
quelle
Antworten:
Ich hatte genau das gleiche Problem und habe es bis zur Lösung durchgespielt. Daher erkläre ich das Problem und die Lösung gerne ausführlich.
Ohne ein VPN einzubeziehen
Es ist wichtig zu wissen, welche Konfiguration erforderlich ist, um Ihre Anforderungen zu erfüllen, ohne dass ein VPN erforderlich ist . Außerdem wird in diesen Informationen davon ausgegangen, dass weder auf dem Host noch auf dem Gast eine Software-Firewall stört.
Ohne VPN wird dies normalerweise gelöst, indem zwei Netzwerkadapter in der Konfiguration der virtuellen Maschine erstellt werden.
Der erste Adapter muss in den
NAT
Modus versetzt werden, damit der Gast über die Netzwerkschnittstelle des Hosts auf Netzwerkressourcen (einschließlich des Internets) zugreifen kann.Der zweite Adapter muss auf gesetzt sein
Host-only
, um eine bidirektionale Kommunikation zwischen Host und Gast zu ermöglichen.Dieser Adapter ist in der Einrichtung etwas komplexer als der erste, da die globalen Netzwerkeinstellungen von VirtualBox geändert werden müssen, um den Nur-Host-Adapter zu konfigurieren (Hinweis: Hierfür sind Administratorrechte erforderlich).
Gehen Sie in VirtualBox zu
File -> Preferences -> Network
. Klicken Sie auf dieHost-only Networks
Registerkarte und dann auf das kleine+
Symbol, um einen neuen Adapter hinzuzufügen. Sie werden aufgefordert, die Berechtigungen von VirtualBox zu erhöhen.Das Ausfüllen des
Adapter
Tabs ist obligatorisch. Es sollte ungefähr so aussehen (ignorieren Sie den Adapter mit der Bezeichnung#2
; er wird für etwas verwendet, das nichts mit dem Problem zu tun hat):Die Werte auf der
DHCP
Registerkarte Server sind optional. Wenn Sie die IP-Adresse für diesen Adapter in der Netzwerkkonfiguration des Gasts fest codieren möchten, sind diese Werte nicht erforderlich. Wenn Sie andererseits DHCP verwenden möchten, sehen die Werte möglicherweise folgendermaßen aus:Der letzte Schritt in Bezug auf die Konfiguration von VirtualBox besteht darin, in die Netzwerkkonfiguration der VM zurückzukehren und den zweiten Adapter hinzuzufügen, der auf den soeben erstellten Host-Only-Adapter verweist:
Im Gastbetriebssystem muss das Netzwerk nun so konfiguriert werden, dass diese beiden Netzwerkschnittstellen verwendet werden.
Unter Debian oder Ubuntu GNU / Linux ist die Konfiguration so einfach wie das Ändern
/etc/network/interfaces
:(Der Purist mag es vorziehen,
/etc/network/interfaces.d
stattdessen das Verzeichnis zu verwenden, aber das würde den Rahmen dieser Erklärung sprengen.)Starten Sie die Netzwerkdienste des Gasts neu oder starten Sie ganz einfach die gesamte Gast-VM neu, und alles sollte "einfach funktionieren".
Zu diesem Zeitpunkt sollte es möglich sein, die Gast-VM zu pingen
192.168.56.101
und eine Antwort zu erhalten (vorausgesetzt, eine Software-Firewall stört nicht).Ebenso sollte man den Host anpingen können
10.0.2.2
. Diese IP-Adresse scheint in der NAT-Implementierung von VirtualBox "fest codiert" zu sein oder zumindest über eine nicht offensichtliche Konfigurationsanweisung angegeben zu werden, und es sind nur wenige Informationen zu ihrer Herkunft verfügbar. Aber leider "es funktioniert einfach".Bei dieser Konfiguration sind alle drei in Ihrer Frage genannten Bedingungen erfüllt.
Geben Sie ein: das VPN
Aber hier ist das Problem. Die Einführung des VPN führt zu einem Problem, das die Show stoppt (abhängig vom jeweiligen VPN und seiner Konfiguration).
Moderne VPNs sind in der Lage, Split-Tunneling durchzuführen. Dies ist erforderlich, damit die oben genannte VirtualBox-Konfiguration gemäß Ihren drei Anforderungen funktioniert. Aus (guten) Sicherheitsgründen wird Split-Tunneling häufig deaktiviert, und genau dies ist das Problem in Ihrem (und meinem) Fall.
Wenn Sie eine Verbindung zum VPN herstellen, überprüft der VPN-Client (in meinem Fall Cisco AnyConnect Secure Mobility Client, 3.1.02026) die Routing-Tabellen des Host-Computers, merkt sich diese und überträgt sie anschließend mit Werten, die normalerweise von einigen zentralen Standorten stammen. Verwalteter Speicherort (dh selbst mit lokalen Administratorrechten ist es nicht möglich, die Einstellungen zu überschreiben).
Sie können die Routingtabellen selbst überprüfen, indem Sie
command.exe
(unter Windows) Folgendes öffnen :Vor dem Herstellen einer VPN-Verbindung enthält die Routingtabelle wichtige Einträge, mit denen diese VirtualBox-Konfiguration ordnungsgemäß funktioniert. Wenn Sie eine Verbindung zum VPN herstellen, werden diese Einträge entfernt, wodurch die Kommunikation zwischen dem Host und dem Gast verhindert wird.
(Es gibt viele andere Einträge, die ich hier weggelassen habe, da sie für die Grundursache dieses Verhaltens irrelevant sind.)
Vor dem Herstellen einer Verbindung zum VPN:
Nach dem Verbinden mit dem VPN:
Der VPN-Client entfernt die folgenden Zeilen:
Ohne diese beiden letzten Einträge können der Host und der Gast nicht kommunizieren. Dies ist genau das beabsichtigte Verhalten, wenn Split-Tunneling in der VPN-Konfiguration deaktiviert ist.
Normalerweise würden diese beiden Befehle diese Routen wiederherstellen:
Der VPN-Client bleibt jedoch wachsam: Er fängt Versuche ab, die Routing-Tabelle zu ändern. Mein Kunde scheint den zweiten Eintrag zuzulassen, aber nicht den ersten. (Und es kann sein, dass beide in regelmäßigen Abständen überarbeitet werden. Ich habe das nicht getestet.)
Wenn Ihr spezifisches VPN und die Konfiguration der Telefonzentrale die Aktivierung von Split-Tunneling zulassen, wird es normalerweise folgendermaßen eingeschaltet:
Nach dem Trennen der Verbindung zum VPN stellen gut erzogene VPN-Clients die Routingtabellen wieder her, die vor dem Herstellen der Verbindung vorhanden waren. Mein VPN-Client scheint dies zuverlässig zu tun, was von Vorteil ist, da dies bedeutet, dass die Gast-VM nicht neu gestartet werden muss, wenn ich eine Verbindung zum VPN herstelle oder die Verbindung zum VPN trenne. In solchen Fällen wird der sekundäre Adapter der VM zurückgesetzt, die IP-Adresse wird jedoch automatisch und transparent wiederhergestellt, wodurch die Kommunikation zwischen Host und Gast fast sofort wiederhergestellt wird. Besser noch, NFS-Bereitstellungen zwischen Host und Gast (ich verwende CIFS-Bereitstellungen) bleiben über VPN-Verbindungs- / Trennungsvorgänge verbunden.
In dem unwahrscheinlichen Fall, dass Ihr VPN Split-Tunneling ermöglicht, kann es eine einfache Angelegenheit sein, es zu aktivieren. In diesem Fall würde ich gerne von Ihnen hören, ob "alles funktioniert" oder nicht.
quelle
Wie ich meine Windows-Host-VPN in Gast Linux Mint-Maschine
Stellen Sie mein VPN so ein, dass feste Portnummern in den Einstellungen verwendet werden
Setzen Sie vm network auf NAT
Legen Sie die Linux-Proxy-Einstellungen für IP 10.0.2.2 (Standard-NAT-Gateway für VirtualBox) und die Ports fest, die ich manuell für meinen VPN eingegeben habe
quelle