web-dev-qa-db-fra.com

Connecter / déconnecter du VPN à partir de la ligne de commande

J'ai deux configurations de VPN sur ma machine Ubuntu, l'une utilisant vpnc et l'autre utilisant PPTP. Celles-ci ont été configurées à l'aide de l'interface du gestionnaire de réseau GNOME et fonctionnent parfaitement. Cependant, il me faut parfois accéder à cette machine à distance - existe-t-il un moyen de se connecter ou de se déconnecter de ces VPN à partir de la ligne de commande?

125
Tim Fountain

Si vous souhaitez interagir avec NetworkManager à partir de la ligne de commande, vous pouvez utiliser la commande "nmcli".

liste toutes les NM connexions: nmcli con

établir la connexion (wifi, vpn, etc.): nmcli con up id ConnectionName

connexion vers le bas: nmcli con down id ConnectionName

(plus de commandes nmcli dans la page de manuel nmcli ).


Notez également que les utilisateurs réguliers n’ont généralement pas l’autorisation de contrôler le réseau. L'utilisation des commandes ci-dessus avec Sudo devrait fonctionner pour la plupart des connexions, mais VPN pourrait échouer avec "Erreur: L'activation de la connexion a échoué: aucun secret VPN valide."

Si cela vous arrive, il est probable que le mot de passe VPN soit stocké dans le gnome-keyring de votre utilisateur, ce qui le rend inaccessible à l'utilisateur root. Ce commentaire explique pourquoi.

Pour résoudre ce problème, éditez /etc/NetworkManager/system-connections/ConnectionName et sous [vpn], remplacez la ligne indicateurs de mot de passe par :

password-flags=0

S'il existe une ligne commençant par Xauth password-flags, modifiez-la à la place.

Puis ajoutez ce qui suit sous le bloc [vpn]:

[vpn-secrets]
password=YourPassword

(Si, à l'étape précédente, vous avez modifié la ligne Xauth password-flags, ajoutez plutôt Xauth password=....)

Maintenant, redémarrez le gestionnaire de réseau en:

Sudo service network-manager restart

Ensuite, le démarrage de la connexion VPN avec Sudo nmcli con up id ConnectionName devrait fonctionner sans problème.

181
ihashacks

la réponse de ihashacks avec les commentaires de Matt a fonctionné pour moi ... ou presque. J'ai dû modifier une ligne.

ma ligne d'indicateur de mot de passe se lit effectivement: "Xauth identificateur de mot de passe". La réponse acceptée ne fonctionnera pas pour moi jusqu'à ce que je passe à la suivante

[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>

Je ne sais pas pourquoi mes connexions vpn ont "Xauth" avant chaque mention de mot de passe.

(Désolé, ceci est une nouvelle réponse, je ne peux pas encore faire de commentaires.)

4
John