Lösung für das Problem, dass die virtuelle Virtualbox-Maschine im NAT-Modus keine Verbindung zum externen Netzwerk herstellen kann

Lösung für das Problem, dass die virtuelle Virtualbox-Maschine im NAT-Modus keine Verbindung zum externen Netzwerk herstellen kann

Hintergrund

Für die virtuelle VirtualBox-Maschine (geladen mit dem Ubuntu 16.04-System) sind zwei Netzwerkkarten konfiguriert, und die Netzwerkmodi sind „Network Address Translation (NAT)“ und „Host-Only Adapter“. Unter ihnen wird die enp0s3-Netzwerkkarte (NAT) für den externen Netzwerkzugriff und die enp0s8-Netzwerkkarte (Host-Only) für den Hostzugriff auf die virtuelle Maschine verwendet. Nachdem die virtuelle Maschine jedoch gestartet wurde, kann sie nicht mehr auf das externe Netzwerk zugreifen.

Position

Die Netzwerkkonfigurationsdatei sieht wie folgt aus:

# vi /etc/Netzwerk/Schnittstelle

...
# Die primäre Netzwerkschnittstelle
auto enp0s3
iface enp0s3 inet dhcp

auto enp0s8
iface enp0s8 inet statisch
Adresse 192.168.137.16
Netzmaske 255.255.255.0
Gateway 192.168.137.1

eth0 verwendet DHCP und eth1 verwendet statisch. Das eigentliche Netzwerk von eth0 ist wie folgt:

# ifconfig 
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 10.0.2.15 Netzmaske 255.255.255.0 Broadcast 10.0.2.255
    inet6 fe80::a00:27ff:fe55:2858 Präfixlänge 64 Bereichs-ID 0x20<link>
    Ether 08:00:27:55:28:58 txqueuelen 1000 (Ethernet)
    RX-Pakete 6 Bytes 1476 (1,4 KB)
    RX-Fehler 0 verloren 0 Überläufe 0 Frame 0
    TX-Pakete 33 Bytes 3108 (3,1 KB)
    TX-Fehler 0 verloren 0 Überläufe 0 Träger 0 Kollisionen 0

Nachdem ich die Route geöffnet hatte, fand ich das Problem.

# Route -n
Kernel-IP-Routing-Tabelle
Ziel-Gateway Genmask Flags Metrik Ref Verwendung Iface
0.0.0.0 192.168.137.1 0.0.0.0 UG 0 0 0 enp0s8
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
192.168.137.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s8

Die Netzwerkkarte enp0s8 wird zur Standardroute, was bedeutet, dass Netzwerksegmente, die nicht mit anderen Routen übereinstimmen, über die Netzwerkkarte enp0s8 laufen. Die virtuelle Netzwerkkarte, die wir tatsächlich für die Verbindung mit dem externen Netzwerk konfigurieren, ist jedoch enp0s3, sodass die Umgebung natürlich keine Verbindung mit dem externen Netzwerk herstellen kann. Wir können versuchen, die aktuelle Standardroute manuell zu löschen.

# route del Standard
# Route standardmäßig hinzufügen gw 10.0.2.2 dev enp0s3
# Route -n

Kernel-IP-Routing-Tabelle
Ziel-Gateway Genmask Flags Metrik Ref Verwendung Iface
Standard-Gateway 0.0.0.0 UG 0 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
192.168.137.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s8

Das Routing wurde erfolgreich eingerichtet und das Betriebssystem kann auf das externe Netzwerk zugreifen. Dadurch werden die Routing-Einstellungen jedoch nur für dieses Mal geändert. Nach einem Neustart des Betriebssystems werden sie ungültig. Daher müssen wir die Konfiguration dauerhaft machen.

Permanente Routing-Konfiguration

Wir legen die Routenpersistenz in der Netzwerkkonfigurationsdatei /etc/network/interfaces fest. Fügen Sie nach dem Starten der Netzwerkkarte den entsprechenden Code zum Hinzufügen und Löschen der Route hinzu. Er ähnelt dem Routenbefehl, mit der Ausnahme, dass am Satzanfang „up“ hinzugefügt wird.

# vi /etc/Netzwerk/Schnittstellen
...
auto enp0s3
iface enp0s3 inet dhcp
Up-Route hinzufügen Standard gw 10.0.2.2 dev enp0s3

auto enp0s8
iface enp0s8 inet statisch
Adresse 192.168.137.16
Netzmaske 255.255.255.0
Gateway 192.168.137.1
nach oben Route del Standard dev enp0s8

