Авторизация

Запуск .bat файла после успешной установки тоннеля OpenVPN

  • inmarka
  • Автор темы
  • Не в сети
  • Пользователь заблокирован
  • Пользователь заблокирован
Подробнее
2 года 11 мес. назад - 2 года 11 мес. назад #1 от inmarka
Всем доброго времени суток!
Необходимо запустить батник с пробросом порта сразу после успешной установки соединения OpenVPN.
Сейчас я использую планировщик и запускаю .bat с задержкой 2 мин после старта системы - задела хватает для автоматического запуска ovpn и установки тоннеля. Все работает.
Хотелось бы привязаться именно к успешному соединению, чтобы в случае любых переподключений проброс также перевыполнялся. Иначе порт может отвалиться.
Каким образом и к какому событию OpenVPN можно привязаться в планировщике?
ОС Windows 10 Pro
OpenVPN 2.5.1 (GUI v11.20.0.0)
Последнее редактирование: 2 года 11 мес. назад пользователем inmarka.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
2 года 11 мес. назад #2 от admin
Вы можете добавить в конфигурационный файл .ovpn команды, которые запустят батник при поднятии туннеля. (кроме поднятия туннеля там есть разные другие события).

script-security 2
up /path/to/your/script

Только вот насчет того, как эти команды отработают на Windows я не знаю. В частности script-security 2 .... не могу сказать

если все заработало, то, пожалуйста, donate сюда - yoomoney.ru/to/410014618210530

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • inmarka
  • Автор темы
  • Не в сети
  • Пользователь заблокирован
  • Пользователь заблокирован
Подробнее
2 года 11 мес. назад #3 от inmarka
Прописал как вы посоветовали.
При указании пути до .bat файла происходит подключение тоннеля, но сам скрипт не отрабатывает. По крайней мере, я ожидал открытия командной строки, но этого не происходит. В результате проверки порт не проброшен.
Я попробовал проделать то же самое с ярлыком батника с атрибутом "Запуск с правами администратора", поскольку скрипту требуются права. В этом случае OpenVPN кидает ошибку подключения и вообще не устанавливает тоннель(
Есть еще какой-то способ запустить скрипт от админа? Или запустить НЕ с помощью .bat команды:
netsh interface portproxy reset
netsh interface portproxy add v4tov4 ...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
2 года 11 мес. назад #4 от admin
Если я понимаю правильно, то интерпретатор, который использует OpenVPN на клиенте это cmd.exe.
То есть вы можете вписать туда любую команду, включая напрямую netsh
Можно попробовать еще вот так:
script-security 2 system

если все заработало, то, пожалуйста, donate сюда - yoomoney.ru/to/410014618210530

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • inmarka
  • Автор темы
  • Не в сети
  • Пользователь заблокирован
  • Пользователь заблокирован
Подробнее
2 года 11 мес. назад - 2 года 11 мес. назад #5 от inmarka
У меня получилось! Administrator, спасибо за помощь.
Опишу свои действия - возможно, в будущем кому-нибудь пригодится.

На момент открытия темы на сервере в shell:startup лежит OpenVPN ярлык с аргументами "--connect xxxxx.ovpn --silent_connection 1". При каждом запуске винды автоматически устанавливается тоннель. Мне нужно было пробрасывать некий порт, и всякий раз после переустановки соединения проброс приходилось делать заново, ибо он отваливался.
Я создал .bat файл и положил туда две команды "netsh interface portproxy reset" и "netsh interface portproxy add v4tov4 listenaddress=xxx listenport=yyy connectaddress=xxx connectport=zzz". Запуск файлика прописал в конфигурации .ovpn, добавив строки "script-security 2" и "up C:\\путь\\до\\моего\\скрипта.bat". В результате тоннель устанавливался, а файлик не исполнялся.
Я предположил, что проблема связана с правами - проброс нужно делать от администратора. Попробовал вместо .bat запускать ярлык на него с галочкой "Запуск с правами администратора" - ошибка, тоннель не установлен. Прописал напрямую команды netsh из .bat файла в файл конфигурации .ovpn, добавлял строчку "script-security 2 system" - то же самое.
Тогда я вернул запуск исходного .bat файла, поменял в конфигурации строчку "script-security 2 system" на "script-security 2", перезапустил OpenVPN с правами админа - и вуаля, проброс работает! Значит, проблема в правах, и остается сделать автозапуск OpenVPN от админа.
Добавил в ярлык OpenVPN из shell:startup галочку "Запуск с правами администратора" - теперь при входе в винду прога вообще перестала грузиться. Я совсем разочаровался в этой галочке)) Помог планировщик - в нем я прописал запуск OpenVPN при входе в винду с наивысшими правами и добавил аргументы "--connect xxxxx.ovpn --silent_connection 1", ибо эти аргументы из ярлыка планировщиком игнорировались. Из автозапуска ярлык, соответственно, удалил.

Теперь все работает как часы)
И, кстати, окно cmd.exe так и не всплывает - все работает фоном.
Последнее редактирование: 2 года 11 мес. назад пользователем inmarka.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
2 года 11 мес. назад #6 от admin
О! Только заметил ответ, поздравляю! Думаю это пригодится читателям

если все заработало, то, пожалуйста, donate сюда - yoomoney.ru/to/410014618210530

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.087 секунд