Cierre automático de Torrent en VPN abierta

Cierre automático de Torrent en VPN abierta

Soy novato en Ubuntu y uso mucho torrent para descargar mucho contenido multimedia.

¿Hay alguna manera de cerrar automáticamente un programa como torrent cuando enciendo el cliente VPN? ¿Y cuando apago el cliente VPN abro el torrent nuevamente?

Respuesta1

Según lo solicitado, aquí hay un ejemplo del uso de cgroups para que ciertos procesos omitan su VPN.

Instale las herramientas necesarias: sudo apt-get install cgroup-lite cgroup-tools

Luego, en cada inicio donde quiero esta funcionalidad, hago esto en un terminal:

sudo su
./cgroup_setup.bash
exit

Donde cgroup_setup contiene algo como esto (cambie myuser, mynetworkdevice y mygatewayip según corresponda):

#!/bin/bash

# Define a control group named novpn with a classid of 11:11
sudo cgcreate -a $USER:$USER -t $USER:$USER -g net_cls:novpn
echo 0x00110011 > /sys/fs/cgroup/net_cls/novpn/net_cls.classid

# Change ownership so myuser can run processes bypassing the vpn
sudo chown myuser:myuser /sys/fs/cgroup/net_cls/novpn
sudo chown myuser:myuser /sys/fs/cgroup/net_cls/novpn/*

# Add mark 11 on packets of classid 0x00110011
iptables -t mangle -A OUTPUT -m cgroup --cgroup 0x00110011 -j MARK --set-mark 11

# Force the packets to exit through my interface (mynetworkdevice) with NAT
iptables -t nat -A POSTROUTING -m cgroup --cgroup 0x00110011 -o mynetworkdevice -j MASQUERADE

# Define a new "novpn" routing table
# This is persistent so it does not actually need to be done each time in script...
echo 11 novpn >> /etc/iproute2/rt_tables

# Packets with mark 11 will use novpn
ip rule add fwmark 11 table novpn

# Add a route for default gateway for novpn
ip route add default via mygatewayip table novpn

# Unset reverse path filtering for all interfaces
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $i; done

# Create control group
cgcreate -t $USER:$USER -a $USER:$USER -g net_cls:novpn

Ahora puedes usar cgexec para ejecutar un proceso sin pasar por la VPN, por ejemplo:

killall firefox
cgexec -g net_cls:novpn firefox

Si ejecuta Firefox normalmente con una VPN en ejecución, debería ver que su IP pública es una IP de VPN. Pero con cgexec sin pasar por la VPN, puedes comprobar que es la IP de tu casa real.

información relacionada