it-swarm.com.de

So stellen Sie mit Network-Manager automatisch eine VPN-Verbindung her

Ich habe eine funktionierende VPN-Verbindung. Jetzt möchte ich, dass diese VPN-Verbindung automatisch aktiviert wird, wenn ich mich in einem bestimmten drahtlosen Netzwerk befinde. Gibt es eine nicht aufdringliche grafische Möglichkeit mit dem Network-Manager-Applet? Wenn ich mich richtig erinnere, hat es eine Weile funktioniert und funktioniert nicht mehr.

Ich habe die betreffende WLAN-Verbindung für alle Benutzer verfügbar gemacht, da sie nicht jedes Mal das Kennwort eingeben müssen.

Das verwendete CLI-Programm ist vpnc mit aktiviertem Hybrid-Auth (Cisco VPN-Client kompatibel) von sroecker's PPA

EDIT: Ich kann die Antworten nicht mehr probieren (wegen eduroam) und da keine Antwort die Mehrheit der Stimmen zu erhalten scheint, lasse ich sie für den Moment unbeantwortet, bis eine Abstimmung zustimmt, dann werde ich das akzeptieren.

16
turbo

Die von con-f-use vorgeschlagene Lösung sollte funktionieren, funktioniert aber aufgrund eines langjährigen Fehlers nicht:

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571

Es gibt jedoch Problemumgehungen. Für neuere NetworkManager-Versionen gibt es ein Befehlszeilen-Dienstprogramm, nmcli, das bearbeitet und als so etwas wie /etc/NetworkManager/dispatcher.d/vpn-up gespeichert werden kann:

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

[Ich habe dies nicht getestet - zögern Sie nicht, es zu testen und entsprechend den Ergebnissen zu bearbeiten]

Siehe: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established hat weitere Informationen.

17
Hugo Heden

In Ubuntu Trusty 14.04 speichert VPN die automatische Verbindung über die Benutzeroberfläche in den einzelnen gespeicherten WLAN-Einstellungen. Systemeinstellungen - Netzwerk - Überprüfen Sie interessiertes WLAN oder LAN - Einstellungen (Registerkarte Allgemein) - Wählen Sie "Automatisch mit VPN verbinden ..."

8
Dr.Osd

Ich kann bestätigen, dass die folgende Lösung für mich funktioniert. Ich verwende Ubuntu 14.04 LTS.

Ich ging zum Herunterfahren-Symbol und dann zu den Systemeinstellungen.

Als sich der Einstellungsbildschirm öffnete, ging ich zu "Netzwerk" und dem WiFi-Netzwerk, mit dem ich verbunden war. Auf einer Seite des Netzwerknamens befindet sich ein kleiner Pfeil.

Settings screen shot, its in Arabic

Klicken Sie auf dieses Symbol und Sie sollten hier eine Option mit dem Namen "Einstellungen" oder "Optionen" (oder etwas Ähnliches) sehen:

Click settings

Wenn das nächste Fenster geöffnet wird, gehen Sie einfach zur Registerkarte "Allgemein" und Sie sollten eine Option sehen, mit der Sie eine Option zum automatischen Herstellen einer Verbindung mit einem VPN erhalten. Wählen Sie das VPN, zu dem Sie eine Verbindung herstellen möchten, wenn Sie mit diesem WLAN verbunden sind, und boomen Sie! Jedes Mal, wenn Sie sich mit diesem Netzwerk verbinden, verbindet Ubuntu Sie auch mit diesem VPN. :)

Für mich funktioniert es. Ich hoffe, es funktioniert auch für alle anderen. Benötigt keinen Text- oder Code-Editor oder ähnliches.

3

Wenn ich mich richtig erinnere, hat es eine Weile funktioniert und funktioniert nicht mehr.

  • Das mag offensichtlich sein, aber manchmal denke ich nicht daran. Haben Sie versucht, eine Neuinstallation wie folgt durchzuführen:

    Sudo apt-get Netzwerk-Manager-VPN löschen Sudo apt-get Netzwerk-Manager-VPN installieren Dann: enter image description here

