Conectar-se automaticamente à VPN ao usar uma rede específica no Ubuntu GNOME 16.04

12

No Unity, o Network Manger tem uma caixa de seleção disponível para todas as conexões que configuram o uso automático de uma VPN quando a conexão está ativa:

Imagem da configuração de Conexão no ubuntu 16.06 Unity

Existe uma maneira de obter uma opção como esta no Ubuntu GNOME 16.04? (que usa o GNOME 3.18). Como a página de configuração da conexão não possui esta opção: insira a descrição da imagem aqui

S.Mohsen sh
fonte
Bem-vindo ao Ask Ubuntu! Esta resposta sugere que ambos compartilhem o mesmo NetworkManager. Você poderia verificar duas vezes? Caso sejam diferentes, você também pode incluir uma captura de tela do NetworkManager no Ubuntu GNOME?
Andrea Lazzarotto
@AndreaLazzarotto thanks! Eu forneci a captura de tela. Vou tentar vpnautoconnect que foi sugerido nesta pergunta para ver se funciona. Mas gostaria de saber se a configuração poderia ser ativada no próprio Network Manger, pois, como você disse, é o mesmo Network Manger nos dois tipos.
S.Mohsen sh 07/08/16
Esse recurso ainda parece estar ausente no Ubuntu 17.04. Não sei por que ele teria sido removido. Depois de procurar uma solução e encontrar muito pouco, parece estranho que mais pessoas não usem VPNs e prefiram o recurso de conexão automática.
Rsync
Desde que seu sistema tenha um /etc/NetworkManager/system-connectionsdiretório preenchido com perfis de conexão e você não se importe em editar configurações, vale a pena conferir a resposta que eu publiquei em outro lugar sobre o tópico de conexão automática a uma VPN para uma determinada interface de rede.
S0AndS0 20/05/19

Respostas:

22

Eu encontrei a resposta para isso. Estranhamente, você precisa abrir o Network Manager manualmente (em vez de usar o painel ou Configurações.

Então no Terminaltipo nm-connection-editor. Depois disso, a janela que se abre terá as opções na primeira imagem do OP.

Isso funciona para mim em 16.04 e 17.04. Felizmente, eles integrarão os vários gerenciadores de rede nas próximas versões do GNOME.

Rsync
fonte
Isso funciona para mim também em 18.04 - obrigado! Não ficou claro imediatamente onde estavam essas configurações.
JohnnyCoder 25/05
Funciona também para o Debian 9 Stretch. Obrigado!
Christian Toffolo
1

Eu resolvi o problema com um script em

/etc/NetworkManager/dispatcher.d

Esta pasta contém scripts que são chamados em ordem alfabética pelo gerente da rede sempre que houver uma alteração no status da rede. Isso tem a vantagem (diferente de outra solução que eu vi) de que sua VPN não é apenas ativada na inicialização / inicialização, mas também no currículo após a suspensão / suspensão.

Para que isso funcione, você precisa de uma conexão VPN que já esteja configurada no seu Network Manager, o que suponho que você tenha, caso contrário, você não faria a pergunta.

  1. Primeiro passo: Segui o conselho desta página (em alemão) ( https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/ ). Abri e nomeei um novo script 02VPN1

    sudo YOURTEXTEDITOR /etc/NetworkManager/dispatcher.d/02VPN1
    

e escreveu:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    if [ "$2" = "up" ]; then
       sleep "3s"
       nmcli con up id "${VPN_CONNECTION_NAME}"
    fi

O NAME_OF_YOUR_VPN_CONNECTION é o nome do arquivo de conexão NAME_OF_YOUR_VPN_CONNECTION.conf que você usou para configurar a conexão à qual deseja se conectar automaticamente.

A condição se ["$ 2" = "up"] significa que a conexão VPN é conectada automaticamente somente quando você inicia a conexão de rede (sua conexão com a Internet); Depois que o serviço VPN for executado, você poderá desativá-lo ou escolher outra VPN.

Se você quiser executar sempre essa VPN sem a capacidade de desabilitá-la, poderá escrever o script sem esta condição If:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    sleep "3s"
    nmcli con up id "${VPN_CONNECTION_NAME}"

Você só pode configurar esse arquivo como root, portanto ele pertence ao root sem que você faça nada além disso. É assim que deve ser.

Finalmente: torne este arquivo executável, caso contrário, o script não será executado. No terminal:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. Segundo passo (DIFERENTE das instruções no link acima; usei o conselho aqui: https://ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

Esse processo é executado pelo root e o root ainda não tem acesso à senha que você usa para sua VPN. Faça o seguinte: Abra o arquivo NAME_OF_YOUR_VPN_CONNECTION em / etc / NetworkManager / system-connections como root. Abra um terminal e faça:

    sudo YOURTEXTEDITOR /etc/NetworkManager/system-connections/NAME_OF_YOUR_VPN_CONNECTION

a) Mude a linha

    password-flags=1 

para

    password-flags=0

b) Na parte inferior, adicione

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

Salve e feche o arquivo.

  1. Agora reinicie o seu Network Manager. Terminal:

    systemctl restart NetworkManager
    

para inicializar as novas configurações. Você deveria terminar.

Eu fiz isso ontem e, tanto quanto posso ver, funciona bem. Sem garantias!

Xenon
fonte