VirtualBox-NAT-Portweiterleitung auf Ubuntu 64?

7245
Greg Mattes

Ich habe ein Ubuntu 9.04-Desktop-64-Bit-Gastbetriebssystem, das auf einem Ubuntu 9.04-Desktop-64-Bit-Hostbetriebssystem ausgeführt wird (ja, das gleiche Betriebssystem). Ich möchte einen Webserver auf dem Gast ausführen und ihn über NAT auf dem Host verfügbar machen.

Ich habe (glaube ich) die Anweisungen zum Weiterleiten des VirtualBox-Ports befolgt, aber der Gast / VM wird nach der Konfiguration nicht mehr gestartet.

Hier ist die Konfiguration, die ich ausgeführt habe:

VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80 VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8080 

Wo <Guest Name>ist der Name des Gast-VM-Images?

Der Fehler sieht so aus:

VirtualBox-NAT-Portweiterleitung auf Ubuntu 64?

Der gleiche Fehler tritt unabhängig davon auf, ob ich die Konfiguration bei laufender VM oder nicht ausgeführt habe.

Gastzusätze werden installiert.

Wie konfiguriere ich die NAT-Portweiterleitung richtig? Was verursacht diesen Fehler?

5
Sind Sie sicher, dass Ihr virtueller Netzwerkadapter PCNet ist? Wenn ich eine virtuelle Maschine erstelle und ubuntu x64 wähle, erhalte ich standardmäßig e1000. Bender vor 15 Jahren 0
Benötigen Sie wirklich NAT? Bridge ist einfacher einzurichten und dies funktioniert sofort. igustin vor 15 Jahren 0
Richtig, aber ich denke, NAT ist in bestimmten Versionen standardmäßig vorhanden. Zumindest beim letzten Einrichten meiner VBox vor 8 Monaten. J. Polfer vor 15 Jahren 0

3 Antworten auf die Frage

5

Holen Sie sich alle Parameter, die Sie für dieses WM gemacht haben, mit dem Befehl:

VBoxManage.exe getextradata "Name_of_VM" enumerate 

Sie sollten alle an VM gesendeten Werte sehen.

Key: GUI/SaveMountedAtRuntime, Value: yes Key: GUI/ShowMiniToolBar, Value: yes Key: GUI/MiniToolBarAlignment, Value: bottom Key: GUI/LastCloseAction, Value: save Key: GUI/LastWindowPostion, Value: 345,133,640,522 Key: GUI/Fullscreen, Value: off Key: GUI/Seamless, Value: off Key: GUI/AutoresizeGuest, Value: on Key: GUI/MiniToolBarAutoHide, Value: on Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort, Value: 22 Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort, Value: 22 

Entfernen Sie alle Zeichen, die mit VBoXInternal beginnen, indem Sie sie kopieren und die Zeile einfügen, um den Befehl auf diese Weise auszuführen

VBoxManage.exe setextradata "Name_of_VM" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 

ohne Wert bis zum Ende. Am Ende sollten Sie erneut aufzählen und keine weiteren Zeilen von VBoxInternal mehr sehen.

Jetzt können Sie wieder die NAT-Regeln mit einem anderen Namen für Regeln erstellen.

Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort, Value: 2222 Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort, Value: 22 Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol, Value: TCP Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol, Value: TCP Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort, Value: 80 Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort, Value: 8080 

Unter Linux sollten Sie daran erinnern, dass PORTS <1024 NICHT umgeleitet werden sollten. Verwenden Sie 2222 für guestssh und 8080 für guesthttp (Beispiel). Zur Vereinfachung der Verwendung benutze ich persönlich <1014 port unter WINDOWS.

Hoffe, das sollte dir helfen.

(Sorry für Englisch! Ich bin Frenchy: P)

Jacques.guensherian

3
the_curator

Ich hatte das gleiche Problem - ich glaube, Oracle hat die Art und Weise geändert, in der NAT eingerichtet ist. Es ist jetzt viel sauberer. Dies ist aus dem Benutzerhandbuch kopiert, das sich immer noch unter http://www.virtualbox.org/manual/UserManual.html befindet

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22" 

"Dies leitet den gesamten TCP-Datenverkehr, der auf der localhost-Schnittstelle (127.0.0.1) ankommt, über Port 2222 an Port 22 im Gast weiter." Im Gast. "

Niemand hat diese Antwort markiert, aber unter OS X 10.6.x-Host und Debian GNU / Linux 6.0.1 (squeeze) guest in 3.2.12 r68302 war dies der Trick. Danke, dass Sie mir noch eine weitere Stunde Ärger und Frustration erspart haben. songei2f vor 13 Jahren 0
1
catchdave

Ich hatte das gleiche Symptom, als ich die Portweiterleitung in VirtualBox aufbaute.

Beim Erstellen neuer VMs in VirtualBox entspricht der Standard-Netzwerkadapter e1000nicht pcnetden Anweisungen, die Sie befolgt haben.

Wenn Sie die Konfigurationseinstellungen wie folgt ändern:

VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/Protocol" TCP VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/GuestPort" 80 VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/HostPort" 8080 

Dies sollte Ihr Problem lösen.


Die obige Konfigurationsoption funktioniert für den ersten e1000Adapter, daher der e1000 / 0 in den Einstellungen. Prüfen Sie, welcher Netzwerkadapter von der VM verwendet wird, auf die Sie die Weiterleitung portieren möchten.

Bei meiner Installation stehen als Netzwerkadapter zwei "PcNet" und drei "Intel Pro 1000" zur Verfügung.

Die Adapter werden mit den folgenden Tasten bezeichnet:

  • Erstes PCNet: pcnet/0
  • Zweites PCNet: pcnet/1
  • Erster Intel PRO / 1000: e1000/0
  • Zweiter Intel PRO / 1000: e1000/1
  • Dritter Intel PRO / 1000: e1000/2

Wenn Ihr Adapter beispielsweise der zweite "PRO / 1000" in der Liste ist, müssen Sie die obige Konfiguration in e1000 / 1 (etc) ändern .