Всем доброго времени суток!
Необходимо запустить батник с пробросом порта сразу после успешной установки соединения OpenVPN.
Сейчас я использую планировщик и запускаю .bat с задержкой 2 мин после старта системы - задела хватает для автоматического запуска ovpn и установки тоннеля. Все работает.
Хотелось бы привязаться именно к успешному соединению, чтобы в случае любых переподключений проброс также перевыполнялся. Иначе порт может отвалиться.
Каким образом и к какому событию OpenVPN можно привязаться в планировщике?
ОС Windows 10 Pro
OpenVPN 2.5.1 (GUI v11.20.0.0)
Последнее редактирование: 3 года 7 мес. назад пользователем inmarka.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Вы можете добавить в конфигурационный файл .ovpn команды, которые запустят батник при поднятии туннеля. (кроме поднятия туннеля там есть разные другие события).
script-security 2
up /path/to/your/script
Только вот насчет того, как эти команды отработают на Windows я не знаю. В частности script-security 2 .... не могу сказать
Прописал как вы посоветовали.
При указании пути до .bat файла происходит подключение тоннеля, но сам скрипт не отрабатывает. По крайней мере, я ожидал открытия командной строки, но этого не происходит. В результате проверки порт не проброшен.
Я попробовал проделать то же самое с ярлыком батника с атрибутом "Запуск с правами администратора", поскольку скрипту требуются права. В этом случае OpenVPN кидает ошибку подключения и вообще не устанавливает тоннель(
Есть еще какой-то способ запустить скрипт от админа? Или запустить НЕ с помощью .bat команды:
netsh interface portproxy reset
netsh interface portproxy add v4tov4 ...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Если я понимаю правильно, то интерпретатор, который использует OpenVPN на клиенте это cmd.exe.
То есть вы можете вписать туда любую команду, включая напрямую netsh
Можно попробовать еще вот так:
script-security 2 system
У меня получилось! 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 так и не всплывает - все работает фоном.
Последнее редактирование: 3 года 6 мес. назад пользователем inmarka.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.