Jetzt möchte ich, dass diese VPN-Verbindung automatisch aktiviert wird, wenn ich mich in einem bestimmten drahtlosen Netzwerk befinde.

  • Es gibt eine Möglichkeit, den Nachrichtentyp "Konnte nicht verbinden" zu unterdrücken, wenn sich Ihre Benutzer im falschen Netzwerk befinden, sich aber nicht erinnern können, wie es gelaufen ist. Ich sehe keine andere Möglichkeit, automatisch eine grafische Verbindung herzustellen. Möglicherweise müssen Sie ein Skript schreiben, das die Verbindung herstellt, wenn Sie sich in dem genannten WLAN-Netzwerk befinden.

Hoffe das hat geholfen.

3
con-f-use

Wenn Sie Terminals bevorzugen, können Sie nmcli verwenden, ich habe es mit den folgenden Befehlen gemacht:

Suchen Sie zuerst die VPN-Verbindung, die Sie aktualisieren möchten, und öffnen Sie sie

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

Dies öffnet die nmcli-Eingabeaufforderung. Von hier aus können Sie die Werte abfragen und wie folgt festlegen:

===| nmcli interactive connection editor |===
...
nmcli> print connection.autoconnect
connection.autoconnect: no
nmcli> set connection.autoconnect yes
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'MyVPN' (115ae594-aa91-4d13-8c92-421af245f935) successfully updated.

Und du solltest fertig sein!

0
Gustaf

Sie brauchen keine Dispatcher-Skripte mehr! In 14.04 (Trusty Tahr) müssen Sie nur die folgenden Schritte ausführen, nachdem Sie die Autoconnect-Option in der NetworkManager-GUI festgelegt haben.

Speichern Sie die VPN-Geheimnisse einfach in der Konfigurationsdatei für die VPN-Verbindung unter /etc/NetworkManager/system-connections/YourVPNConnectionName.

Sie können dies erreichen, indem Sie IPSec secret-flags=0 und Xauth password-flags=0 in der Konfigurationsdatei einstellen. Rufen Sie dann die NetworkManager-Benutzeroberfläche auf und speichern Sie die VPN-Verbindungseinstellungen erneut. Jetzt sollte ein Abschnitt namens [vpn-secrets] in der Konfigurationsdatei vorhanden sein. Doppelklicken Sie darauf und die automatische Verbindung sollte jetzt funktionieren!

0
a.b.brandl

Verwenden Sie das folgende Python -Skript Gist # 154766 .

Der erste Parameter des Skripts ist der Name der VPN-Verbindung in NetworkManager und der zweite der durch Kommas getrennte Name der Netzwerke, die ignoriert werden sollten (z. B. die Verwendung einer VPN-Verbindung zu Hause ist nicht sinnvoll).

Beispiel für die Installation und Ausführung beim Booten:

git clone git://Gist.github.com/1547663.git /home/user/autovpn/
echo "python /home/user/autovpn/autovpn.py 'myvpn' 'Auto homenetwork,Auto worknetwork' > /var/log/autovpn.log&" > /etc/rc.local
/etc/rc.local

Wenn Sie jetzt eine Verbindung zu einem Netzwerk (entweder WLAN oder Ethernet) herstellen, wird auch versucht, eine VPN-Verbindung einzurichten.

0
iElectric

Obwohl die Manpage _nmcli con status_ als gültigen Befehl auflistet, gibt die obige Lösung von Hugo Heden einen Fehler _"Error: Object 'status' is unknown, try 'nmcli help'"_ zurück.

Ich verwende nmcli 1.2.2 (_nmcli -v_) und habe das Folgende für _/etc/NetworkManager/dispatcher.d/vpn-up_ getestet und modifiziert und es hat wie ein Zauber funktioniert.

_#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


default_conn=$(nmcli con show --active | grep "${REQUIRED_CONNECTION_NAME}")
vpn_conn=$(nmcli con show id | grep "${VPN_CONNECTION_NAME}")
if [ "${default_conn}" -a ! "${vpn_conn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi
_

Hinweis: Mit _nmcli con show_ können Sie alle Verbindungsnamen anzeigen, da sie nicht immer mit den in der Benutzeroberfläche für Netzwerkverbindungen aufgeführten Namen übereinstimmen

0
jw00druff