यहां हुक स्क्रिप्ट ( स्रोत ) का उपयोग करके पोर्ट फ़ॉरवर्डिंग स्थापित करने का एक बेहतर तरीका है ।
में /etc/libvirt/hooks/qemu
:
#!/bin/sh
GUEST_NAME=
HOST_PORT=
GUEST_IPADDR=
GUEST_PORT=
if [ "$1" = "$GUEST_NAME" ]; then
if [ "$2" = start ]; then
iptables -t nat -A PREROUTING -p tcp --dport "$HOST_PORT" \
-j DNAT --to "$GUEST_IPADDR:$GUEST_PORT"
iptables -I FORWARD -d "$GUEST_IPADDR/32" -p tcp -m state \
--state NEW -m tcp --dport "$GUEST_PORT" -j ACCEPT
elif [ "$2" = stopped ]; then
iptables -t nat -D PREROUTING -p tcp --dport "$HOST_PORT" \
-j DNAT --to "$GUEST_IPADDR:$GUEST_PORT"
iptables -D FORWARD -d "$GUEST_IPADDR/32" -p tcp -m state \
--state NEW -m tcp --dport "$GUEST_PORT" -j ACCEPT
fi
fi
आपको अपने libvirt सेटअप को फिट करने के लिए शीर्ष पर चार चर सेट करने चाहिए।
आपको libvirt-bin को पुनरारंभ करने की आवश्यकता होगी, जो ubuntu पर किया गया है:
sudo sh -c 'service libvirt-bin stop; service libvirt-bin start'
फिर आपको अतिथि को पुनरारंभ करना होगा। उबंटू पर, आपको समायोजित करने की आवश्यकता होगी/etc/apparmor.d/usr.sbin.libvirtd
हुक स्क्रिप्ट को निष्पादित करने की अनुमति देने के करने की :
के पास
/usr/sbin/* PUx,
संलग्न
/etc/libvirt/hooks/* PUx,
फिर पुनः लोड करें:
sudo service apparmor reload
शायद $GUEST_IPADDR
वायरश / डंपएक्सएमएल / इफेक-डंपएक्सएमएल का उपयोग करके ऑटोकॉनफिगर करने का एक तरीका है , लेकिन मैंने इसे नहीं पाया है। वैकल्पिक रूप से, आईपी को नेटवर्क xml: प्रलेखन में सांख्यिकीय रूप से सेट किया जा सकता है ।
जहां तक मैं बता सकता हूं, नेटवर्क फिल्टर का उपयोग केवल वर्चुअल नेटवर्क पर होने वाले प्रतिबंधों के लिए किया जा सकता है, और वे पोर्ट फॉरवर्ड करने के लिए उपयोगी नहीं हैं।