11

Можно ли запустить клиент windows openvpn, чтобы он подключился с помощью предопределенного конфига (.ovpn), указав аргументы программы в командной строке. Или указание аргументов в ярлыке при открытии из ярлыка Windows и т.д.

5 ответов5

14

Решил это как ниже:

из командной строки Windows

Это приведет к запуску клиента opn vpn gui, напрямую подключающегося к соединению, указанному в конфигурации.

7

Имейте в виду, что если openvpn-gui.exe уже запущен выше, ответы не будут работать. Обратите внимание на раздел:run из небольшого командного файла, который я создал для автоматического запуска соединения openVPN, когда не дома:

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
3

В дополнение к ответу Flowerking вы можете указать папку, в которой находится ваш файл ovpn, возможно, для хранения данных закрытого ключа в пространстве пользователя. Для этого используйте config_dir:

openvpn-gui.exe --connect "client.ovpn" --config_dir "C:\Users\Foo\Documents\protected_crypto_data"
1

Вот простой пример, если вы хотите подключиться к большему количеству VPN, чем один:

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

Это не будет работать, если openvpn-gui.exe запущен.

0

Вы можете улучшить ответ @Jan, изменив:

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

чтобы:

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

Таким образом, вам не нужно создавать временный файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .