Reconnexion automatique au VPN lors de la déconnexion?

16

Je suis un utilisateur Ubuntu GNOME et je me demandais s'il y avait un moyen de pouvoir se reconnecter automatiquement à un VPN lors de la déconnexion . J'utilise le protocole OpenVPN .

J'ai soigneusement vérifié Network Manager, mais je n'ai pas trouvé une telle option, uniquement pour se connecter au VPN lorsqu'il est connecté à un WiFi spécifique.

Patrik
la source

Réponses:

20

À partir de 18.10 (ne peut pas vérifier dans les versions antérieures) les connexions VPN dans NetworkManager ont un paramètre vpn.persistentqui fait exactement cela: se reconnecte à un VPN en cas de perte de connexion jusqu'à ce que vous vous déconnectiez manuellement. Il est défini "no"par défaut et n'est malheureusement exposé ni dans Gnome Network Settings ni dans nm-connection-editor.

Mais vous pouvez le définir via une CLI comme celle-ci:

nmcli connection modify <Your VPN connection name> vpn.persistent yes

La connexion doit exister avant de le faire, bien sûr

m0NKey bR4in
la source
2
c'est ce que je voulais. Merci un million
Wyatt8740
Étant donné que ce paramètre est disponible, pourquoi les paramètres réseau ne le montrent-ils pas? Et où / comment avez-vous découvert? Il n'y a aucune mention de cela sur developer.gnome.org/NetworkManager/stable/nmcli.html mais depuis que l'exécution de la commande semble réussir, je suppose que cela fonctionne ...
Al F
@alf Je pense avoir trouvé ce paramètre simplement en fouillant sur nmcli dans le terminal, mais il est également documenté sur developer.gnome.org/NetworkManager/stable/… et dans la page de manuel nm-settings
m0NKey bR4 dans
19

OpenVPN dispose d'un mécanisme intégré pour détecter automatiquement les liens morts et se reconnecter. Dans Network Manager, accédez à "Modifier les connexions", sélectionnez votre connexion VPN et choisissez "Modifier". Dans l'onglet "VPN", cliquez sur "Avancé ..." et allez dans l'onglet "Général". Là, vous avez deux options pertinentes:

"Spécifiez l'intervalle de ping" indique à OpenVPN à quelle fréquence vérifier si le lien est toujours actif. "Spécifiez la sortie ou redémarrez la commande ping" lui indique le temps d'attente avant l'exécution de l'action et l'action à entreprendre.

Exemple: Mon réglage est "30 / ping-restart / 300". Cela signifie qu'OpenVPN vérifie toutes les 30 secondes si le lien est toujours actif. Si le lien est arrêté pendant 300 secondes, il lance un redémarrage.

De cette façon, il n'y a pas besoin de scripts externes ...

OttoEisen
la source
1
Cela devrait être la réponse acceptée.
necbot
5
Ce n'est pas vrai pour Ubuntu 18.04 au moins. J'ai un intervalle de ping et un redémarrage de ping, mais il se désactivera de toute façon.
Afficher le nom
@SargeBorsch: la réponse de m0NKey bR4in semble fonctionner (mise vpn.persistentà yes).
kontextify
1

Après avoir creusé un peu, j'ai trouvé cette réponse , l' ai testée (sur Ubuntu GNOME 15.04) et jusqu'à présent, cela semble fonctionner.

La seule chose que je pourrais ajouter est qu'une fois le fichier de script créé, il n'a pas nécessairement besoin d'être enregistré dans votre dossier / home. Vous pouvez l'enregistrer n'importe où, le rendre exécutable et l'ajouter à la liste des programmes de démarrage.

Patrik
la source
0

Après avoir affirmé qu'il s'agissait d'un SMOP (Simple Matter of Programming), j'ai écrit un script bash qui surveille "Link Down", puis exécute un script utilisateur. Moins d'utilisation du processeur, plus réactif que la while true....sleep 30méthode. Voir ma réponse ici . Il s'agit de «faire pivoter les connexions WiFi», mais cela fonctionnera probablement aussi pour vous

waltinator
la source
0

ce script fonctionnera le 16.04 où nmcli con statusne fonctionne plus:

#!/bin/bash
CON="purple"
STATUS=`nmcli con show --active | grep purple | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
    nmcli con up $CON
fi
George
la source
Un peu plus court STATUS="$(nmcli con show -f name | grep purple)". Ou vous pouvez simplement vérifier si la connexion réelle est active en faisantnmcli con show --active id 'purple'
smac89
0

Je pense que la réponse complète basée sur d'autres réponses se présente comme suit:

#!/bin/bash +x
  while [ "true" ]
   do
        CON="Your-VPN-Name"
        STATUS=`nmcli con show --active | grep $CON | cut -f1 -d " "`
        if [ -z "$STATUS" ]; then
                echo "Disconnected, trying to reconnect..."
                (sleep 1s && nmcli con up $CON)
        else
                echo "Already connected !"
        fi
        sleep 30
   done
Ali Mohebbi
la source