Stellen Sie automatisch eine Verbindung zu VPN her, wenn Sie ein bestimmtes Netzwerk in Ubuntu GNOME 16.04 verwenden

12

Unter Unity verfügt Network Manager über ein Kontrollkästchen für jede Verbindung, die die automatische Verwendung eines VPN konfiguriert, wenn die Verbindung aktiv ist:

Bild der Verbindungseinstellung in Ubuntu 16.06 Unity

Gibt es eine Möglichkeit, eine solche Option in Ubuntu GNOME 16.04 zu erhalten? (welches GNOME 3.18 verwendet). Da auf der Seite mit den Verbindungseinstellungen diese Option fehlt: Geben Sie hier die Bildbeschreibung ein

S.Mohsen sh
quelle
Willkommen bei Ask Ubuntu! Diese Antwort legt nahe, dass beide denselben NetworkManager verwenden. Könnten Sie das bitte noch einmal überprüfen? Wenn sie unterschiedlich sind, können Sie auch einen Screenshot des NetworkManager unter Ubuntu GNOME einfügen?
Andrea Lazzarotto
@AndreaLazzarotto danke! Ich habe den Screenshot zur Verfügung gestellt. Ich werde versuchen, vpnautoconnect, das in dieser Frage vorgeschlagen wurde, um zu sehen, ob es funktioniert. Ich frage mich jedoch, ob die Einstellung in Network Manager selbst aktiviert werden könnte, da es sich, wie Sie sagten, in beiden Varianten um denselben Network Manager handelt.
S.Mohsen sh
Diese Funktion scheint in Ubuntu 17.04 immer noch zu fehlen. Ich bin mir nicht sicher, warum es entfernt worden wäre. Nach der Suche nach einer Lösung und dem Auffinden von sehr wenig scheint es seltsam, dass mehr Menschen keine VPNs verwenden und die Autoconnect-Funktion bevorzugen.
Rsync
Vorausgesetzt, Ihr System verfügt über ein /etc/NetworkManager/system-connectionsVerzeichnis mit Verbindungsprofilen und es macht Ihnen nichts aus, Konfigurationen zu bearbeiten, lohnt es sich möglicherweise, die Antwort zu überprüfen, die ich an anderer Stelle zum Thema der automatischen Verbindung mit einem VPN für eine bestimmte Netzwerkschnittstelle gepostet habe.
S0AndS0

Antworten:

22

Ich habe die Antwort darauf gefunden. Seltsamerweise müssen Sie den Netzwerk-Manager manuell öffnen (im Gegensatz zur Verwendung des Bedienfelds oder der Einstellungen.

Also in TerminalTyp nm-connection-editor. Danach enthält das sich öffnende Fenster die Optionen im ersten Bild des OP.

Das funktioniert bei mir am 16.04 und 17.04. Hoffentlich werden sie die verschiedenen Netzwerkmanager in kommende Versionen von GNOME integrieren.

Rsync
quelle
Das funktioniert auch bei mir im 18.04 - danke! Es war nicht sofort klar, wo diese Einstellungen waren.
JohnnyCoder
Funktioniert auch für Debian 9 Stretch. Vielen Dank!
Christian Toffolo
1

Ich habe das Problem mit einem Skript in gelöst

/etc/NetworkManager/dispatcher.d

Dieser Ordner enthält Skripte, die vom Netzwerkmanager bei jeder Änderung des Netzwerkstatus in alphabetischer Reihenfolge aufgerufen werden. Dies hat den Vorteil (anders als bei einer anderen Lösung, die ich gesehen habe), dass Ihr VPN nicht nur beim Booten / Starten aktiviert wird, sondern auch beim Fortsetzen nach dem Suspend / Sleep.

Damit dies funktioniert, benötigen Sie eine VPN-Verbindung, die bereits in Ihrem Netzwerk-Manager eingerichtet ist. Ich gehe davon aus, dass Sie eine haben, sonst hätten Sie die Frage nicht gestellt.

  1. Erster Schritt: Ich habe den Rat dieser (deutschen) Seite befolgt ( https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/ ). Ich habe ein neues Skript 02VPN1 geöffnet und benannt

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

und schrieb:

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

Die NAME_OF_YOUR_VPN_CONNECTION ist der Name der Verbindungsdatei NAME_OF_YOUR_VPN_CONNECTION.conf, mit der Sie die Verbindung eingerichtet haben, zu der Sie eine automatische Verbindung herstellen möchten.

Die Bedingung, wenn ["$ 2" = "up"] bedeutet, dass die VPN-Verbindung nur dann automatisch hergestellt wird, wenn Sie die Netzwerkverbindung (Ihre Internetverbindung) starten. Sobald der VPN-Dienst ausgeführt wird, können Sie ihn deaktivieren oder ein anderes VPN auswählen.

Wenn Sie dieses VPN nur und jedes Mal ausführen möchten, ohne es deaktivieren zu können, können Sie das Skript ohne diese If-Bedingung schreiben:

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

Sie können diese Datei nur als root einrichten, sodass sie root gehört, ohne dass Sie zusätzlich etwas unternehmen müssen. Das ist wie es sein sollte.

Endlich: Machen Sie diese Datei ausführbar, sonst wird das Skript nicht ausgeführt. Im Terminal:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. Zweiter Schritt (UNTERSCHIEDLICH von den Anweisungen im obigen Link; ich habe den Rat von hier verwendet: https://ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

Dieser Prozess wird von root ausgeführt, und root hat noch keinen Zugriff auf das Kennwort, das Sie für Ihr VPN verwenden. Gehen Sie wie folgt vor: Öffnen Sie die Datei NAME_OF_YOUR_VPN_CONNECTION in / etc / NetworkManager / system-connection als root. Öffnen Sie ein Terminal und gehen Sie wie folgt vor:

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

a) Ändern Sie die Zeile

    password-flags=1 

zu

    password-flags=0

b) Fügen Sie unten hinzu

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

Speichern und schließen Sie die Datei.

  1. Starten Sie nun Ihren Network Manager neu. Terminal:

    systemctl restart NetworkManager
    

um die neuen Einstellungen zu initialisieren. Du solltest fertig sein.

Ich habe das gestern gemacht und soweit ich sehen kann, funktioniert es gut. Keine Garantien!

Xenon
quelle