Conectar / desconectar de VPN desde la línea de comando

132

Tengo dos VPN configuradas en mi máquina Ubuntu, una con vpnc y otra con PPTP. Ambos fueron configurados utilizando la interfaz del administrador de red GNOME y funcionan muy bien. Sin embargo, en ocasiones necesito acceder a esta máquina de forma remota: ¿hay alguna forma de conectarse o desconectarse a estas VPN desde la línea de comandos?

Fuente de tim
fuente
¿El comando vpnc detallado aquí no funciona para usted? Además, aquí hay instrucciones para configurar y conectarse a PPTP . ¿No funcionan?
Kris Harper

Respuestas:

192

Si desea interactuar con NetworkManager desde la línea de comandos, puede usar el comando "nmcli".

enumerar todas las conexiones NM: nmcli con

iniciar conexión (wifi, vpn, etc.): nmcli con up id ConnectionName

conexión hacia abajo: nmcli con down id ConnectionName

(Más comandos de nmcli en la página de manual de nmcli ).


También tenga en cuenta que los usuarios habituales generalmente no tienen permiso para controlar las redes. El uso de los comandos anteriores sudodebería funcionar para la mayoría de las conexiones, pero VPN podría fallar específicamente con "Error: Error de activación de la conexión: no hay secretos VPN válidos".

Si eso le sucede, es probable que la contraseña de VPN esté almacenada en el llavero de gnomo de su usuario, lo que la hace inaccesible para el usuario raíz. Este comentario explica por qué.

Para solucionar esto, edite / etc / NetworkManager / system-connections / ConnectionName y [vpn], cambie la línea de banderas de contraseña a:

password-flags=0

Si hay una línea que comienza con Xauth password-flags, cámbiela en su lugar.

Luego agregue lo siguiente debajo del [vpn]bloque:

[vpn-secrets]
password=YourPassword

(Si en el paso anterior cambió la línea Xauth password-flags, agregue en su Xauth password=...lugar).

Ahora reinicie el administrador de red:

sudo service network-manager restart

Luego, iniciar la conexión VPN con sudo nmcli con up id ConnectionNamedebería funcionar sin problemas.

ihashacks
fuente
1
Desearía que hubiera un comando de desconexión general que desconectara cualquier VPN sin tener que especificar su id. Eso probablemente haría que esta característica (quiero) sea más fácil de implementar.
Lonnie Best
Si está utilizando ipsec (por ejemplo, vpnc), es posible que también deba agregar "IPSec secret-flags = 0" e "IPSec secret = <grouppw>" en sus respectivos lugares
Matt
Esto todavía no me solucionó :( Recibo un mensaje "Error: Error de activación de la conexión: razón desconocida".
dano
Retiro eso ... después de la tercera vez que ejecuté el comando funcionó. La primera vez falla rápidamente. La segunda vez falló lentamente. Tercera vez trabajado!
dano
2
¿Texto claro PWs? ¿¿De Verdad?? ¿Alguien tiene una solución SEGURA?
user447607
4

La respuesta de ihashacks con los comentarios de Matt funcionó para mí ... casi. Tuve que ajustar una línea.

mi línea de marca de contraseña en realidad decía: "Xauth password-flag". La respuesta aceptada no funcionaría para mí hasta que cambie a la siguiente

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

No estoy seguro de por qué mis conexiones VPN tienen "Xauth" antes de cada mención de contraseña.

(Lo siento, esta es una nueva respuesta, todavía no puedo hacer comentarios).

John
fuente
2
Esto es para algunos tipos de VPN, por ejemplo, el de Cisco; Muy útil para estos casos! Sin embargo, hay un error: el caso correcto de una tecla es IPSec secret; de lo contrario, NM no lo reconoce.
Marcus
Gracias Marcus, hice la corrección de mi respuesta para que nadie intente copiar / pegar un error tipográfico.
John