ubuntuusers.de

Port Weiterleiten an virtuelle Maschinen

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

falc410

Anmeldungsdatum:
13. Oktober 2007

Beiträge: 33

Hallo,

ich habe auf meiner Kiste VMWare installiert und auch erfolgreich schon eine virtuelle Maschine Mit Red Hat EL5 angelegt. Zur Verbindung habe ich NAT ueber das virtuelle Interface von VMWare ausgewaehlt.

D.h. mein Hosts Rechner hat eine feste IP Adresse und die virtuelle Maschine kann ich ueber 192.168.x.x IP erreichen.

Geplant sind ca. 3 virtuelle Maschinen. Derzeit logge ich mich per ssh auf den Host ein und dann von dort aus nochmal ssh auf die private IP. Allerdings hat der Host einen Webserver und auch jede virtuelle Maschine hat einen Webserver.

Ich wollte jetzt Ports z.b. 2000 weiterleiten an 192.168.0.10:80
Damit ich dann meinen hosts:2000 eingebe aber auf den Webserver von der virtuellen Maschine komme.

Wie mache ich das am einfachsten? Mit google habe ich soviele Sachen zu dem Thema gefunden, manchmal heisst es das ich iptables brauche, dann gehts wieder ohne mit einem extra Programm das ich aber nicht installiert habe, dann heisst es wieder das ist veraltet es geht nur noch ueber iptables etc.

Wenn mir jemand bitte kurz erklaeren kann wie das denn jetzt am einfachsten funktioniert und falls es ueber iptables mir sagen ob es da ein grafisches Tool zum konfigurieren gibt, oder mir z.b. eine Beispiel Zeile fuer eine Weiterleitung vorgibt waere ich sehr sehr dankbar.

xyllyxy

Avatar von xyllyxy

Anmeldungsdatum:
9. Juni 2008

Beiträge: 35

Hallo falc410,

Ich weiß zwar nicht, ob es einen Unterschied macht, ob es virtuelle oder normale Hosts sind, da ich mich mit VMWare nicht so auskenne. Portforwarding habe ich bisher nur mit meinem Heimserver gemacht. Dort geht es entweder einfach mit ssh oder, wenn ein Windo-System im Spiel ist mit putty.
Um bei deinem Beispiel zu bleiben:

ssh user_name@192.168.x.x -L 2000:192.168.x.x:80


würde dich auf dem entsprechenden (virtuellen) Sever einloggen und gleichzeitig den port 80 auf die 2000 leiten. Ist dir das eine Hilfe?

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Wenn du die vorgeschlagene Lösung nutzen willst so solltest du SSH-Keys nutzen (keine Benutzeranmeldung) und auch kannst du die Option

    -N      Do not execute a remote command.  This is useful for just forwarding ports (protocol version 2 only).


nutzen. In dem Fall reicht in /etc/passwd der Eintrag /bin/false als Shell.

falc410

(Themenstarter)

Anmeldungsdatum:
13. Oktober 2007

Beiträge: 33

das hilft mir leider nicht wirklich weiter.
Im Prinzip muss der Host ja eine Art Routerfunktion haben.
Ich will z.b. aufrufen
http://host ←- webserver auf lokalhost
http://host:2000 ←- weiterleitung zu ersten vm webserver port 80 (also 192.168.0.5:80 z.b.)
http://host:3000 ←- weiterleitung zur zweiten vm webserver auf port 80
usw.

da muss ich wahrscheinlich sogar noch vmware mitteilen das es die ports durch das virtuelle NAT interface durchlaesst, aber zuerst muss ich wohl auf dem host system eine weiterleitung einrichten.

falc410

(Themenstarter)

Anmeldungsdatum:
13. Oktober 2007

Beiträge: 33

Also ich hab jetzt mal versucht mit den Tutorials aus dem Internet klarzukommen, aber wenn ich da copy & paste mache kann ich iptables nicht mehr starten da meine config fehler hat und wenn ich den befehl direkt eingeben passiert auch nichts.
Hab sachen versucht wie:

iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to 192.168.175.128:80

oder auch

iptables -t nat -A PREROUTING -p tcp -i eth0 -d $external_ip \\

  • -dport 80 --sport 1024:65535 -j DNAT --to 192.168.1.200:8080
    iptables -A FORWARD -p tcp -i eth0 -o eth1 -d 192.168.1.200 \\

    • -dport 8080 --sport 1024:65535 -m state --state NEW -j ACCEPT

sigh ☹
warum gibts denn nicht einmal im leben fuer sowas eine grafische konfig moeglichkeit mit der das in 2 sekunden erledigt ist, so sitze ich stundenlang da und kann bloed herumprobieren. das ist so eine zeitverschwendung

lin-x

Anmeldungsdatum:
1. Juli 2008

Beiträge: Zähle...

Sollte doch klappen, wenn ich das richtig verstanden habe.

 ssh -L 2000:localhost:80 192.168.0.5 -N ; ssh -L 3000:localhost:80 192.168.0.6 -N & 

Läuft auf den VM's ein ssh-server?
__________________________________
6c48bb17872c696ef5dbb24a60f4fbf3

falc410

(Themenstarter)

Anmeldungsdatum:
13. Oktober 2007

Beiträge: 33

Ja laeuft.

Ich habs jetzt auch zum laufen bekommen, ist zwar nur ein workaround aber besser als nichts.

Mit dem kleinen Programm portfwd geht es.

Kann jetzt auf alle Webserver zugreifen wenn ich ensprechenden Port angebe.

Der ssh Befehl hat mir nicht wirklich etwas gebracht da ich das ja nicht in die Adressezeile vom Browser eingeben kann.

Antworten |