Connetti / disconnetti dalla VPN dalla riga di comando


132

Ho due VPN configurati sulla mia macchina Ubuntu, uno che utilizza vpnc e uno che utilizza PPTP. Entrambi sono stati configurati usando l'interfaccia del gestore di rete GNOME e funzionano alla grande. Tuttavia, a volte devo accedere a questa macchina da remoto: esiste un modo per connettersi o disconnettersi da queste VPN dalla riga di comando?


Il comando vpnc qui dettagliato non funziona per te? Inoltre, ci sono istruzioni per la configurazione e la connessione a PPTP qui. Non funzionano?
Kris Harper,

Risposte:


192

Se si desidera interagire con NetworkManager dalla riga di comando, è possibile utilizzare il comando "nmcli".

elenca tutte le connessioni NM: nmcli con

avviare la connessione (wifi, vpn, ecc.): nmcli con up id ConnectionName

giù connessione: nmcli con down id ConnectionName

(più comandi nmcli nella manpage nmcli ).


Inoltre, gli utenti normali di solito non dispongono dell'autorizzazione per controllare la rete. L'uso dei comandi sopra con sudodovrebbe funzionare per la maggior parte delle connessioni, ma la VPN in particolare potrebbe non riuscire con "Errore: l'attivazione della connessione non è riuscita: nessun segreto VPN valido".

Se ciò accade, è probabile che la password VPN sia memorizzata nel portachiavi gnome dell'utente, il che la rende inaccessibile all'utente root. Questo commento spiega perché.

Per risolvere questo problema, modifica / etc / NetworkManager / system-connections / ConnectionName e sotto [vpn], cambia la linea dei flag password in:

password-flags=0

Se c'è una linea che inizia con Xauth password-flags, cambiarla invece.

Quindi aggiungere quanto segue sotto il [vpn]blocco:

[vpn-secrets]
password=YourPassword

(Se nel passaggio precedente hai modificato la riga Xauth password-flags, aggiungi Xauth password=...invece.)

Ora riavvia il gestore di rete:

sudo service network-manager restart

Quindi l'avvio della connessione VPN sudo nmcli con up id ConnectionNamedovrebbe funzionare senza problemi.


1
Vorrei che ci fosse un comando generale di disconnessione che avrebbe disconnesso qualsiasi VPN senza dover specificare il suo ID. Ciò renderebbe probabilmente questa funzionalità (voglio) più semplice da implementare.
Lonnie Best

Se stai usando ipsec (ad es. Vpnc), potresti anche aggiungere "IPSec secret-flags = 0" e "IPSec secret = <grouppw>" nelle rispettive posizioni
Matt

Questo non mi ha ancora risolto :( Ricevo un messaggio "Errore: attivazione connessione non riuscita: motivo sconosciuto."
dano

Lo riprendo ... dopo la terza volta che ho eseguito il comando ha funzionato. La prima volta è fallita rapidamente. La seconda volta è fallita lentamente. La terza volta ha funzionato!
dano,

2
Cancella testo PW ?? Veramente?? Qualcuno ha una soluzione SICURA?
user447607

4

La risposta di ihashacks con i commenti di Matt ha funzionato per me ... quasi. Ho dovuto modificare una riga.

la mia linea di flag password ha effettivamente letto: "Xauth password-flag". La risposta accettata non avrebbe funzionato per me finché non avessi cambiato la seguente

[vpn]
...
Xauth password-flag=0
IPSec secret-flags=0

[vpn-secrets]
Xauth password=<my pw> ## This is the one I changed.
IPSec secret=<group pw>

Non so perché le mie connessioni VPN abbiano "Xauth" prima di ogni menzione di password.

(Mi dispiace, questa è una nuova risposta, non posso ancora fare commenti.)


2
Questo è per alcuni tipi di VPN, ad esempio Cisco; molto utile per questi casi! C'è un errore, però: il caso corretto di una chiave è IPSec secret- altrimenti, non è riconosciuto da NM.
Marcus,

Grazie Marcus, ho apportato la correzione alla mia risposta, quindi nessuno prova a copiare / incollare un refuso.
Giovanni,
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.