आप इसे GNU / Linux पर नेटवर्क नेमस्पेस के साथ कर सकते हैं।
यहां OpenVPN और एक अलग नामस्थान में एक एकल एप्लिकेशन को चलाने का तरीका बताया गया है:
नेट नेटवर्क नेमस्पेस बनाएँ:
ip netns add myvpn
नेमस्पेस में लूपबैक इंटरफेस शुरू करें (अन्यथा कई चीजें उम्मीद के मुताबिक काम नहीं करती हैं ...)
ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up
वर्चुअल नेटवर्क इंटरफेस बनाएँ जो ओपनवीपीएन (नाम स्थान में) को वास्तविक नेटवर्क तक पहुंचने देगा, और नेमस्पेस (vpn0) से इंटरफ़ेस को डिफ़ॉल्ट गेटवे के रूप में उपयोग करने के लिए नेमस्पेस (vpn1) में इंटरफ़ेस कॉन्फ़िगर करेगा।
ip link add vpn0 type veth peer name vpn1
ip link set vpn0 up
ip link set vpn1 netns myvpn up
ip addr add 10.200.200.1/24 dev vpn0
ip netns exec myvpn ip addr add 10.200.200.2/24 dev vpn1
ip netns exec myvpn ip route add default via 10.200.200.1 dev vpn1
नामस्थान में इंटरफ़ेस के लिए IPv4 रूटिंग और NAT सक्षम करें। जैसा कि मेरा डिफ़ॉल्ट इंटरफ़ेस एक वायरलेस है, मैं आउटगोइंग इंटरफ़ेस के लिए iptables में wl + (जो wlan0, wlp3s0, आदि से मेल खा सकता है) का उपयोग करता है; यदि आप एक वायर्ड इंटरफ़ेस का उपयोग करते हैं, तो आपको संभवतः एन + (या ब्रिडेड इंटरफ़ेस के लिए br +) का उपयोग करना चाहिए।
iptables -A INPUT \! -i vpn0 -s 10.200.200.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o wl+ -j MASQUERADE
sysctl -q net.ipv4.ip_forward=1
नेमस्पेस को नाम स्थान के अंदर उपयोग करने के लिए कॉन्फ़िगर करें
mkdir -p /etc/netns/myvpn
echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf
लगभग पूरा हो चुका है, अब हमें नेमस्पेस में पूरा नेटवर्क उपलब्ध होना चाहिए
ip netns exec myvpn ping www.google.com
अंत में नामस्थान में OpenVPN शुरू करें
ip netns exec myvpn openvpn --config /etc/openvpn/myvpn.conf
एक बार ट्यून नेमस्पेस में है, तो आप उस कार्यक्रम को शुरू करने के लिए तैयार हैं जो आप चाहते थे!
while ! ip netns exec myvpn ip a show dev tun0 up; do sleep .5; done
ip netns exec myvpn sudo -u $MYSELF popcorntime
स्रोत लेख।
इसके अलावा स्रोत लेख में एक आवरण स्क्रिप्ट है जिसे आप अपनी आवश्यकताओं के लिए अनुकूलित कर सकते हैं।