Automatycznie łącz się z VPN, gdy używasz określonej sieci w Ubuntu GNOME 16.04


12

W Unity Network Manager ma pole wyboru dostępne dla każdego połączenia, które konfiguruje automatyczne korzystanie z VPN, gdy połączenie jest aktywne:

Obraz ustawienia połączenia w Ubuntu 16.06 Unity

Czy istnieje sposób na uzyskanie takiej opcji w Ubuntu GNOME 16.04? (który korzysta z GNOME 3.18). Ponieważ strona ustawień połączenia nie ma tej opcji: wprowadź opis zdjęcia tutaj


Witamy w Ask Ubuntu! Ta odpowiedź sugeruje, że oboje korzystają z tego samego menedżera sieci. Czy mógłbyś dwukrotnie sprawdzić? Jeśli są różne, czy możesz dołączyć zrzut ekranu NetworkManager w Ubuntu GNOME?
Andrea Lazzarotto,


@AndreaLazzarotto dzięki! Dostarczyłem zrzut ekranu. Spróbuję vpnautoconnect, który został zasugerowany w tym pytaniu, aby sprawdzić, czy działa. Zastanawiam się jednak, czy ustawienie można aktywować w samym Network Mangerze, ponieważ, jak powiedziałeś, jest to ten sam Network Manager w obu wersjach.
S.Mohsen sh

Wydaje się, że tej możliwości brakuje w Ubuntu 17.04. Nie jestem pewien, dlaczego zostałby usunięty. Po poszukiwaniu rozwiązania i znalezieniu bardzo mało wydaje się dziwne, że więcej osób nie korzysta z VPN i preferuje funkcję automatycznego łączenia.
Rsync

Pod warunkiem, że twój system ma /etc/NetworkManager/system-connectionskatalog wypełniony profilami połączeń i nie masz nic przeciwko edycji konfiguracji, warto sprawdzić odpowiedź, którą zamieściłem w temacie automatycznego łączenia się z VPN dla danego interfejsu sieciowego.
S0AndS0

Odpowiedzi:


22

Znalazłem odpowiedź na to. Dziwne, musisz ręcznie otworzyć Menedżera sieci (w przeciwieństwie do korzystania z panelu lub Ustawień.

Więc we Terminalwpisie nm-connection-editor. Po wykonaniu tego okno, które się otworzy, będzie miało opcje na pierwszym obrazie PO.

Działa to dla mnie w 16.04 i 17.04. Mamy nadzieję, że zintegrują różnych menedżerów sieci w nadchodzących wersjach GNOME.


To działa również dla mnie w 18.04 - dzięki! Nie było od razu jasne, gdzie były te ustawienia.
JohnnyCoder

Działa również dla Debian 9 Stretch. Dziękuję Ci!
Christian Toffolo,

1

Rozwiązałem problem ze skryptem w

/etc/NetworkManager/dispatcher.d

Ten folder zawiera skrypty wywoływane w kolejności alfabetycznej przez menedżera sieci za każdym razem, gdy następuje zmiana statusu sieci. Ma to tę zaletę (inną niż inne rozwiązanie, które widziałem), że twoja sieć VPN jest aktywowana nie tylko podczas rozruchu / uruchamiania, ale także podczas wznawiania po zawieszeniu / uśpieniu.

Aby to zadziałało, potrzebujesz połączenia VPN, które jest już skonfigurowane w Menedżerze sieci, co, jak zakładam, masz, inaczej nie zadałbyś tego pytania.

  1. Pierwszy krok: poszedłem za radą tej (niemieckiej) strony ( https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/ ). Otworzyłem i nadałem nowy skrypt 02VPN1

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

i napisał:

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

NAME_OF_YOUR_VPN_CONNECTION to nazwa pliku połączenia NAME_OF_YOUR_VPN_CONNECTION.conf, którego użyto do skonfigurowania połączenia, z którym chcesz się automatycznie połączyć.

Warunek, jeśli [„$ 2” = „up”] oznacza, że ​​połączenie VPN jest łączone automatycznie dopiero po uruchomieniu połączenia sieciowego (połączenie internetowe); po uruchomieniu usługi VPN możesz ją wyłączyć lub wybrać inną VPN.

Jeśli tylko i za każdym razem chcesz uruchomić tę sieć VPN bez możliwości jej wyłączenia, możesz napisać skrypt bez tego warunku If:

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

Możesz ustawić ten plik tylko jako root, więc jest on własnością root, ale nie musisz nic robić. Tak powinno być.

Wreszcie: uczyń ten plik wykonywalnym, w przeciwnym razie skrypt nie uruchomi się. W terminalu:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. Drugi krok (RÓŻNY z instrukcji w powyższym linku; skorzystałem z porady tutaj: https://ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

Ten proces jest uruchamiany przez użytkownika root, a użytkownik root nie ma jeszcze dostępu do hasła używanego w sieci VPN. Wykonaj następujące czynności: Otwórz plik NAME_OF_YOUR_VPN_CONNECTION w / etc / NetworkManager / system-connections jako root. Otwórz terminal i wykonaj:

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

a) Zmień linię

    password-flags=1 

do

    password-flags=0

b) Na dole dodaj

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

Zapisz i zamknij plik.

  1. Teraz uruchom ponownie Network Managera. Terminal:

    systemctl restart NetworkManager
    

aby zainicjować nowe ustawienia. Powinieneś skończyć.

Zrobiłem to wczoraj i, o ile widzę, działa dobrze. Bez gwarancji!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.