Аргументи для підключення за допомогою клієнта Open Vpn Windows


13

Чи можливо запустити клієнт Windows openvpn, щоб змусити його з'єднуватися за допомогою попередньо визначеного конфігурації (.ovpn), надавши аргументи програми за допомогою командного рядка. Або вказівки аргументів у ярлику при відкритті з ярлика Windows тощо.

Відповіді:


18

Вирішили як нижче:

з командного рядка Windows-

введіть тут опис зображення

Це запустить клієнт opn vpn gui, безпосередньо підключившись до з'єднання, визначеного в config.


3
Зауважте, що якщо openvpn-gui.exe вже запущено вище, відповідь не буде працювати.
Jan

9

Зауважте, якщо відповідь openvpn-gui.exeвже розпочато вище, відповіді не спрацюють. Зверніть увагу на: запустіть розділ з невеликого пакетного файлу, який я створив, щоб автоматично запустити з'єднання 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

1
Дякую за чудову відповідь, але я пішов на додатковий крок експорту мого завдання Windows у суть: gist.github.com/carlin-q-scott/77cbb064c3c2e332af011714fb2aa585
carlin.scott

5

На додаток до відповіді Flowerking, ви можете вказати папку, в якій живе ваш файл ovpn, можливо, щоб зберігати дані приватного ключа в просторі користувача. Для цього використовуйте config_dir:

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

3

Ось простий приклад, якщо ви хочете підключитися до більшої кількості VPN, ніж одна:

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

Він не працюватиме, якщо openvpn-gui.exeфункція запущена.


1

Не впевнений, чи це нещодавно було додано, але є параметр "--command", який можна використовувати для надсилання команд запущеному екземпляру gui.
Так що тепер ви можете зробити
openvpn-gui.exe --command connect config.ovpn

Перегляньте параметри для openvpn-gui.exe, перейшовши до командного рядка та запустивши
openvpn-gui.exe --help


1

У мене були ті ж проблеми, а також потрібен сценарій, щоб не відкривати інтерфейс користувача, якщо він уже підключений, і чекати, коли з'єднання закінчиться.

Я не зміг знайти хорошого рішення, тому написав своє. Він є на випадок, якщо він корисний іншим:

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

Windows Vista і вище; вільний; включає вихідний код C ++.

(Існує також подібний, старіший інструмент для вбудованого VPN-клієнта для Windows.)

Приклад використання за допомогою перемикача / verbose, який видає детальну інформацію про те, що він робить:

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

ConnectOpenVPN: Перевірка стану мережевого адаптера "OpenVPN" ...
ConnectOpenVPN: мережевий адаптер "OpenVPN" не підключений.
ConnectOpenVPN: Запуск: "C: \ Program Files \ OpenVPN \ bin \ openvpn-gui.exe" --командуйте підключити "MyVPN.ovpn"
ConnectOpenVPN: Очікування появи інтерфейсу OpenVPN GUI ...
ConnectOpenVPN: знайдено графічний інтерфейс OpenVPN.
ConnectOpenVPN: Очікування закриття графічного інтерфейсу OpenVPN ...
ConnectOpenVPN: GUI OpenVPN закритий.
ConnectOpenVPN: Очікування / підтвердження VPN-з'єднання існує ...
ConnectOpenVPN: Підключено.
ConnectOpenVPN: CONNECT дія фінішується.

Я сподіваюся, що це стане в нагоді іншим людям.


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

Таким чином вам не потрібно створювати тимчасовий файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.