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.

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.


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

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"

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.


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


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.