Connessione automatica VPN


39

Sto usando Ubuntu 13.04 con Gnome e di recente ho impostato una VPN (aperta). C'è un modo per abilitarlo di default? Ogni volta che avvio o addirittura ho perso la connessione, devo abilitare manualmente la VPN. C'è un'opzione che mi manca?

Risposte:


66

Tramite l'indicatore Network Manager nm-applet (l'applet della barra delle reti GNOME o Unity installato per impostazione predefinita), è possibile configurare NetworkManager per connettersi automaticamente a una VPN quando è connessa una rete.

  1. Fare clic sull'applet della barra delle reti e fare clic su "Modifica connessioni ..." o eseguire nm-connection-editor.
  2. Seleziona una connessione di rete e fai clic su "Modifica ..."
  3. Seleziona "Connetti automaticamente alla VPN quando usi questa connessione" e seleziona la VPN desiderata nell'elenco a discesa.
  4. Salvare.

screenshot di nm-connection-editor


Quando questo è abilitato, c'è un bug in NetworkManager che può interrompere la funzione "connettiti automaticamente a questa rete". ( Modifica : questo bug è stato ora contrassegnato come "correzione rilasciata" in Ubuntu 16.04). Se NetworkManager prova a connettersi automaticamente e fallisce, vedrai una linea come la seguente in /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.

Sembra che NetworkManager non riesca a ottenere la password VPN dell'utente da gnome-keyring-daemon. Una soluzione alternativa consiste nel consentire a NetworkManager di archiviare la password in testo normale nel file di configurazione in /etc/NetworkManager/system-connections/. Per farlo:

  1. Apri un terminale.
  2. sudoedit /etc/NetworkManager/system-connections/<VPN>, dove si <VPN>trova il file di configurazione per la tua VPN (il nome del file è generalmente il nome che hai assegnato alla tua VPN).
  3. Cambia la linea password-flags=1inpassword-flags=0
  4. Salva ed esci.

NetworkManager ora memorizzerà la password VPN stessa (vedere man nm-settingsper i dettagli) e la connessione automatica di rete funzionerà ancora una volta.


5
Ciò non esiste nel gestore di rete di gnome.
Paul Woitaschek,

4
All'apertura nm-connection-editorpuoi trovarlo quando modifichi una connessione nella scheda generale .
Lode

1
Questo fa sì che la connessione stessa non si colleghi automaticamente. c'è qualche soluzione a questo?
Tamás Barta,

@Barta Questo è un bug in NetworkManager. Ho aggiunto una soluzione alternativa alla mia risposta.
Vincent Yu,

8

Dai un'occhiata a vpnautoconnect.

