fundave3
Goto Top

How to: Libvirt Port forwarding

Um Ports in die VM zu leiten die hinter einem NAT hängen, brauchen wir Port forwarding.
Das wird von Libvirt so leider nicht unterstützt

Dafür können wir uns die Hook skripte zu nutze machen

Die IPtables müssen garnicht angefasst werden,

Als erstes müssen wir die /etc/sysctl.conf bearbeiten

 net.ipv4.ip_forward 
die Auskommentierung entfernen.

Wir erstellen als nächstes ein Hook skript in

/etc/libvirt/hooks/qemu

Mit Nano over Vi . Bleibt euch überlassen face-smile

Und fügen folgenden Inhalt ein :

#!/bin/bash

# IMPORTANT: Change the "VM NAME" string to match your actual VM Name. 
# In order to create rules to other VMs, just duplicate the below block and configure
# it accordingly.
if [ "${1}" = "VM NAME" ]; then  

   # Update the following variables to fit your setup
   GUEST_IP=
   GUEST_PORT=
   HOST_PORT=

   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then  
	/sbin/iptables -D FORWARD -o virbr0 -d  $GUEST_IP -j ACCEPT
	/sbin/iptables -t nat -D PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then  
	/sbin/iptables -I FORWARD -o virbr0 -d  $GUEST_IP -j ACCEPT
	/sbin/iptables -t nat -I PREROUTING -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
   fi
fi

Den Namen , die IP und die Ports entsprechend anpassen.

ggf. TCP gegen UDP ändern. Je nachdem was benutzt wird.

Dann noch die Rechte anpassen


 chmod +x /etc/libvirt/hooks/qemu

Libvirt neustarten

und die VM neustarten.

Das wars dann.

Quelle: http://wiki.libvirt.org/page/Networking

Content-Key: 335357

Url: https://administrator.de/contentid/335357

Ausgedruckt am: 19.03.2024 um 05:03 Uhr

Mitglied: drnatur
drnatur 18.04.2017 um 03:26:51 Uhr
Goto Top
Sehr gut.
Schreib bitte auch die Quelle dazu:
http://wiki.libvirt.org/page/Networking

Copycats sind nicht nur in Call Of Duty eher ungern gesehen
mit liebem Gruße,
drnatur
Mitglied: fundave3
fundave3 18.04.2017 um 11:59:06 Uhr
Goto Top
Dein Wunsch ist mir befehl.

Eben druntergesetzt!
Mitglied: wauwau
wauwau 13.06.2023 um 09:41:34 Uhr
Goto Top
Danke für die Anleitung, aber. Eine Verbindung von locahost auf dem die VM läuft ist damit nicht möglich. Ich bekomme da immer ein 'connection refused'. Von ausserhalb funktioniert es. Von localhost nicht. Gibts da 'ne Lösung?


Danke..