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

17

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

Turbo
quelle
Wie kommst du damit zurecht?
Rlemon
Ich brauchte es jetzt schon lange nicht mehr. Vielleicht kommst du im April auf eine neue Universität.
Turbo
Möglicherweise Duplikat? askubuntu.com/questions/86365
fossfreedom
@fossfreedom ist kein Duplikat, da meine Frage eher vpnc als openconnect ist.
Turbo
Ich habe einen kurzen Blockpost darüber geschrieben, wie Sie Ihre Internetverbindung blockieren können, wenn das VPN nicht funktioniert
Stefan van der Walt

Antworten:

18

Die von vorgeschlagene Lösung con-f-usesollte 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, nmclidas wie folgt bearbeitet und gespeichert werden kann /etc/NetworkManager/dispatcher.d/vpn-up:

#! /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 - bitte 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 enthält weitere Informationen.

Hugo Heden
quelle
Beachten Sie, dass ich dieses Skript in 13.04 in /etc/network/if-up.d einfügen und / etc / NetworkManager / system-connections / connection-name gemäß askubuntu.com/questions/198136/… korrigieren musste , um "No gültige VPN-Geheimnisse "Fehler
OlegYch
Der Arch Wiki Hack funktioniert tatsächlich! Ich habe das Skript am 11. Juli 2013 im Arch-Wiki ausprobiert und die Änderung von 'nmcli ...' zu 'su [user] -c "nmcli ..."' funktioniert nicht! folge den anweisungen wie im wiki und vergiss das chmod + x nicht;) cheers!
Der von Hugo Eden erwähnte Fehler ( bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571 ) wurde vor über 5 Monaten behoben. Allerdings erlebe ich es immer noch in Präzision ... Was gibt es?
iGadget
Das hat bei mir nicht geklappt , also habe ich mich entschieden, nachzuschauen /var/log/syslog, und habe den folgenden Fehler gesehen: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': vom Eigentümer nicht ausführbar.' Die Lösung wäresudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov
8

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 ..."

Dr.Osd
quelle
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 bereinigen network-manager-vpn sudo apt-get installieren network-manager-vpnc Dann: Bildbeschreibung hier eingeben

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 keine Verbindung herstellen" zu unterdrücken, wenn sich Ihre Benutzer im falschen Netzwerk befinden, aber sich 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.

verwechseln
quelle
Ich bin immer noch nicht dazu gekommen, dies zu testen. Ich werde es als beantwortet markieren, wenn ich will. Versprechen.
Turbo
meiner erfahrung nach funktioniert das eigentlich nicht. Ich glaube, dies ist ein Fehler in NetworkManager
Conor Rynne
3
Ja, das ist kaputt, auch in Precise. Es verbindet sich nicht automatisch O_o
eggonlegs
Ja - gebrochen. Funktioniert nicht (Ubunutu 12.04).
user48956
3

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.

Einstellungsbildschirmabbildung, sein auf Arabisch

Klicken Sie auf dieses Symbol, und hier sollte eine Option mit dem Namen "Einstellungen" oder "Optionen" (oder etwas Ähnliches) angezeigt werden:

Klicken Sie auf Einstellungen

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.

Muhammad bin Yusrat
quelle
0

Verwenden Sie das folgende Python-Skript Gist # 1547663 .

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 sollen (z. B. die Verwendung einer VPN-Verbindung zu Hause ist nutzlos).

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.

iElectric
quelle
1
Ich denke, dieser Ansatz ist weniger elegant, da die ganze Zeit über ein Hintergrundprozess aktiv ist, während er wie in der Antwort von @hugoheden ereignisgesteuert sein kann.
gertvdijk
Es ist mehr als seine Antwort: Es behandelt auch die Wiederherstellung der VPN-Verbindung und Fälle, in denen der Benutzer die VPN-Verbindung manuell deaktiviert (das heißt, es sollte in diesem Fall nicht versucht werden, die VPN-Verbindung
wiederherzustellen
0

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=0und Xauth password-flags=0in der Konfigurationsdatei festlegen. 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!

abbrandl
quelle
0

Obwohl die Manpage nmcli con statusals gültiger Befehl aufgeführt ist, gibt die von bereitgestellte obige Lösung Hugo Hedeneinen Fehler zurück"Error: Object 'status' is unknown, try 'nmcli help'"

Ich benutze nmcli 1.2.2 ( nmcli -v) und habe folgendes getestet und modifiziert /etc/NetworkManager/dispatcher.d/vpn-upund 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 können nmcli con showSie alle Verbindungsnamen anzeigen, da sie nicht immer mit den in der Benutzeroberfläche für Netzwerkverbindungen aufgelisteten Namen übereinstimmen

jw00druff
quelle
Das OP fragt nach Ubuntu.
fosslinux
Kali und Ubuntu basieren beide auf Debian, daher ist die Lösung oft dieselbe. Ich habe dies nur auf einer Ubuntu 15.10-Instanz getestet und der nmcli-Fehler war derselbe, den ich oben erwähnt hatte. Die Lösung funktionierte genauso gut. Die auf der 15.10-Box installierte nmcli-Version ist 1.0.4.
Jw00druff
0

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

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!

Gustaf
quelle
0

Sie können die UUID des VPN-Profils hinzufügen, indem Sie das Feld "Secondaries" in Ihrer primären Verbindung verwenden

Beispielsweise, /etc/NetworkManager/system-connections/Wired

[connection]
id=Wired
uuid=95ad54f8-9d72-3e65-a4a7-b106aa310eed
type=ethernet
secondaries=66ecf287-8b26-413b-86f2-caca7608bc67;

Referenz https://developer.gnome.org/NetworkManager/stable/nm-settings.html

Hai Nguyen
quelle