vpnautoconnect è un demone che ti consente di riconnetterti automaticamente (anche all'avvio) creando una VPN con Network Manager. Può riconnettersi molto rapidamente e monitorare la banda con, Funziona con pptp e connessione openvpn.

Per ulteriori informazioni e per scaricare visitare il sito Web .

Prova anche questo:

utilizzare la funzione AUTOSTART in /etc/default/openvpn

O

Scopri l'UUID della tua connessione VPN.

nmcli con list | grep -i vpn

L'UUID è la seconda colonna con lettere, numeri e trattini.

Avviare la connessione in un terminale. Premi Ctrl+ Alt+ Tsulla tastiera per aprire Terminale. Quando si apre, esegui i seguenti comandi:

nmcli con up uuid <put you UUID here>

Impostare questo per l'esecuzione all'avvio.

Vai a Dash, digita e scegli Startup Applications, fai clic su Aggiungi e aggiungi il comando nmcli sopra (con l'UUID). Fai clic su "Aggiungi". Nel nome digita il nome che vuoi usare e in Comando metti l'intera riga nmcli sopra. Fai di nuovo clic su "Aggiungi". Ora riavvia e prova.

Fonte: SourceForge


L'ho installato e configurato, riavviato il mio computer ma non funziona.
Paul Woitaschek,

Ho aggiunto alcune informazioni in più nella mia risposta.
Mitch

C'è della documentazione disponibile per vpnautoconnect? Il loro sito Web è una pagina del progetto SourceForge abbandonata e il pacchetto non fornisce pagine man. Duro sembra promettente.
Tamás Barta,

Non riesco a trovarne nessuno, ma continuerò a cercare.
Mitch

L' elenco delle azioni è stato rinominato per essere mostrato in 15.04 o 15.10
Croll il

2

Consiglierei di dare un'occhiata allo script in questo articolo :

#!/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

Per scoprire il valore di YourVPNUUID$ VPNNAME, eseguire semplicemente quanto segue;

nmcli con list | grep -i vpn

2

vpnautoconnect non ha funzionato per me in 12.04 LTS e non mi sembra l'unico.

L'ho cercato un po 'e ho combinato del codice esistente per creare il mio primo script bash. Verifica se una determinata connessione VPN è attiva e, in caso contrario, si connetterà. Se è collegato, dormirà per un determinato tempo, ad esempio 1 minuto, e ripeterà il processo indefinitamente.

#! /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

Istruzioni:

  1. Crea un file di testo vuoto chiamato ad esempio vpn-auto-connector.sh (l'ho salvato nella mia cartella home. Fai clic con il pulsante destro del mouse e seleziona Proprietà-> Autorizzazioni e seleziona "Consenti l'esecuzione del file come programma". (Potrebbe essere necessario archiviare il file da qualche altra parte e / o alterare le autorizzazioni di lettura / scrittura / presentazione anche se il tuo computer ha più utenti.)

  2. Copia il codice dall'alto nel file che hai creato. Sostituisci i valori delle seguenti tre variabili:

    connessione = "Auto Ethernet"

    vpn_connection = "La mia connessione VPN"

    run_interval = "60"

    Possono essere trovati aprendo il gestore di rete. Nel mio caso connection = "Auto Ethernet" è la mia connessione cablata attiva (non è stata testata con wireless) e vpn_connection = "La mia connessione VPN" è il nome della mia connessione VPN. run_interval = "60" è l'intervallo di tempo in secondi per quando ripetere lo script.

  3. Apri Applicazioni-> Strumenti di sistema-> Preferenze-> Applicazioni di avvio. Aggiungi un nome adatto, ad es. "VPN Auto Connector", e per il comando scegli il file .sh che hai salvato in precedenza. Ora lo script bash verrà eseguito all'avvio e continuerà a verificare se la connessione VPN è attiva. Puoi provarlo disconnettendo la connessione VPN e dovrebbe essere riattivato automaticamente.


Grazie mille. Questo script è facile da capire.
Evan Hu,

0

Vpnautoconnect funziona bene in Ubuntu 12.04, 13.04 e 13.10 (penso che nel 13.10 l'opzione "connettiti automaticamente" in Network-Manager sia stata riparata e funzioni ora)

Quindi, se hai problemi ad installarlo o farlo funzionare, o non trovi l'opzione "openvpn" nel menu a discesa di Network-Manager per creare una connessione vpn aperta, puoi seguire questo tutorial che ti dà tutto i passaggi, molto chiari e facili da applicare.

Dai un'occhiata QUI

E fammi sapere :-)


0

Ecco uno script molto robusto e affidabile che:

  • Controlla se sei connesso a una VPN
  • In caso contrario, connettiti alla VPN attiva più recente

Ciò è particolarmente utile se ci si collega abitualmente a VPN diverse poiché non è necessario specificare una singola connessione VPN a cui riconnettersi.

#!/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 $1 }'`

        nmcli connection up uuid "$last_vpn_uuid"
fi

Questo è davvero interessante, ma genera diversi errori su: $ nmcli -version nmcli tool, versione 0.9.10.0 $ lsb_release -a Nessun modulo LSB disponibile. ID distributore: Ubuntu Descrizione: Ubuntu 15.04 Rilascio: 15.04 Nome in codice: vivid
gare

0

Sono su Ubuntu 14.04 LTS su diverse macchine. A causa del fatto, ho alcuni prerequisiti speciali:

  1. Non voglio salvare la password nel gestore password
  2. Sto usando un guest VirtualBox che perde VPN alla riconnessione di rete
  3. La finestra di dialogo della password si apre più volte al momento della riconnessione
  4. Sto usando un server VPN di backup (failover)
  5. Utilizzo di un file di configurazione per i miei uuidi

Sto lavorando con questo script molto collaudato e molto affidabile:

Esistono tuttavia alcuni avvertimenti con l'applet del gestore di rete che potrei temporaneamente risolvere (vedere la sezione Risoluzione dei problemi dell'articolo).

vpnautoconnect non funziona per me.


0

la risposta di @vincentYo sembra diretta, ma non ho potuto farlo, quindi ho fatto come di seguito.

step1: crea uno script di shell e aggiungi il comando vpn

vim auto_vpn.sh

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

step2: aprire un file sudoer e dire al kernel di non chiedere la password per questo file.

sudo vim / etc / sudoers

la maggior parte delle cose all'interno di questo file saranno commentate, basta aggiungere come di seguito

nome utente ALL = (root) NOPASSWD: your_shell_script.sh

esempio:

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

step3: imposta un cron job, che attiverà questo script di shell, sotto cron job verrà eseguito ogni minuto (bcz il mio internet si accende e si spegne, quindi ogni minuto)

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

sto usando questo da molti giorni, lavorando benissimo in Ubuntu 16.04 LTS ..Chears !!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.