Argumenty do połączenia za pomocą klienta Windows Open VPN

13

Czy można uruchomić klienta Windows openvpn, aby połączyć go przy użyciu predefiniowanej konfiguracji (.ovpn), podając argumenty programu za pomocą wiersza polecenia. Lub określenie argumentów w skrócie podczas otwierania ze skrótu Windows itp.

Flowerking
źródło

Odpowiedzi:

18

Rozwiązano to jak poniżej:

z wiersza polecenia systemu Windows

wprowadź opis zdjęcia tutaj

Spowoduje to uruchomienie klienta GUI opn vpn bezpośrednio łączącego się z połączeniem określonym w konfiguracji.

Flowerking
źródło
3
Pamiętaj, że jeśli plik openvpn-gui.exe został już uruchomiony powyżej, odpowiedź nie będzie działać.
Jan
9

Pamiętaj, że jeśli openvpn-gui.exepowyższe kroki już się rozpoczęły, odpowiedzi nie będą działać. Zwróć uwagę na sekcję: run z małego pliku wsadowego, który utworzyłem, aby automatycznie uruchamiać połączenie openVPN, gdy nie ma go w domu:

rem This script is fired from Task Scheduler (using Custom Event filter) when I am NOT at home (not connected to home network)
rem  so check if my home NAS is already pingable, because maybe old/previous OpenVPN connection is still open
rem    if not then start OpenVPN connection
rem    if yes than do nothing
ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt
IF ERRORLEVEL 1 goto run
rem do nothing because NAS is pingable
goto finished
:run
rem be sure to kill previous (closed) openvpn process so reconnecting actually works!
taskkill.exe /F /IM openvpn.exe
taskkill.exe /F /IM openvpn-gui.exe
timeout 1
start /b "" "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect nas_at_home.ovpn
:finished
Jan
źródło
1
Dziękuję za doskonałą odpowiedź, ale poszedłem o krok dalej, eksportując moje zadanie systemu Windows do gist: gist.github.com/carlin-q-scott/77cbb064c3c2e332af011714fb2aa585
carlin.scott
5

Oprócz odpowiedzi Flowerkinga możesz określić folder, w którym mieszka Twój plik ovpn, być może do przechowywania danych klucza prywatnego w przestrzeni użytkownika. W tym celu użyj config_dir:

openvpn-gui.exe --connect "client.ovpn" --config_dir "C:\Users\Foo\Documents\protected_crypto_data"
Justin Brown
źródło
3

Oto prosty przykład, jeśli chcesz połączyć się z większą liczbą sieci VPN niż jedna:

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect vpn1.ovpn --connect vpn2.ovpn

Nie będzie działać, jeśli openvpn-gui.exejest uruchomiony.

Etmos
źródło
1

Nie jestem pewien, czy zostało to niedawno dodane, ale istnieje opcja „--command”, za pomocą której można wysyłać polecenia do działającej instancji GUI.
Więc teraz możesz to zrobić
openvpn-gui.exe --command connect config.ovpn

Zobacz opcje openvpn-gui.exe, przechodząc do wiersza poleceń i uruchamiając
openvpn-gui.exe --help

Jeff Rausch
źródło
1

Miałem te same problemy, a także potrzebowałem skryptu, aby nie otwierał ponownie interfejsu użytkownika, jeśli był już podłączony, i czekał na zakończenie połączenia.

Nie mogłem znaleźć dobrego rozwiązania, więc napisałem własne. Jest tu na wypadek, gdyby był użyteczny dla innych:

https://www.pretentiousname.com/miscsoft/index.html#ConnectOpenVPN

Windows Vista i nowszy; darmowy; zawiera kod źródłowy C ++.

(Istnieje również podobne, starsze narzędzie dla wbudowanego klienta VPN systemu Windows).

Przykładowe użycie z przełącznikiem / verbose, który wyświetla szczegółowe informacje o tym, co robi:

C: \> ConnectOpenVPN.exe / connect / adapter „OpenVPN” / config „MyVPN.ovpn”

ConnectOpenVPN: Sprawdzanie stanu karty sieciowej „OpenVPN” ...
ConnectOpenVPN: Karta sieciowa „OpenVPN” nie jest podłączona.
ConnectOpenVPN: Uruchomiony: „C: \ Program Files \ OpenVPN \ bin \ openvpn-gui.exe” - polecenie połączenia „MyVPN.ovpn”
ConnectOpenVPN: Oczekiwanie na pojawienie się GUI OpenVPN ...
ConnectOpenVPN: Znaleziono GUI OpenVPN.
ConnectOpenVPN: Oczekiwanie na zamknięcie GUI OpenVPN ...
ConnectOpenVPN: OpenVPN GUI zamknięty.
ConnectOpenVPN: Oczekiwanie / potwierdzenie połączenia VPN istnieje ...
ConnectOpenVPN: Połączony.
ConnectOpenVPN: finshed działania CONNECT.

Mam nadzieję, że przyda się innym ludziom.

Leo Davidson
źródło
0

Możesz poprawić odpowiedź @Jan, zmieniając:

ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt

do:

ping 192.168.10.100 -n 1 | findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" && goto :finished

W ten sposób nie musisz tworzyć pliku tymczasowego.

M1n1_Z
źródło