VPN Autoconnect

38

J'utilise Ubuntu 13.04 avec Gnome et j'ai récemment installé un VPN (ouvert). Est-il possible de l'activer par défaut? Chaque fois que je démarre ou même que je perds ma connexion, je dois activer le VPN manuellement. Y a-t-il une option qui me manque?

    
posée Paul Woitaschek 05.08.2013 - 11:27
la source

8 réponses

65

Par le biais de l'indicateur Network Manager nm-applet (l'applet de la barre de réseau GNOME ou Unity installée par défaut), vous pouvez configurer NetworkManager pour qu'il se connecte automatiquement à un VPN lorsqu'un réseau est connecté.

  1. Cliquez sur l'applet de la barre d'état du réseau et cliquez sur "Modifier les connexions ..." ou exécutez nm-connection-editor .
  2. Sélectionnez une connexion réseau et cliquez sur "Modifier ..."
  3. Cochez "Se connecter automatiquement au VPN lors de l’utilisation de cette connexion" et sélectionnez le VPN souhaité dans la liste déroulante.
  4. Enregistrer.

Lorsque cette option est activée, il existe un bogue dans NetworkManager qui peut casser la fonction "se connecter automatiquement à ce réseau". ( Modifier : ce bogue a été marqué comme "correctif publié" dans Ubuntu 16.04). Si NetworkManager tente de se connecter automatiquement et échoue, vous verrez une ligne similaire à la suivante dans /var/log/syslog :

<error> [1401130450.367538] [nm-vpn-connection.c:1374] get_secrets_cb(): Failed to request VPN secrets #2: (6) No agents were available for this request.

Il semble que NetworkManager ne parvienne pas à obtenir le mot de passe VPN de l'utilisateur depuis gnome-keyring-daemon . Une solution consiste à laisser NetworkManager stocker le mot de passe en texte brut dans le fichier de configuration dans /etc/NetworkManager/system-connections/ . Pour ce faire:

  1. Ouvrez un terminal.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN> , où <VPN> est le fichier de configuration de votre VPN (le nom de fichier est généralement le nom que vous avez attribué à votre VPN).
  3. Remplacez la ligne password-flags=1 par password-flags=0
  4. Enregistrer et quitter.

NetworkManager stockera désormais le mot de passe VPN lui-même (voir man nm-settings pour plus de détails), et l'autoconnexion du réseau fonctionnera à nouveau.

    
réponse donnée Vincent Yu 15.08.2013 - 06:08
la source
8

Consultez vpnautoconnect.

  

vpnautoconnect est un démon qui vous permet de vous reconnecter automatiquement   (au démarrage aussi) un VPN crée avec le gestionnaire de réseau.Il peut se reconnecter   très vite et surveiller la bande passante, ça marche avec pptp et openvpn   connexion.

Pour plus d’informations et pour télécharger, consultez le site Web .

Essayez aussi ceci:

utilisez la fonctionnalité AUTOSTART dans /etc/default/openvpn

Ou

Déterminez l'UUID de votre connexion VPN.

nmcli con list | grep -i vpn

L’UUID est la deuxième colonne contenant les lettres, les chiffres et les tirets.

Démarrer la connexion dans un terminal. Appuyez simplement sur Ctrl + Alt + T sur votre clavier pour ouvrir le terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:

nmcli con up uuid <put you UUID here>

Activez cette option au démarrage.

Allez dans Dash, tapez et choisissez Startup Applications, cliquez sur Add et ajoutez la commande nmcli ci-dessus (avec l'UUID). Cliquez sur "Ajouter". Dans le type de nom, quel que soit le nom que vous voulez utiliser, et dans Command, mettez la ligne nmcli en entier. Cliquez sur "Ajouter" à nouveau. Maintenant, redémarrez et essayez.

Source: SourceForge

    
réponse donnée Mitch 05.08.2013 - 11:31
la source
1

Je recommande de vérifier le script dans cet article :

#!/bin/bash

# YourVPN here is the name of desired vpn connection to monitor
# edit this line:
##################
VPNNAME=YourVPNUUID
# enter desired time between checks here (in seconds)
SLEEPTIME=15
##################

nice=0

for (( ; ; )); do

# creating infinite loop

tested=$(nmcli con status uuid $VPNNAME | grep -c UUID)
#possible results:
# 0 - no connection - need to start
# 1 - working connection, continue.

case $tested in
"0")
echo "Not connected - starting"

#increase nice counter
nice=$[nice+1]

#if "nice start" fails for 3 times
if [ $nice -ge 3 ];
then
#TRY to knock hard way, resetting the network-manager (sometimes it happens in my kubuntu 12.04).
      echo "HARD RESTART!"
      nmcli nm enable false
      nmcli nm enable true
      sleep 5
      nmcli con up uuid $VPNNAME
      nice=0
else
#not yet 3 falures - try starting normal way
      echo "trying to enable."
      nmcli con up uuid $VPNNAME
fi

;;

"1")
echo "VPN seems to work" 

;;
esac

sleep $SLEEPTIME

done

Pour connaître la valeur de YourVPNUUID pour $ VPNNAME, exécutez simplement la commande suivante:

nmcli con list | grep -i vpn
    
réponse donnée rhoover 14.08.2013 - 19:23
la source
1

vpnautoconnect ne fonctionnait pas pour moi en 12.04 LTS, et je ne semble pas être le seul.

J'ai fait quelques recherches et j'ai combiné du code existant pour créer mon premier script bash. Il vérifie si une connexion VPN donnée est active et se connecte sinon. S'il est connecté, il va dormir pendant un temps donné, par ex. 1 minute et répétez le processus indéfiniment.

#! /bin/bash

