Pull to refresh

Организация автозапуска VPN-соединения под Windows

Reading time2 min
Views11K
Мой компьютер включен почти всегда. Редкое исключение — длительные поездки далеко за пределы ДС.
Включен почти всегда, потому что очень часто, когда я нахожусь вне дома (на работе, в гостях, просто летом на даче), возникает необходимость зайти на него (по http или же через Remote Desktop) за какими-либо данными.

Всё бы ничего, но доступ в интернет обеспечивается через VPN-соединение.
Которое иногда обрывается. Из-за проблем у провайдера, из-за перезагрузки системы после установки критичных апдейтов или еще по каким-либо причинам.

До недавнего времени каждый такой обрыв связи приводил к тому, что находясь вне дома, я терял возможность подсоединиться к компьютеру до возвращения домой и запуску VPN-соединения вручную. Пока однажды не решил разобраться в проблеме и сделать решение, которое позволило бы забыть про подобные неприятные ситуации.

Покопавшись в интернете, обнаружил, что запустить соединение можно, используя программу rasdial.exe, входящую в стандартный набор Windows:

C:\Windows\system32\rasdial.exe элемент [пользователь [пароль|*]] [/DOMAIN:домен]
[/PHONE:номерТелефона] [/CALLBACK:ответныйНомер]
[/PHONEBOOK:файлАдреснойКниги] [/PREFIXSUFFIX]

Ну а дальше запустить соединение по расписанию — дело техники.
Кому-то ближе Планировщик задач + bat-файлы, мне ближе cron + perl.
Как и отношение к цвету и вкусу фломастеров, сложность скрипта — личное дело каждого.

Можно даже так:

c:\windows\system32\rasdial.exe "имя_vpn_соединения" имя_юзера пароль_юзера

А можно чуть сложнее.
Например, у меня сначала идет проверка доступности канала (пингом на определенные адреса), а потом запуск одного из VPN-соединений. В случае его недоступности — запуск другого и так далее.

Еще один интересный случай (хотя реже нужный кому-либо) применения автозапуска VPN — переключение между несколькими соединениями по расписанию, например, для использования ночью одного, а днем другого. В этом случае поможет опция «разорвать соединение»:

C:\Windows\system32\rasdial.exe [элемент] /DISCONNECT

Единственный нюанс, на который нужно обратить внимание — под каким пользователем будет выполняться скрипт, управляющий соединениями. Если VPN-соединение не расшарено между всеми пользователями системы, при запуске скрипта по расписанию система может не найти соединение, поскольку по умолчанию задачи запускаются с правами системного пользователя, а не того, под которым шла отладка.
Tags:
Hubs:
+1
Comments17

Articles