Anda dapat melakukannya dengan ruang nama jaringan di GNU / Linux.
Inilah cara menjalankan OpenVPN dan satu aplikasi dalam ruang nama yang terpisah:
Buat namespace jaringan bersih:
ip netns add myvpn
Mulai antarmuka loopback di namespace (jika tidak banyak hal tidak berfungsi seperti yang diharapkan ...)
ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up
Buat antarmuka jaringan virtual yang akan memungkinkan OpenVPN (di namespace) mengakses jaringan nyata, dan konfigurasikan antarmuka di namespace (vpn1) untuk menggunakan antarmuka keluar dari namespace (vpn0) sebagai gateway default
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
Aktifkan perutean IPv4 dan NAT untuk antarmuka di namespace. Karena antarmuka default saya adalah nirkabel, saya menggunakan wl + (yang mungkin cocok dengan wlan0, wlp3s0, dll.) Di iptables untuk antarmuka keluar; jika Anda menggunakan antarmuka berkabel, Anda mungkin harus menggunakan en + (atau br + untuk antarmuka yang dijembatani)
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
Konfigurasikan server nama untuk digunakan di dalam namespace
mkdir -p /etc/netns/myvpn
echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf
Hampir selesai, sekarang kita harus memiliki akses jaringan penuh di namespace
ip netns exec myvpn ping www.google.com
Akhirnya mulai OpenVPN di namespace
ip netns exec myvpn openvpn --config /etc/openvpn/myvpn.conf
Setelah tun0 di namespace, Anda siap untuk memulai program yang Anda inginkan!
while ! ip netns exec myvpn ip a show dev tun0 up; do sleep .5; done
ip netns exec myvpn sudo -u $MYSELF popcorntime
SUMBER artikel.
Juga ada skrip wrapper di artikel sumber yang dapat Anda sesuaikan untuk kebutuhan Anda.