wake-up-neo.com

Was ist der richtige Weg, um Port-Forwarding mit VMWare durchzuführen?

Ich habe ein VM erstellt, auf dem ein Server mit localhost:8675/ ausgeführt wird, den ich aus Gründen des besseren Verständnisses am selben Port mit dem Host-Computer verbinden wollte. Ich habe die folgenden Dokumente zur Information verfolgt: 

Als ich in meiner VMWare-Workstation war, habe ich auf meine VM geklickt und dann Folgendes getan: Bearbeiten> Editor für virtuelle Netzwerke. Danach wurde Change Settings aktiviert, wodurch das Fenster im Admin-Modus neu gestartet wurde. Ich habe auf die Zeile mit Typ NAT und externer Verbindung NAT geklickt und in der VMNet-Information mit dem Optionsfeld NAT die NAT Einstellungengedrückt. _ Taste. 

Ich sagte: Add ... und tat dann:

Host: 8675
Type: TCP
VMIP: 127.0.0.1:8675
Description:  Port Foward of 8675 from Host to VM.

Es sieht aus wie alles gut ist. Ich sage Ok und Apply nacheinander. Es sah so aus, als würde es nat heruntergefahren und einige Dienste neu gestartet.

Ich habe in der VM bestätigt, dass 127.0.0.1:8675 korrekt ist . Im Host habe ich versucht zu gehen: http: // localhost: 8675/ und es sagt: ERR_CONNECTION_REFUSED

Ich dachte, das war alles, was ich tun musste.

Ich suchte einige zusätzliche Informationen auf und bemerkte, dass einige Leute Firewalls konfigurieren mussten. Ich war mir nicht sicher, ob ich es brauchte, da ich der Meinung war, dass der Host und VM alle in einem einzigen Computer sind, könnte dies völlig in sich abgeschlossen sein.

Gibt es eine kritische Aufgabe, die ich vermisse?

7
Fallenreaper

Ich habe diesen Beitrag gesehen: https://superuser.com/questions/571196/port-forwarding-to-a-vmware-workstation-virtual-machine Dort wurde mir gesagt, dass ich ihn einfach an "Gebrückt" anpassen und verwenden soll es auf diese Weise. Behebt dies das Problem der Verbindung von Host/VM - Problem.

Ich möchte nicht sagen, dass dies die richtige Antwort ist, da die Frage selbst NAT betrifft, aber dies ist eine gültige alternative Antwort, die funktioniert.

Dies löst das grundlegende Problem, nicht aber die Frage.

1
Fallenreaper

Ich glaube, Sie haben Ihre Frage tatsächlich richtig beantwortet, als ich sie verfolgt habe und das gewünschte Ergebnis erzielt habe.

IMHO, der Fehler: ERR_CONNECTION_REFUSED zeigt an, dass eine Firewall in Ihrem Host-Betriebssystem oder Gastbetriebssystem (Ihrer VM) oder beiden die Kommunikation über die angegebenen Ports nicht zulässt.

Am einfachsten ist es, zu versuchen, die Firewalls auf beiden Hosts und auf Ihrem Host-Betriebssystem zu deaktivieren.

Nicht sicher, welche Betriebssysteme verwendet werden, aber hier ist nur eine gute Anleitung zum Einrichten von Firewall-Regeln unter Ubuntu

2
DelphyM

Wenn Sie NAT verwenden, haben das Host-System und die Gastboxen in ihrem virtuellen Subnetz völlig unterschiedliche IP-Adressen. Ich vermute also, wenn Sie vom Host-System aus versuchen, eine Verbindung zu localhost: 8675 herzustellen, versuchen Sie tatsächlich, eine Verbindung zu Port 8675 von herzustellen der Gastgeber und nicht der Gast. Verwenden Sie also nicht die localhost- oder 127.0.0.1-Syntax, sondern ermitteln Sie die tatsächliche IP-Adresse des Gasts und verwenden Sie sie. Wenn Ihr Gast Windows ist, verwenden Sie den Befehl ipconfig, wenn Linux ifconfig verwendet.

Möglicherweise müssen Sie auch die Firewall auf der Gastseite konfigurieren.

BEARBEITEN: Kommentieren Sie den Satz "NAT: Wird verwendet, um die IP-Adresse des Hosts zu teilen.": Er bezieht sich wahrscheinlich auf die IP-Adresse des realen Ethernet-Adapters, den Sie auf Ihrem Host haben, und der von Host und Gästen für den Zugriff auf das Internet freigegeben wird . Das hängt nicht davon ab, wie Ihr Gastgeber und Ihre Gäste miteinander kommunizieren. Beispielsweise verwende ich VMware Workstation, um eine virtuelle Linux-Box in Windows auszuführen. Bei Auswahl von NAT erstellt VMware ein virtuelles Teilnetz namens VMnet8. In diesem Subnetz hat der virtuelle Router die Adresse 192.168.120.0, meinem Windows-Host wird ein virtueller Ethernet-Adapter mit der Adresse 192.168.120.1 zugewiesen und mein Linux-Gast hat die Adresse 192.168.120.128. Wenn ich also auf einen freigegebenen Samba-Ordner von Windows zugreifen möchte, gebe ich in einer Windows-Eingabeaufforderung "Net Use *\192.168.120.128" ein. Wenn ich von Linux auf einen freigegebenen Windows-Ordner zugreifen möchte, gebe ich "Sudo mount.cifs //192.168.120.1/path_to_shared_folder target_folder" ein.