it-swarm.com.de

VirtualBox-Portweiterleitung funktioniert nicht mit NAT Adapter

Ich versuche die einfache Portweiterleitung mit VirtualBox, und es scheint, als ob VirtualBox.exe auf dem Host den Port anhört, die Verbindung aber nicht wirklich an den Gast weiterleitet. Ich habe mehrere Ports ausprobiert und VirtualBox mehrmals neu gestartet. Die Gast-zu-Host-Konnektivität ist dagegen in Ordnung. Hier ist die Info:

Host: Win7 x64
Guest: Win7 x64
VirtualBox version: VirtualBox 4.2.10
Firewalls: All firewalls on Host and guest disabled.

Virtual Box > Machine Settings > Network
 Adapter 1: 
  Attached to: NAT
  Cable Connected : True
  Port Forwarding:
   Rule 1: TCP, HostIP=127.0.0.1, HostPort=8081, GuestIP=127.0.0.1, GuestPort=8081

On Host:
[VirtualBox.exe]  TCP    127.0.0.1:8081         IBM-6KT5OPCF76P:0      LISTENING

On Guest:
I never get the connection request on port 8081 or any others I've tried.

Irgendwelche Ideen? Ich möchte die Verwendung des überbrückten Adapters von VirtualBox aus mehreren Gründen vermeiden. Ich hatte den Eindruck, dass NAT die Portweiterleitung mit VirtualBox relativ unkompliziert ist.

Vielen Dank!

18

Sie haben die IP-Adresse des Gastes falsch angegeben, es sollte die IP-Adresse des Gastes sein (wenn Sie dem Gast statisch die IP-Adresse zuweisen) oder leer lassen. Hinweis: Als Host-IP-Adresse wird 127.0.0.1 angegeben. Dies bedeutet, dass der weitergeleitete Port nur über den Port erreichbar ist (wenn er nicht gewünscht ist, sollte er auch leer sein).

VBoxManage modifyvm "win" --natpf1 ",tcp,,8081,,8081"

vielleicht wollten Sie dies tun. (bitte siehe hier für mehr Details )

14
vvlevchenko

Paravirtualisiertes Netzwerk * ​​(virtio-net) ist der Schlüssel

  1. wählen Sie Ihre VM aus, die Sie für die Portweiterleitung verwenden möchten.

    • HINWEIS: Stellen Sie sicher, dass sich die VM im Stoppmodus befindet.
  2. Einstellungen auswählen"

  3. Wähle "Netzwerk"
  4. Wählen Sie einen freien Adapter aus. Sagen wir "Adapter 2"
  5. Aktivieren Sie "Netzwerkadapter aktivieren".
  6. Wählen Sie in der Dropdown-Liste Angeschlossen an "NAT" aus.
  7. Wählen Sie "Erweitert"
  8. Im Adaptertyp: Wählen Sie "Paravirtualized Network (virtio-net)" [Dies ist wichtig]
  9. Wählen Sie "Portweiterleitung"
  10. Wählen Sie im rechten Teil des Dialogfelds "Portweiterleitung" "+" aus.
  11. Das ____ bereitstellen

    • Name: Alles was du willst. Beispiel für ssh, sagen Sie "ssh"
    • Protokoll: Protokolltyp [für ssh: TCP]
    • Host-IP: Geben Sie den Hostnamen an, von dem aus Sie eine Verbindung herstellen möchten [hier: 127.0.0.1]
    • Host-Port: An welchem ​​Port dieses Hosts möchten Sie eine Verbindung zum Remote-Port herstellen [Beispiel: 60022]
    • Gast-IP: Lassen Sie es leer
    • Gastport: Zu welchem ​​Port Sie sich vom oben genannten Host verbinden möchten. [für ssh, die Standardeinstellung 22]
28
Amit

Es ist nicht klar, welches Gastbetriebssystem Sie verwenden.

Ich habe das gleiche Problem gehabt. 

Mein Host war MAC PC und Gast war CentOS 7 auf VirtualBox.
Ich habe die Portweiterleitung NAT von Gast zu Host auf Ebene der VirtualBox für ssh-Port 22 und HTTP-Port 80 aktiviert. 

Ich habe jedoch festgestellt, dass ich keine Verbindung zum Apache HTTP-Server auf Centos 7-Gast von meinem MAC-PC-Host über http-Verbindung herstellen konnte.

Um das Problem zu beheben, muss ich den Dienst firewalld so einstellen, dass Port 80-Verbindungen zugelassen werden.

5
Andy

Ich war mit einem ähnlichen Problem konfrontiert und es stellte sich heraus, dass es sich um nicht signierte Treiber im Netzwerkstapel handelt, die von einer Proxy-Abfangsoftware des Unternehmens namens proxycap installiert wurden, die beim Einrichten der Portweiterleitung zu Fehlern bei der Virtualbox führte. Überprüfen Sie die Computerprotokolle VM auf die Fehlermeldung, während Sie die Portweiterleitung einrichten und die nicht signierten Treiber auflisten. Deinstallieren Sie die entsprechende Anwendung.

1
alastairtree

Konfrontiert mit einem ähnlichen Problem auf dem Mac Host und Fedora-Gastsystem. Es wurde versucht, über den Host-Computer auf den HTTP-Webserver zuzugreifen, der auf Port 8000 des Gastcomputers ausgeführt wird. Beim Öffnen von Port 8000/tcp mit Firewall-cmd auf dem Gastcomputer wurde das Problem behoben.

Sudo firewall-cmd --zone=public --add-port=8000/tcp
0
Iqbal