Puoi farlo con gli spazi dei nomi di rete su GNU / Linux.
Ecco come eseguire OpenVPN e una singola applicazione in uno spazio dei nomi separato:
Creare lo spazio dei nomi della rete netta:
ip netns add myvpn
Avvia l'interfaccia di loopback nello spazio dei nomi (altrimenti molte cose non funzionano come previsto ...)
ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up
Crea interfacce di rete virtuale che consentano a OpenVPN (nello spazio dei nomi) di accedere alla rete reale e configura l'interfaccia nello spazio dei nomi (vpn1) per utilizzare l'interfaccia fuori dallo spazio dei nomi (vpn0) come gateway predefinito
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
Abilita routing IPv4 e NAT per l'interfaccia nello spazio dei nomi. Poiché la mia interfaccia predefinita è wireless, utilizzo wl + (che può corrispondere a wlan0, wlp3s0, ecc.) In iptables per l'interfaccia in uscita; se usi un'interfaccia cablata probabilmente dovresti usare en + (o br + per un'interfaccia bridge)
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
Configurare il nameserver da utilizzare all'interno dello spazio dei nomi
mkdir -p /etc/netns/myvpn
echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf
Quasi fatto, ora dovremmo avere pieno accesso alla rete nello spazio dei nomi
ip netns exec myvpn ping www.google.com
Infine avvia OpenVPN nello spazio dei nomi
ip netns exec myvpn openvpn --config /etc/openvpn/myvpn.conf
Una volta che tun0 è attivo nello spazio dei nomi, sei pronto per avviare il programma che desideri!
while ! ip netns exec myvpn ip a show dev tun0 up; do sleep .5; done
ip netns exec myvpn sudo -u $MYSELF popcorntime
Articolo SORGENTE.
C'è anche uno script wrapper nell'articolo di origine che puoi adattare alle tue esigenze.