while true
do
   connection="Auto Ethernet"
   vpn_connection="My VPN connection"
   run_interval="60"

   active_connection=$(nmcli dev status | grep "${connection}")
   active_vpn=$(nmcli dev status | grep "${vpn_connection}")

   if [ "${active_connection}" -a ! "${active_vpn}" ];
   then
      nmcli con up id "${vpn_connection}"
   fi

   sleep $run_interval
done

Instructions:

  1. Créez un fichier texte vierge nommé par exemple vpn-auto-connector.sh (je l'ai enregistré dans mon dossier personnel. Cliquez avec le bouton droit de la souris et choisissez Propriétés-> Autorisations et cochez "Autoriser l'exécution du fichier en tant que programme". Vous devrez peut-être stocker le fichier ailleurs et / ou modifier les autorisations de lecture / écriture / extension ainsi que si votre ordinateur a plusieurs utilisateurs.)

  2. Copiez le code ci-dessus dans le fichier que vous avez créé. Remplacez les valeurs des trois variables suivantes:

    connection="Auto Ethernet"

    vpn_connection="Ma connexion VPN"

    run_interval="60"

    Ils peuvent être trouvés en ouvrant le gestionnaire de réseau. Dans mon cas, connection="Auto Ethernet" est ma connexion filaire active (je n'ai pas testé avec le sans fil) et vpn_connection="Ma connexion VPN" est le nom de ma connexion VPN. run_interval="60" est l'intervalle de temps en secondes pour savoir quand répéter le script.

  3. Ouvrez Applications- & gt; Outils système- & gt; Préférences- & gt; Applications de démarrage. Ajouter un nom approprié, par ex. "VPN Auto Connector", et pour la commande, choisissez le fichier .sh que vous avez enregistré précédemment. Maintenant, le script bash s'exécutera au démarrage et continuera à vérifier si la connexion VPN est active. Vous pouvez l'essayer en déconnectant la connexion VPN et vous devez l'activer automatiquement.

réponse donnée PinkMistGenerator 12.11.2013 - 13:30
la source
0

Vpnautoconnect fonctionne correctement dans Ubuntu 12.04, 13.04 et 13.10 (je pense que dans l'option 13.10, l'option "Se connecter automatiquement" dans Network-Manager a été corrigée et fonctionne maintenant)

Donc, si vous avez des problèmes pour l'installer ou le faire fonctionner, ou ne trouvez pas l'option "openvpn" dans le menu déroulant de Network-Manager pour créer une connexion vpn ouverte, vous pouvez suivre ce tuto, qui vous donne toutes les étapes, très claires et faciles à appliquer.

Jetez un coup d’œil à ICI

Et faites le moi savoir: -)

    
réponse donnée Pouchette 13.12.2013 - 18:50
la source
0

Voici un script très robuste et fiable qui:

  • Vérifiez si vous êtes connecté à un VPN
  • Sinon, connectez-vous au dernier VPN actif

Ceci est particulièrement utile si vous vous connectez régulièrement à différents VPN car vous n'avez pas besoin de spécifier une seule connexion VPN pour vous reconnecter.

#!/bin/bash

nmcli --mode multiline --fields uuid,vpn connection status | grep -qc "^VPN:.*yes" 1>/dev/null 2>&1

if [ $? -ne 0 ]; then
        last_vpn_uuid='nmcli --mode tabular --fields uuid,type,timestamp connection list | grep -E "\s+vpn\s+" | sort -k3 -nr | head -n1 | awk '{ print  }''

        nmcli connection up uuid "$last_vpn_uuid"
fi
    
réponse donnée Guest 13.08.2015 - 16:56
la source
0

Je suis sur Ubuntu 14.04 LTS sur plusieurs machines. En raison du fait que j'ai des conditions préalables spéciales:

  1. Je ne souhaite pas enregistrer le mot de passe dans le gestionnaire de mots de passe
  2. J'utilise un invité VirtualBox qui perd le VPN lors de la reconnexion réseau
  3. Le dialogue de mot de passe s’ouvre plusieurs fois lors de la reconnexion
  4. J'utilise un serveur VPN de secours (basculement)
  5. Utiliser un fichier de configuration pour mes uuids

Je travaille avec ce script très éprouvé et très fiable:

Il existe cependant des mises en garde concernant les applets de gestionnaire de réseau que je pourrais résoudre temporairement (voir la section Dépannage de l’article).

vpnautoconnect ne fonctionne pas pour moi.

    
réponse donnée apos 17.11.2015 - 11:53
la source
0

Répondre par @vincentYo semble simple, mais je ne pouvais pas le faire, donc j'ai fait comme ci-dessous.

step1: créer un script shell et ajouter la commande vpn

  

vim auto_vpn.sh

#!/bin/sh vpnc --enable-1des

step2: ouvrez un fichier sudoer et dites au noyau de ne pas demander de mot de passe pour ce fichier.

  

sudo vim / etc / sudoers

La plupart des choses à l'intérieur de ce fichier seront commentées, ajoutez simplement comme ci-dessous

  

nom d'utilisateur ALL = (racine) NOPASSWD: your_shell_script.sh

exemple:

  

sharath ALL = (root) NOPASSWD: /home/sharath/workspace/work/src/auto_vpn.sh

step3: configurez un job cron, qui déclenchera ce script shell, au-dessous duquel le job cron sera exécuté toutes les minutes (bcz mon internet reste allumé et éteint, donc chaque minute)

  

* * * * * sudo /home/sharath/workspace/work/src/auto_vpn.sh

Je l'utilise depuis plusieurs jours, fonctionne bien dans Ubuntu 16.04 LTS ..Chears !!

    
réponse donnée Sharath B.J 29.06.2017 - 14:36
la source

Lire d'autres questions sur les étiquettes