Conectar / desconectar da VPN na linha de comando

132

Eu tenho duas VPNs configuradas na minha máquina Ubuntu, uma usando vpnc e outra usando PPTP. Ambos foram configurados usando a interface do gerenciador de rede GNOME e funcionam muito bem. No entanto, ocasionalmente, preciso acessar esta máquina remotamente - existe uma maneira de conectar ou desconectar essas VPNs na linha de comando?

Fonte de Tim
fonte
O comando vpnc detalhado aqui não funciona para você? Além disso, há instruções para configurar e conectar-se ao PPTP aqui. Eles não funcionam?
Kris Harper

Respostas:

192

Se você deseja interagir com o NetworkManager a partir da linha de comando, pode usar o comando "nmcli".

listar todas as conexões NM: nmcli con

iniciar a conexão (wifi, vpn, etc): nmcli con up id ConnectionName

conexão inativa: nmcli con down id ConnectionName

(mais comandos nmcli na página de manual nmcli ).


Observe também que usuários comuns geralmente não têm permissão para controlar a rede. O uso dos comandos acima com sudodeve funcionar para a maioria das conexões, mas a VPN pode falhar especificamente com "Erro: falha na ativação da conexão: sem segredos válidos da VPN".

Se isso acontecer com você, é provável que a senha da VPN esteja armazenada no chaveiro do gnome do usuário, o que a torna inacessível ao usuário root. Este comentário explica o porquê.

Para corrigir isso, edite / etc / NetworkManager / system-connections / ConnectionName e [vpn], em seguida, altere a linha de sinalizadores de senha para:

password-flags=0

Se houver uma linha começando com Xauth password-flags, altere-a.

Em seguida, adicione o seguinte abaixo do [vpn]bloco:

[vpn-secrets]
password=YourPassword

(Se na etapa anterior você alterou a linha Xauth password-flags, adicione em seu Xauth password=...lugar.)

Agora reinicie o gerenciador de rede:

sudo service network-manager restart

Em seguida, iniciar a conexão VPN com sudo nmcli con up id ConnectionNamedeve funcionar sem problemas.

ihashacks
fonte
11
Eu gostaria que houvesse um comando geral de desconexão que desconectasse qualquer VPN sem precisar especificar seu ID. Isso provavelmente tornaria esse recurso (eu quero) mais fácil de implementar.
Lonnie Best
Se você estiver usando o ipsec (por exemplo, vpnc), também poderá ser necessário adicionar "IPSec secret-flags = 0" e "IPSec secret = <grouppw>" em seus respectivos lugares
Matt
Isso ainda não me corrigiu :( Recebo a mensagem "Erro: falha na ativação da conexão: motivo desconhecido."
dano 8/15
Eu retiro isso ... depois da terceira vez, executei o comando que funcionava. A primeira vez que falhou rapidamente. Segunda vez falhou lentamente. Terceira vez funcionou!
Dano
2
PWs de texto não criptografado ?? Realmente?? Alguém tem uma solução SECURE?
User447607
4

A resposta de ihashacks com os comentários de Matt funcionou para mim ... quase. Teve que ajustar uma linha.

minha linha de sinalizador de senha dizia: "Bandeira de senha Xauth". A resposta aceita não funcionaria para mim até que eu mudei para a seguinte

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

Não sei por que minhas conexões VPN têm "Xauth" antes de cada menção de senha.

(Desculpe, esta é uma nova resposta, mas ainda não é possível fazer comentários.)

John
fonte
2
Isso é para alguns tipos de VPN, por exemplo, o Cisco; muito útil para esses casos! Há um erro: o caso correto de uma tecla é IPSec secret- caso contrário, não é reconhecido pelo NM.
Marcus
Obrigado Marcus, fiz a correção da minha resposta para que ninguém tente copiar / colar um erro de digitação.
John John