Salut !
Moi je voulais plutôt faire passer toute ma connexion par mon vpn, et en cas de déconnexion du vpn, arrêter automatiquement rtorrent.
Un petit script trouvé ici permettant de ping l'ip du VPN avait été écrit pour Transmission.
J'ai modifié pour rtorrent et refait un petit tuto.
TUTO :
On installe OpenVPN :
apt-get update && apt-get install openvpn -y
On copie notre fichier OpenVPN (.ovpn) dans son répertoire /etc/openvpn.
On renomme notre fichier OpenVPN de "MON_VPN_ULTRA_SECRET.ovpn" en "client.conf".
On ce retrouve donc avec un fichier client.conf dans /etc/openvpn.
On lance automatiquement ce fichier au démarrage de notre machine :
systemctl enable openvpn@client.service
On stop aussi le démarrage automatique de notre session rtorrent :
systemctl disable USER-rtorrent.service
On prends en compte notre modification :
update-rc.d -f USER-rtorrent remove
On créer un script de lancement :
nano /etc/openvpn/script_start_stop_rtorrent_USER.sh
On y colle :
#!/bin/sh
#while true, creation d'une bloucle sans fin
#CHANGER : IP_ATTRIBUÉ_PAR_VPN & USER-rtorrent
while true
do
sleep 5
#Ping IP_ATTRIBUÉ_PAR_VPN, si pas de réponse, on lance l’arrêt de rtorrent + restart du vpn.
TRANS=$(pgrep rtorrent)
ping -q -c2 IP_ATTRIBUÉ_PAR_VPN > /dev/null
if [ $? -ne 0 ] || [ -z "$TRANS" ]
then
/etc/init.d/USER-rtorrent stop
/etc/init.d/openvpn restart
sleep 20
#Si le ping revient alors on restart rtorrent.
ping -q -c1 IP_ATTRIBUÉ_PAR_VPN > /dev/null && /etc/init.d/USER-rtorrent start
fi
done
**On remplace "USER" par le nom d'utilisateur rtorrent (2fois)
**On remplace "IP_ATTRIBUÉ_PAR_VPN" par l'ip que nous attribue OpenVPN (2fois)
On rend exécutable notre script :
cd /etc/openvpn && chmod 777 script_start_stop_rtorrent_USER.sh
On exécute automatiquement notre script au démarrage de notre machine :
nano /etc/rc.local
On ajoute entre "fi" et "exit0" le chemin de notre script avec "&" à la fin de la ligne :
/etc/openvpn/script_start_stop_rtorrent_USER.sh &
On reboot notre machine et le tour est joué !
Quand notre machine est connectée au VPN (controle avec le ping), la session rtorrent reste active.
Des que notre machine ce déconnecte du VPN (pour n'importe quel raison), la session rtorrent ce stop et le service openvpn ce relance en boucle jusqu’à avoir un connexion validée sur le VPN (encore une fois, grâce au test du ping sur l'ip VPN attribué) puis relance automatiquement la session rtorrent.
Fonctionne parfaitement chez moi :=)