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-ID: 335357

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

Printed on: October 10, 2024 at 04:10 o'clock

drnatur
drnatur Apr 18, 2017 at 01:26:51 (UTC)
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
fundave3
fundave3 Apr 18, 2017 at 09:59:06 (UTC)
Goto Top
Dein Wunsch ist mir befehl.

Eben druntergesetzt!
wauwau
wauwau Jun 13, 2023 at 07:41:34 (UTC)
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..