Hinweis: In der Anweisung „up route add default gw [Gateway-Adresse] dev [Gerätename]“ gibt [Gerätename] den Namen der externen Netzwerkkarte an, also oben enp0s3, und [Gateway-Adresse] gibt die von der externen Netzwerkkarte verwendete Gateway-IP-Adresse an.
Wie erhält man also die Gateway-Adresse dieser externen Netzwerkkarte? VirtualBox sieht folgendes vor:

Im NAT-Modus wird der Gastnetzwerkschnittstelle standardmäßig der IPv4-Bereich 10.0.x.0/24 zugewiesen, wobei x der Instanz der NAT-Schnittstelle +2 entspricht. x ist also 2, wenn nur eine NAT-Instanz aktiv ist. In diesem Fall wird dem Gast die Adresse 10.0.2.15 zugewiesen, das Gateway wird auf 10.0.2.2 eingestellt und der Nameserver befindet sich unter 10.0.2.3.

Einfach ausgedrückt: Wenn die 0. Netzwerkkarte eine NAT-Netzwerkkarte ist, dann ist die dritte Ziffer ihres Netzwerksegments 0+2=2, also 10.0.2.0, das Gateway ist 10.0.2.2 und der Nameserver ist 10.0.2.3. Und so weiter.

Verwendungszweck: Linkadresse

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Tutorial zur Netzwerkkonfiguration von CentOS7 unter VirtualBox (kann eine Verbindung zum externen Netzwerk herstellen)
  • Detaillierte Erläuterung der Analyse und des Aufbaus der Netzwerkumgebung virtueller Maschinen von VirtualBox - NAT, Bridging, Host-Only, Intern, Port-Mapping
  • VirtualBox konfiguriert eine virtuelle Netzwerkkarte (Bridge), um eine Netzwerkverbindung zwischen Host und virtueller Maschine herzustellen (grafisches Tutorial)
  • Ein Tutorial zur Verwendung von VirtualBox zum Verbinden einer virtuellen Maschine mit dem Netzwerk
  • Detaillierte Erläuterung der Centos6.5-Netzwerkeinstellungen in VirtualBox
  • Detaillierte Erklärung zur Konfiguration der Netzwerkverbindung zwischen Gast und Host in VirtualBox
  • VirtualBox konfiguriert eine virtuelle Netzwerkkarte (Bridging), um eine Netzwerkverbindung zwischen Host und virtueller Maschine zu erreichen
  • Detaillierte Erläuterung der Netzwerkkartenkonfiguration der virtuellen Maschine VirtualBox + CentOS
  • Analyse des Prinzips der Netzwerkeinstellungen virtueller Virtualbox-Maschinen
  • Lösung für VirtualBox, bei der die zu überbrückende Netzwerkschnittstelle nicht angegeben wird
  • VirtualBox 2.2.0 verwendet das Host-Netzwerk, um den Internetzugang zu konfigurieren

<<:  Detaillierte Erklärung redundanter und doppelter Indizes in MySQL

>>:  Vue implementiert die Benutzeranmeldungsumschaltung

Artikel empfehlen

So implementieren Sie geplante MySQL-Aufgaben zur Datensicherung unter Linux

Vorwort Backup ist die Grundlage der Notfallwiede...

Zabbix überwacht den Prozess der Linux-Systemdienste

Zabbix erkennt automatisch Regeln zur Überwachung...

Drei Möglichkeiten zum Löschen einer Tabelle in MySQL (Zusammenfassung)

Drop-Tabelle Drop löscht Tabelleninformationen di...

js canvas realisiert Bilder mit abgerundeten Ecken

In diesem Artikel wird der spezifische Code von J...

Eine kurze Diskussion über mehrere aufgetretene Browserkompatibilitätsprobleme

Hintergrund Das Lösen von Browserkompatibilitätsp...

Drei Vererbungsmethoden in JavaScript

erben 1. Was ist Vererbung? Vererbung: Zunächst e...

Detailliertes Tutorial zur Installation von Anaconda3 auf Ubuntu 18.04

Anaconda bezeichnet eine Open-Source-Python-Distr...

Detaillierte Erklärung der Rolle und des Prinzips des Schlüssels in Vue

Inhaltsverzeichnis 1. Beginnen wir mit dem Fazit ...

Einführung in die CentOS7-Firewall und portbezogene Befehle

Inhaltsverzeichnis 1. Überprüfen Sie den aktuelle...

js regulärer Ausdruck Lookahead und Lookbehind und nicht erfassende Gruppierung

Inhaltsverzeichnis Kombinieren von Lookahead und ...

Eine kurze Analyse der Verwendung des HTML-Webpack-Plugins

Wenn Sie zum Starten der Seite das Plugin „html-w...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...