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.
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:
Rozwiązano to jak poniżej:
z wiersza polecenia systemu Windows
Spowoduje to uruchomienie klienta GUI opn vpn bezpośrednio łączącego się z połączeniem określonym w konfiguracji.
Pamiętaj, że jeśli openvpn-gui.exe
powyż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
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"
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
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.
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.