Verbindung zum VPN über die Befehlszeile herstellen / trennen

131

Ich habe zwei VPNs auf meinem Ubuntu-Rechner eingerichtet, eines mit vpnc und eines mit PPTP. Diese beiden wurden über die GNOME-Netzwerkmanager-Oberfläche eingerichtet und funktionieren hervorragend. Gelegentlich muss ich jedoch remote auf diesen Computer zugreifen. Gibt es eine Möglichkeit, über die Befehlszeile eine Verbindung zu diesen VPNs herzustellen oder diese zu trennen?

Tim Brunnen
quelle
Hat der vpnc Befehl detailliert hier nicht für Sie arbeiten? Außerdem finden Sie hier Anweisungen zum Konfigurieren und Herstellen einer Verbindung zu PPTP . Funktionieren sie nicht
Kris Harper

Antworten:

191

Wenn Sie über die Befehlszeile mit NetworkManager interagieren möchten, können Sie den Befehl "nmcli" verwenden.

liste alle NM-Verbindungen auf: nmcli con

Verbindung starten (WLAN, VPN usw.): nmcli con up id ConnectionName

Down-Verbindung: nmcli con down id ConnectionName

(weitere nmcli-Befehle in der nmcli-Manpage ).


Beachten Sie auch, dass normale Benutzer normalerweise keine Berechtigung haben, das Netzwerk zu steuern. Die Verwendung der obigen Befehle mit sudosollte für die meisten Verbindungen funktionieren, VPN kann jedoch insbesondere mit "Fehler: Verbindungsaktivierung fehlgeschlagen: Keine gültigen VPN-Geheimnisse" fehlschlagen.

In diesem Fall ist das VPN-Kennwort wahrscheinlich im Gnome-Schlüsselbund Ihres Benutzers gespeichert, sodass der Root-Benutzer keinen Zugriff darauf hat. Dieser Kommentar erklärt warum.

Um dies zu beheben, bearbeiten Sie / etc / NetworkManager / system-connections / ConnectionName und [vpn]ändern Sie unter die Zeile password flags in:

password-flags=0

Wenn eine Zeile mit beginnt Xauth password-flags, ändern Sie sie stattdessen.

Fügen Sie dann unter dem [vpn]Block Folgendes hinzu :

[vpn-secrets]
password=YourPassword

(Wenn Sie im vorherigen Schritt die Zeile geändert haben Xauth password-flags, fügen Sie Xauth password=...stattdessen hinzu.)

Starten Sie jetzt den Netzwerkmanager neu, indem Sie:

sudo service network-manager restart

Dann sollte das Starten der VPN-Verbindung mit sudo nmcli con up id ConnectionNameproblemlos funktionieren.

ihashacks
quelle
1
Ich wünschte, es gäbe einen allgemeinen Befehl zum Trennen der Verbindung, mit dem VPNs getrennt werden könnten, ohne dass die ID angegeben werden müsste. Das würde wahrscheinlich die Implementierung dieser Funktion (ich möchte) erleichtern.
Lonnie Best
Wenn Sie ipsec verwenden (z. B. vpnc), müssen Sie möglicherweise auch "IPSec secret-flags = 0" und "IPSec secret = <grouppw>" an den entsprechenden Stellen
Matt
Dies hat mich immer noch nicht behoben :( Ich erhalte die Meldung "Fehler: Verbindungsaktivierung fehlgeschlagen: unbekannter Grund."
dano
Ich nehme das zurück ... nach dem dritten Mal, als ich den Befehl ausgeführt habe, hat es funktioniert. 1. Mal ist schnell gescheitert. 2. Mal scheiterte langsam. Das dritte Mal hat funktioniert!
Dano
2
Klartext PWs ?? Ja wirklich?? Hat jemand eine sichere Lösung?
user447607
4

Die Antwort von ihashacks mit Matts Kommentaren hat für mich funktioniert ... fast. Musste eine Zeile zwicken.

Meine Passwort-Flag-Zeile lautete tatsächlich: "Xauth password-flag". Die akzeptierte Antwort würde für mich erst dann funktionieren, wenn ich zu folgendem gewechselt hätte

[vpn]
...
Xauth password-flag=0
IPSec secret-flags=0

[vpn-secrets]
Xauth password=<my pw> ## This is the one I changed.
IPSec secret=<group pw>

Nicht sicher, warum meine VPN-Verbindungen "Xauth" vor jeder Erwähnung des Passworts haben.

(Sorry, das ist eine neue Antwort, ich kann noch keine Kommentare abgeben.)

John
quelle
2
Dies gilt für einige VPN-Typen, z. B. Cisco. sehr hilfreich für diese Fälle! Es gibt jedoch einen Fehler: Der korrekte Fall eines Schlüssels ist IPSec secret- ansonsten wird er von NM nicht erkannt.
Marcus,
Danke Marcus, ich habe die Antwort korrigiert, damit niemand versucht, einen Tippfehler zu kopieren oder einzufügen.
John