Puede hacerlo con espacios de nombres de red en GNU / Linux.
Aquí se explica cómo ejecutar OpenVPN y una sola aplicación en un espacio de nombres separado:
Cree el espacio de nombres de la red neta:
ip netns add myvpn
Inicie la interfaz de bucle invertido en el espacio de nombres (de lo contrario, muchas cosas no funcionan como se esperaba ...)
ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up
Cree interfaces de red virtuales que permitan que OpenVPN (en el espacio de nombres) acceda a la red real y configure la interfaz en el espacio de nombres (vpn1) para usar la interfaz fuera del espacio de nombres (vpn0) como su puerta de enlace predeterminada
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
Habilite el enrutamiento IPv4 y NAT para la interfaz en el espacio de nombres. Como mi interfaz predeterminada es inalámbrica, uso wl + (que puede coincidir con wlan0, wlp3s0, etc.) en iptables para la interfaz saliente; si usa una interfaz con cable, probablemente debería usar en + (o br + para una interfaz en puente)
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
Configure el servidor de nombres para usar dentro del espacio de nombres
mkdir -p /etc/netns/myvpn
echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf
Casi hecho, ahora deberíamos tener acceso completo a la red en el espacio de nombres
ip netns exec myvpn ping www.google.com
Finalmente inicie OpenVPN en el espacio de nombres
ip netns exec myvpn openvpn --config /etc/openvpn/myvpn.conf
Una vez que tun0 esté en el espacio de nombres, ¡estará listo para iniciar el programa que desea!
while ! ip netns exec myvpn ip a show dev tun0 up; do sleep .5; done
ip netns exec myvpn sudo -u $MYSELF popcorntime
FUENTE artículo.
También hay un script de envoltura en el artículo fuente que puede adaptar a sus necesidades.