Open VPN - Commandline Interface (CLI)
Meta
Erstellt: 1. April 2023
Modifiziert: 22. April 2024
🔼 Root
Ăśberblick
Eine Notiz zu OpenVPN Clients und den Parametern in der CLI. Die Ausgangslage die als erstes betrachtet wird ist, dass der Anwender eine Konfigurationsdatei (.ovp) hat. Die Beispiele wurden mit der OpenVPN Client Version 2.6.2 durchgespielt.
Der Befehl lautet “openvpn”. OpenVPN kennt drei generelle Argumente dafĂĽr:
–help
–version
–config [file]
Eine Konfigurationsdatei hat die Erweiterung “.ovpn”. Sie wird mit dem Argument “–config” geladen.
Linux
Tests mit:
âź« Ubuntu 22.04.2 LTS mit Bash Shell
âź« Manjaro 22.0.2 (Sikaris) mit ZSH Shell
Die zwei Distributionen verhielten sich identisch. Die Verbindung kann nur mit SuperUser Rechten (“sudo”) erfolgreich etabliert werden:
sudo openvpn --config config.ovpn
Fehler
“Sudo” vergessen:

“Benutzernamen und / oder Kennwort” falsch

Anmeldung erfolgreich

Apple
Nicht getestet. macOS verwendet in den aktuellen Version auch die ZSH Shell. Somit gehe ich davon aus, dass es sich identisch zu Linux verhält.
Windows
Wenn ich die Software ĂĽber den Paketmanager []“Chocolatey”](https://community.chocolatey.org/packages/openvpn) installierte, ist die Enviroment Variable “Path” nicht. D.h. wenn man das MSI Paket installiert, kann man die Verbindung wie unter Linux beschrieben herstellen. D.h. mit einer “Shell” (CMD oder Powershell) die im Kontext der Administrator Gruppe arbeitet (“ausfĂĽhren als”).
CMD
Wenn man die Path Variable ergänzen will, muss beachtet werden das Windows vor ein paar Jahren hier eine etwas komplexere Entwicklung durchlaufen hat. In Windows werden die Exe Dateien in dieses Verzeichnis kopiert: “C:\Program Files\OpenVPN\bin”. Der Code fĂĽr die CLI Version ist in der Datei “openvpn.exe”:
openvpn --config config.ovpn
Wenn man die Path Variable von Hand um diesen Pfad ergänzt will:
set PATH=%PATH%;C:\Program Files\OpenVPN\bin
Bzw. wenn das aktuelle Verzeichnis dem Verzeichnis entspricht, kann man es noch abkĂĽrzen:
set PATH=%PATH%;%cd%
Das funktioniert auch jetzt noch unter Windows 10 bzw. 11. Aber nur bis zur nächsten Anmeldung. Die systemrelevante Ergänzung dieser Variable erfolgt ĂĽber den Befehl “setx” mit dieser Syntax:
setx PATH=%PATH%;%cd% /m
setx PATH=%PATH%;C:\Program Files\OpenVPN\bin /m
SS64.COM hat einen sehr informativen Artikel zum “setx” Befehl geschrieben. Leseempfehlung.
Powershell
In Powershell (Administrator Berechtigung) sieht die Eingabe wie folgt aus:
setx /m PATH "$($env:path);C:\Program Files\OpenVPN\bin"
setx /m PATH "$($env:path);$($env:cd)"
openvpn-gui.exe
Die zwei Programmpakete arbeiten unabhängig von einander. Aktuell bin ich über CMD wie oben beschrieben verbunden:

Die OpenVPN Gui Software im SysTray weiss nichts davon:

Diese Exe Datei kann auch direkt in der CLI ausgefĂĽhrt werden:
openvpn-gui --help
Nur das hier die Ausgabe nicht in der CLI erfolgt. Es wird ein eigenes Fenster mit der Ausgabe angezeigt:

NatĂĽrlich hat hier Befehl openvpn-gui.exe --command disconnect config.ovpn keinen Effekt. Wie die Hilfe klar aussagt, beziehen sich diese Befehle nur auf eine laufende “openvpn-gui.exe” Instanz. Die Verbindung wird auch nicht ĂĽber das Argument “–config” aufgebaut. Hier heisst dieses Argument “–connect”.