Kein Zugriff auf virtuelle VMware-Maschine über SSH möglich

6796
bilal

Ich habe einen VMware Server 2 auf einem CentOS 5.6-Host. Ich kann auf meine virtuellen Maschinen von der Hostmaschine aus zugreifen, aber ich kann nicht auf andere Maschinen zugreifen.

Ich habe die NAT-Portweiterleitung konfiguriert. Aber irgendwie habe ich keinen Zugriff auf die VM mit ssh. Ich habe alle Firewall-Einstellungen geprüft und sie scheinen richtig zu sein.

Was kann dieses Problem verursachen?

3
Hallo Bilal - jemand würde viel mehr Detail brauchen, um deine Frage zu beantworten. Soweit ich weiß, haben Sie eine ESX v2-Box mit Cent 5.6 VM? Wenn dies der Fall ist, von welcher Firewall sprechen Sie - über den Hypervisor (ESX-Box) oder die VM? Wo ist das andere System, zu dem Sie wechseln? Es hört sich an, als ob Ihr vSwitch etwas Liebe braucht, aber ich brauche mehr Details. mbb vor 13 Jahren 1
nein, ich habe vmware server 2 auf centos 5.6, wie ich schon erwähnt habe. Ich spreche von Firewall der Hostmaschine. Ich habe SSH-Zugriff von Host zu VM, ich habe SSH-Zugriff über das Internet (außerhalb des Netzwerks) zu Host, aber ich habe keinen direkten Zugriff auf VMT-Throug SSH. bilal vor 13 Jahren 0
Das macht mehr Sinn - danke für die Klarstellung mbb vor 13 Jahren 0

4 Antworten auf die Frage

2
Marco M. von Hagen

Wenn Sie sshvon Remote aus in den Host ssheinsteigen können, müssen Sie die Firewall auf dem Host überprüfen, wenn Ports (22) an vm weitergeleitet werden.

Es gibt eine ähnliche Frage hier .

Dort ist es die ufw-Firewall, die eine Regel wie haben muss

ufw route allow 2222/tcp to 192.168.130.128 port 22 

um die Verbindung zum Host auf Port 2222 zuzulassen und TCP an vm guest unter ip 192.168.130.128:22 weiterzuleiten

Und dieser Benutzer erwähnt, das ufwist ein Frontend für iptables, also gehen Sie zu Ihrem Frontend oder bearbeiten Sie Ihre iptables auf diese Art.

iptables -t nat -A PREROUTING -m tcp -p tcp --dport 2222 -j DNAT --to-destination 192.168.130.128:22 

Der fehlende Teil

Kurzfassung Sie haben gesagt iptables, dass Sie eine PREROUTINGRegel zu Ihrem hinzufügen sollen nat table. Der fehlende Teil ist:

#--------------------------------------------------------------- # After DNAT, the packets are routed via the filter table's # FORWARD chain. # Connections on port 22 to the target machine on the private # network must be allowed. #--------------------------------------------------------------- # The `\` masks the `linebreak` in the `bash command` # You can `copy & paste` all the lines at once  # From the manual # Changing to specific IP and Interfaces  # being: # `eth0` your host adapter and # `vmnet8` your guest adapter 

Dies ist die Verbindung zum Zielrechner:

iptables -A FORWARD -p tcp -i eth0 -o vmnet8 -d 192.168.130.128 \ --dport 22 --sport 2222 -m state --state NEW -j ACCEPT 

Und das sind die Filter von host interfacedir guest interface und umgekehrt.

iptables -A FORWARD -t filter -o eth0 -m state \ --state NEW,ESTABLISHED,RELATED -j ACCEPT  iptables -A FORWARD -t filter -i vmnet8 -m state \ --state ESTABLISHED,RELATED -j ACCEPT 
1
mbb

Es gibt zwei separate Netzwerke, mit denen Sie sich hier befassen. Ich gebe dir ein Beispiel:

IP Ihr ISP gibt Ihnen = 22.24.42.44
IP Ihres Routers = 192.168.2.1
Host System IP = 192.168.2.2
IP Ihrer VM =10.5.5.4

Bei dieser Konfiguration sieht das Netzwerk meiner virtuellen Umgebung aus. Sie haben also tatsächlich zwei Netzwerke, die Sie nach vorne portieren müssen, um öffentlichen Zugriff auf Ihre VM zu erhalten. Denken Sie daran, wie Ihr Hypervisor (Hostsystem) IS ein Router für Ihre VM.

Ich habe diese Anleitung befolgt , um meine Konfiguration einzurichten, aber Sie haben möglicherweise eine komplexere Konfiguration. Dies hängt davon ab, welche Anwendung Sie ausführen möchten - RDC, Apache, SSH. Es gibt mehr gute Informationen hier . Sie müssen mehr Details angeben, als ich auf einer öffentlichen Website verlangen würde, damit ich mit bestimmten Informationen helfen kann. Die Prinzipien sind immer die gleichen - stellen Sie einen localhost her: <> Verbindung zu Ihrem physischen System über VMware Server 2 an den VM-Port weiterleiten, auf den Sie zugreifen möchten (22 für SSH).

Meine Konfiguration ist genauso wie Ihre Link-Verknüpfung. ich leite zum beispiel einen ip auf meinem host: 2222 bis 22 meiner vm in meiner nat config. 2222: xxx.xxx.xxx.xxx:22 bilal vor 13 Jahren 0
Übrigens bekomme ich Server unerwartet geschlossene Netzwerkverbindung, wenn sie weitere Informationen enthält bilal vor 13 Jahren 0
kannst du im selben Subnetz ssh? Von einem Host im selben IP-Bereich (`192.168.2.x` im obigen Beispiel)? mbb vor 13 Jahren 0
0
Aethylred

Verfügt Ihr Host über eine virtuelle NIC im NAT-Netzwerk?

Wenn Sie VMware Workstation 9 unter Win7 verwenden, müssen Sie den Netzwerkmanager öffnen und das Kontrollkästchen "Virtuellen Hostadapter mit diesem Netzwerk verbinden" aktivieren, bevor der Host mit dem NAT-Netzwerk verbunden ist. Es gibt wahrscheinlich einen ähnlichen Prozess für Linux.

Dies ist beabsichtigt und ermöglicht die Erstellung eines sicheren virtuellen Netzwerks, das keinen "no route to host" zum Hypervisor hat.

0
MattPark

auf dem centOS 5.6-host service iptables stop In den meisten Fällen benötigen Backend-Hosts keine iptables und dies kann / wird Ihre Verbindungen blockieren.

Leiten Sie ALLE Ports weiter? 80/443/902/903 /