В этой статье мы рассмотрим, как настроить автоматическое подключение к OpenVPN серверу при входе пользователя в Windows с помощью ярлыка в автозапуске и с помощью службы Windows.
Автозапуск клиента OpenVPN при входе в Windows
Скопируйте ваш *.ovpn файл с настройками вашего VPN подключения в каталог C:\Users\YourUsernName\OpenVPN\config
или в C:\Program Files\OpenVPN\config
.
Теперь вам нужно открыть каталог автозапуска в Windows. Для этого нажмите сочетание клавиш Win+R и выполните команду shell:startup
. Перед вами откроется папка в профиле текущего пользователя ((%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup). Windows при входе пользователя в систему автоматически запускает все программы из этой папки.
Если у вас используется клиент openvpn-gui.exe (OpenVPN 2.5), то для автоматического подключения с помощью указанного профиля из файла *.ovpn используется команда:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect your_vpn_connection.ovpn
Просто скопируйте ярлык OpenVPN GUI в каталог Startup и настройках ярлыка добавьте параметр --connect your_vpn_connection.ovpn
.
Если вы хотите скрыть окно состояния клиента OpenVPN при подключении, добавьте в строку параметр --silent_connection 1
.
Теперь запустите клиент OpenVPN и отключите автоматический запуск при загрузке Windows (вкладка General -> Launch on Windows startup). Это позволит предотвратить конфликт с командой автозагрузки, которую мы создали ранее.
Теперь Windows будет автоматически устанавливать подключение с OpenVPN сервером при входе пользователя.
Если у вас используется клиент OpenVPNConnect.exe (3.3.x) от OpenVPN вместо комьюнити клиента, имейте в виду, что в нем пока нет опций командной строки для подключения к серверу с помощью настроенного профиля.
В настройках клиента OpenVPN Connect можно включить опцию Lauhch options -> Connect latest. В этом случае клиент будет автоматически подключаться с помощью последнего используемого ovpn профиля.
Эту же опцию можно включить из командной строки:
C:\Program Files\OpenVPN Connect\OpenVPNConnect.exe --set-setting launch-options:connect-latest
В этом примере мы показали, как настроить автоматическое OpenVPN подключение для одного пользователя Windows. Если вам нужно настроить автоподключение для всех пользователей, можно создать аналогичное задание в Task Scheduler или настроить службу OpenVPN.
Запуск клиента OpenVPN как службы Windows
Вы можете настроить автоматическое подключение с помощью службы OpenVPN Service, которая позволит автоматически поднимать VPN подключение до входа пользователя в Windows.
Если у вас используется клиент OpenVPN Connect 3.2+, вы можете запустить службу OpenVPN, которая будет автоматически подключаться к OpenVPN серверу после загрузки Windows.
- Откройте командную строку с правами администратора и перейдите в каталог:
cd "c:\Program Files\OpenVPN Connect"
- Установите службуOVPNConnectorService:
ovpnconnector.exe install
- Задайте полный путь к конфигурационному файлу OVPN, который нужно использовать для подключения:
ovpnconnector.exe set-config profile "C:\OpenVPN\client.ovpn"
- Укажите имя файла, куда нужно записыват логи VPN подключения:
ovpnconnector.exe set-config log "C:\OpenVPN\client.log"
Логи OpenVPN также доступны в стандартном Event Viewer в разделе Windows Logs -> Applications -> включите фильтр по Event Source OVPNConnectorService.
- Запустите службу OpenVPN:
ovpnconnector.exe start
Проверьте, что клиент успешно подключится в OpenVPN серверу. В логе должно появится сообщение:
Wed Feb 1 23:25:39 2023 Connected via TUN_WIN Wed Feb 1 23:25:39 2023 EVENT: CONNECTED YourOpenVPNProfile via /UDPv4 on TUN_WIN/10.24.1.10/ gw=[10.24.1.9/]
И ваш виртуальный адаптер WinTUN получил IP адрес от сервера OpenVPN
- Теперь настройте автоматический запуск для службы OVPNConnectorService из консоли управления services.msc или с помощью команды:
sc config OVPNConnectorService start=auto
- Теперь после перезагрузки Windows служба OpenVPN будет автоматически подключаться к серверу.
Если вы хотите отключить и удалить службу OVPNConnectorService, выполните команды:
ovpnconnector.exe stop
ovpnconnector.exe remove
Если у вас используется аутентификация OpenVPN ерез Active Directory, вы можете сохранить имя пользователя и пароль в текстовый файл и использовать его для автоматического подключения.
Создайте текстовый файл login.txt в каталоге C:\Program Files\OpenVPN\config.
И добавьте в конфигурационный файл ovpn строки:
auth-user-pass login.txt auth-retry nointeract auth-nocache
Если у вас используется клиент OpenVPN GUI, вы также можете настроить службу для автоматического подключения. Для этого:
- При установке клиента обязательно выберите дополнительно службу OpenVPN Service
- Скопируйте ваши профили OpenVPN (файлы с расширением .ovpn) в каталог
"C:\Program Files\OpenVPN\config\"
- Служба OpenVPN будет автоматически запускать VPN туннель для каждого конфигурационного ovpn файла из этого каталога)
Если на компьютере должны быть одновременно активны несколько OpenVPN подключений, убедитесь, что в Windows создано достаточное количество виртуальных сетевых адаптеров TUN/TAP. Иначе в логах появится ошибка All TAP-Windows adapters on this system are currently in use. Также рекомендуется привязать OpenVPN подключение к конкретному сетевому интерфейсу с помощью следующей строки в .ovpn:
dev-node 'OpenVPN TAP-Windows2'
(указывается имя сетевого адаптера в Window) - Проверьте что для службы OpenVPNService (
C:\Program Files\OpenVPN\bin\openvpnserv2.exe
) настроен автоматический запуск.
В Linux вы можете подключиться к VPN серверу из командной строки или автоматически с помощью стандартного сервиса openvpn@client.service.
Данные демон автоматически создает VPN подключения для всех конфигурационных файлов .conf в каталоге /etc/openvpn (просто переименуйте ваши *.ovpn файлы в *.conf). И запустите сервис:
$ sudo systemctl enable openvpn@client.service
$ sudo systemctl start openvpn@client.service
В последние несколько лет все более популярной становится технология организации удаленного рабочего места (будь то отдельный сотрудник и целый офис) за счет технологии VPN. Однако пользователю не очень удобно каждый раз при загрузке компьютера вручную инициировать VPN соединение. Как сделать так, чтобы VPN подключение поднималось автоматически при загрузке Windows или при входе пользователя в систему и не требовало бы от пользователя никаких дополнительных манипуляций? Попробуем в этом разобраться.
Предположим, что для подключения к VPN, вы используете специально созданное подключение с именем «vpn_office». В том случае, если новое VPN создавалось с настройками по-умолчанию, скорее всего его название будет содержать пробелы или русские символы (процесс создания VPN подключения в Windows 8). Для дальнейшей работы, лучше его переименовать, так, чтобы имя VPN подключения содержало только английский символы, а пробелы в названии отсутствовали (Правой клавишей по значку соединения и «Переименовать»).
В параметрах VPN подключения снимите галочки у параметров:
- Отображать ход подключения (Display progress while connecting)
- Запрашивать имя, пароль и т.д. (Prompt for name and password, certificate, etc)
- Включать домен входа в Windows (Include Windows logon domain)
Существует несколько способов автоматической установки VPN соединения в Windows. Большинство из них работают корректно практически во всех версиях Windows и отличаются способами реализации автоматического запуска сценария инициации VPN подключения. В некоторых случаях какая-то конкретная методика может не заработать, и вам придется попробовать альтернативную. Также стоит отметить, что описанные методики автоматического подключения к VPN были протестированы в Windows 7, однако с небольшими модификациями и правками (или совсем без оных), их можно использовать и в других ОС семейства Windows
Для установки автоматического VPN соединения мы будем использовать встроенную в систему утилиты rasdial.
RASDIAL. Установка VPN подключения из командной строки
Утилита rasdial появилась еще в самых ранних версиях Windows и использовалась для управления удаленными подключениями. Найти утилиту rasdial.exe можно в системном каталоге C:\Windows\system32\.
Список текущих удаленных подключений можно отобразить, набрав команду rasdial без параметров.
Чтобы отключить удаленное соединение, нужно воспользоваться командой:
rasdial «имя_ VPN_подключения» /disconnect
Нас в данном случае интересует процесс как с помощь данной утилиты можно установить VPN подключение. Формат команды в этом случае будет такой:
rasdial [Имя_VPN_подключения] [имя_пользователя] [пароль]
[Имя_VPN_подключения] — название VPN подключения в системе
[имя_пользователя] [пароль] – информация, выданная вашим ISP или администратором.
В том случае, если название подключения или имя пользователя содержит пробел, служебные или русские символы, такой параметр нужно брать в кавычки.
В моем случае, команда подключения будет такой:
rasdial vpn_office winitpro_admin $ecretnaRFr@z@
В случае успешной установки VPN соединения и прохождения авторизации, отобразится строка «Command completed successfully», это означает, что соединение с VPN сервером установлено.
Следующий шаг – настройка автоматического запуска данной команды.
Автозапуск VPN подключения с помощью планировщика Windows
Попробуем настроить автозапуск VPN с помощью функций планировщика (Task Sheduller) Windows. Для этого запустите программу Start->All Programs-> Accessories-> System Tools->Task Scheduler, или же в командной строке выполните: taskschd.msc
Создадим новое простое задание планировщика с именем «AutoConnectVPN»
Далее нужно указать, когда необходимо выполнять задачу. В данном случае нас интересуют следующие возможности планировщика:
- When the computer starts (при загрузке компьютера)
- When I log on (при входе пользователя в систему)
Выбор в данном случае за вами, т.к. в зависимости от требования к организации системы иногда нужно, чтобы VPN автоматически подключался при загрузке компьютера (пользователь еще не вошел в систему). Это удобно использовать на серверах (для служб, работающих в фоновом режиме или для выполнения других автоматических операций). Если же требуется, чтобы VPN запускался только при входе пользователя (начало рабочего дня оператора или работника удаленного офиса), нужно выбрать второй вариант.
Затем указываем что планировщик должен запустить программу (Start a program).
В следующем окне нужно указать какую программу нужно запустить и с какими параметрами. Мы запускаем C:\Windows\system32\rasdial.exe с аргументами vpn_office winitpro_admin $ecretnaRFr@z@
После окончания работы мастера, в списке задач, выполняемых при загрузке Windows, появится еще одна с именем AutoConnectVPN. Теперь при следующей загрузке системы VPN соединение должно подняться автоматически.
Для Windows 7/ Win 8. В том случае, если соединение не установиться, попробуйте в планировщике задач найти созданное вами задание и в его свойствах на вкладке General укажите — Run with highest privileges (запускать с правами администратора), это должно помочь.
Автозапуск VPN с помощью реестра
VPN подключение можно устанавливать автоматически и с помощью реестра. В реестре существует специальная ветка, программы в которой Windows автоматически запускает каждый раз при загрузке.
- Запустите редактор реестра (regedit.exe) и перейдите в ветку HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- Создайте новый строковый параметр именем vpnConnect и значением rasdial vpn_office winitpro_admin $ecretnaRFr@z@
- Закройте реестр и перезагрузите компьютер
Если нужно запускать подключение только для текущего пользователя, то эту операцию нужно произвести с разделом HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Автоматическое подключение VPN с помощью автозагрузки
Просто создать ярлык для нужного VPN подключения и скопируйте (перетяните) созданный ярлык в каталог Автозагрузка (C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup) меню «Пуск».
Возможно, многие читатели будут возмущены, почему самый простой способ автоматизации установки VPN соединения идет последним. Однако поспешу сообщить, что такая методика почему-то в некоторых случаях не всегда работает, особенно в ОС с UAC.
Автостарт VPN с помощью системной службы
Данная методика предполагает, что мы создадим собственную службу Windows, которая отрабатывает процедуру VPN соединения до входа пользователя в систему.
В командной строке с правами администратора, создадим новую службу командой:
sc create autoVPN start= auto binPath= "rasdial vpn_office winitpro_admin $ecretnaRFr@z@" DisplayName= "AutoVPN" depend= lanmanworkstation obj= "NT AUTHORITY\LocalService"
Чтобы служба запускалась уже после запуска всех системных служб, поставим ее в зависимость от службы lanmanworkstation. В консоли services.msc должна появиться новая служба autoVPN, если она отсутствует, проверьте правильность введенной команды.
Учтите, что это псевдо-служба, и она не будет отображаться в процессах, отрабатывая один раз при запуске системы.
Удалить службу можно командой:
sc delete autoVPN
В этой статье мы разобрали наиболее популярные способы организации автоматического VPN подключения в Windows. Если что-то не заработало, или вы знаете собственный способ организации автозапуска VPN — описывайте все в комментариях. Указанную схему можно протестировав, подняв собственный VPN сервер на Windows 7 и отработать всю процедуру на нем.
Обновлено:
Опубликовано:
Тематические термины: OpenVPN, VPN, Windows, Linux, CentOS, Ubuntu
В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.
Установка
Настройка
Пример конфигурационного файла
Ключи
Сертификаты
Запуск
Несколько конфигураций
Сертификаты внутри ovpn файла
Отзыв сертификата
Читайте также
Установка
Windows
Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:
Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».
Linux CentOS
Устанавливаем репозиторий EPEL:
yum install epel-release
Устанавливаем openvpn:
yum install openvpn
Linux Ubuntu
apt update
apt install openvpn
Android
Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect — нажимаем установить и принимаем условия.
Настройка
После установки программы конфигурационный файл не создается автоматически и его нужно создать вручную.
В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.
* имя файла может быть любым, расширение должно быть .ovpn.
Для создания конфигурационного файла в Linux выполняем команду:
vi /etc/openvpn/client.conf
* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.
Пример конфигурационного файла
client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0
Параметры конфигурационного файла
Параметр | Значения | Описание |
---|---|---|
client | Строка говорит о том, что конфигурационный файл описывает клиентское подключение (программа сама устанавливает соединение, а не ждет, как сервер). | |
dev | tap или tun | Выбор виртуального сетевого драйвера. TUN — сетевой уровень модели OSI, оперирует IP-пакетами. TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Настраивая OpenVPN клиента, в большинстве случаев, необходимо выбирать tun. TAP необходимо использовать для работы определенных сервисов, например DHCP. |
dev-node | любая строка | Параметр используется в системах Windows в случаях, если имеется несколько сетевых интерфейсов. Значение этого параметра должно содержать название сетевого подключения, через который должен работать OpenVPN. |
proto | udp или tcp | Указывает, какой протокол использовать для передачи данных. В большинстве случаев, лучше использовать UDP, так как данный протокол создает меньше нагрузки на сеть. |
remote | VPN-сервер и порт | Задает сервер, к которому должен подключаться клиент, а также сетевой порт (по умолчанию 1194), на котором OpenVPN принимает запросы. Можно указать несколько строк. |
remote-random | Если указано несколько строк remote, данный параметр говорит, что необходимо подключаться к удаленным серверам в случайном порядке. | |
resolv-retry | количество секунд или infinite | Используется в тех случаях, когда в качестве сервера указано доменное имя. Параметр задает время в секундах для повторного переподключения, если не удалось узнать имя сервера. infinite — держать связь с сервером постоянно. |
nobind | Клиент использует динамический порт для подключения. | |
user | учетная запись | Задает определенного пользователя для работы клиента (только для UNIX-систем). |
group | группа | Задает определенную группу для работы клиента (только для UNIX-систем). |
persist-key | Не перечитывает ключи при перезагрузке сервиса OpenVPN. | |
persist-tun | Не перечитывает параметры туннеля при перезагрузке сервиса OpenVPN. | |
http-proxy | сервер прокси и порт | Использовать прокси-сервер для подключения. |
http-proxy-retry | Переподключаться к прокси-серверу, если связь была разорвана. | |
http-proxy-timeout | количество секунд | Время, через которое выполнять попытки переподключения к прокси-серверу. |
mute-replay-warnings | Параметр стоит задавать при использовании беспроводного соединения. Он отключит дублирование предупреждений пакетов. | |
ca | пут к сертификату | Корневой сертификат удостоверяющего центра. Генерируем на сервере. |
cert | пут к сертификату | Открытый ключ клиента. Генерируем на сервере. |
key | пут к сертификату | Закрытый ключ клиента. Генерируем на сервере. |
dh | пут к сертификату | Ключ с алгоритмом Diffie-Hellman (Диффи-Хеллмана). |
remote-cert-tls | сервер | Исключает возможность mitm атаки, включая верификацию сертификата сервера. |
tls-client | Указание на то, что это клиент TLS. | |
tls-auth | ta.key 1 | Дополнительный уровень аутентификации посредством ключа TLS. |
float | Удаленный хост может менять IP-адрес в процессе соединения, при этом последнее не будет разорвано. | |
keepalive | секунд1 секунд2 | Пинговать каждые секунд1 сервер и если в течение секунд2 не будут получены ответные пакеты, перезапустить подключение. |
cipher | алгоритм | Указывает алгоритм шифрования. Примеры: AES-256-CBC, AES-128-CBC, BF-CBC, DES-EDE3-CBC. |
comp-lzo | Использовать сжатие. | |
verb | число от 0 до 9 | Уровень детализации лога. 0 отключает отладочную информацию. |
mute | число | Указывает сколько лог-сообщений может отображаться для каждой категории события. |
auth-user-pass | ничего или путь к файлу | Говорит клиенту, что необходима аутентификация. Если не указан путь к файлу, клиент выкинет окно для авторизации, иначе прочитает данные из файла. |
ipchange | команда или путь к скрипту | Выполняет команду при смене IP. |
connect-retry | секунд | Переподключиться к серверу через указанное количество секунд, если соединение было разорвано. |
connect-retry-max | число | Сколько раз повторять соединение, если оно было разорвано. |
shaper | байт | Задает максимальную скорость передачи данных для исходящего трафика. |
tun-mtu | число | Задает MTU. |
status | путь к файлу | Путь к фалу хранения статуса. |
log | путь к файлу | Путь к лог-файлу. |
askpass | путь к файлу | Путь к файлу с паролем для приватного ключа (private key password). |
Наиболее полный и актуальный список параметров для OpenVPN можно получить командой openvpn —help (в Linux и Windows).
Сертификаты
Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.
Для Linux:
cd /etc/openvpn/easy-rsa
. ./vars
./build-key client
Для Windows:
cd %ProgramFiles%\OpenVPN\easy-rsa
vars.bat
build-key.bat client
* в выше приведенных примерах был сгенерирован клиентский сертификат client.
Сгенерированные ключи появятся в каталоге keys. Их необходимо скопировать на клиентский компьютер вместе с сертификатами сервера и разместить по каталогам, указанным в конфигурационном файле. В нашем примере они должны быть скопированы в ту же папку, в которой находится сам файл конфигурации.
В итоге мы получаем, примерно, следующее.
Для Windows:
Для Linux:
ls /etc/openvpn/client/
ca.crt client.crt client.key client.conf dh2048.pem ta.key
Запуск
Для проверки можно запустить клиента вручную. Но для повседневного использования стоит настроить автоматический запуск.
Вручную
На Windows:
Запускаем OpenVPN GUI от имени администратора — в правом нижнем углу появится иконка программы:
Кликаем по ней правой кнопкой мыши и выбираем Подключиться:
На Linux:
Переходим в каталог с конфигурационным файлом:
cd /etc/openvpn
Вводим команду:
openvpn —config /etc/openvpn/client.conf
или:
systemctl start openvpn@client
* также служба может называться openvpn.
Автоматически
На Windows:
Выполняем 2 действия.
1. Наш конфигурационный файл с сертификатами переносим из каталога config в каталог config-auto:
* в старых версиях клиента каталога config-auto нет — тогда оставляем файлы в config.
2. Открываем службы и находим OpenVPNService. Переводим его в режим автозапуска:
На Linux:
Разрешаем автозапуск службы:
systemctl enable openvpn@client
или для старых версий.
CentOS / Red Hat / Fedora:
chkconfig openvpn on
Ubuntu / Debian:
update-rc.d openvpn defaults
Несколько конфигурационных файлов
Позволит держать несколько конфигураций для подключения к различным VPN-серверам. Между последними можно переключаться из клиентской программы.
Для Windows:
В каталоге config создаем для каждого сервера свою папку и помещаем в нее рабочие файлы (файл конфигурации, сертификаты и так далее). В каждой папке называем конфигурационные файлы ovpn своими именами (даже если файлы будут находиться в разных папках, но с одинаковыми именами, клиент OpenVPN будет воспринимать их как один конфиг).
Пример каталога config:
Пример файлов в одном из каталогов:
Теперь при подключении клиентом к можно выбрать конкретный VPN-сервер:
Для Linux:
Также как для Windows, создаем для каждого сервера свой каталог, куда скопируем рабочие файлы:
mkdir /etc/openvpn/server1
А в каталоге /etc/openvpn создаем для каждого подключения свой конфиг:
vi /etc/openvpn/client1.conf
* в конфигурационном файле все пути до файлов должны вести в соответствующий каталог (в нашем примере, /etc/openvpn/server1).
Запускаем OpenVPN:
openvpn —config /etc/openvpn/server1/client.conf
Для автоматического запуска мы уже ранее применяли команду:
systemctl enable openvpn@client
… где @client — указатель на использование конфигурационного файла client внутри папки openvpn (/etc/openvpn). Таким образом, если мы создали 2 файла client1.conf и client2.conf, команды для разрешения автозапуска бelen такие:
systemctl enable openvpn@client1
systemctl enable openvpn@client2
Сертификаты внутри конфигурационного файла
Ключи сертификатов можно хранить не в отдельных файлах, а внутри конфигурационного файла ovpn.
<ca>
——BEGIN CERTIFICATE——
…
——END CERTIFICATE——
</ca>
<tls-auth>
——BEGIN OpenVPN Static key V1——
…
——END OpenVPN Static key V1——
</tls-auth>
<cert>
——BEGIN CERTIFICATE——
…
——END CERTIFICATE——
</cert>
<key>
——BEGIN PRIVATE KEY——
…
——END PRIVATE KEY——
</key>
<dh>
——BEGIN DH PARAMETERS——
…
——END DH PARAMETERS——
</dh>
* key-direction 1 — необходим для tls-auth, в противном случае, работать не будет; ca — ключ центра сертификации (ca.crt); tls-auth — ta.key; cert — открытый сертификат клиента (clients.crt); key — закрытый сертификат клиента (clients.key); dh — сертификат, созданный на базе протокола Диффи Хеллмана.
Отзыв сертификата
Для Linux:
cd /etc/openvpn/easy-rsa
. ./vars
./revoke-full client
Для Windows:
cd %ProgramFiles%\OpenVPN\easy-rsa
vars.bat
revoke-full.bat client
* с помощью данных манипуляций мы отзываем сертификат client.
Читайте также
Настройка OpenVPN сервера с включением аутентификации через LDAP (Active Directory)
Настройка доступа к локальной сети клиентам OpenVPN в CentOS 7
In order to get OpenVPN GUI to auto-start and auto-connect on boot,
we need to pick a single configuration for a particular location that we
wish to connect on every boot.
For the purpose of this guide, I am going to use PrivateVPN’s OpenVPN-TUN-UDP configuration for India.
Step 1 — Editing your OpenVPN client configuration
Open .ovpn file in Notepad application, look for # Crypto section and make the following changes as seen in the image below:
auth-user-pass user.auth
auth-retry nointeract
auth-nocache
Save and close the .ovpn file.
Step 2 — Storing your PrivateVPN.com credentials in a file
Open Notepad application and type your PrivateVPN username in first line and password in second, save the file as user.auth.
Step 3 — Import edited .ovpn file and user.auth file to OpenVPN config folder
Navigate to Program files — OpenVPN — config folder of your main
Windows installation. Copy your edited .ovpn file and user.auth there.
When prompted for Administrative permission, grant it to Continue.
Step 4 — Configuring OpenVPN service to start automatically on boot
Start Run application from Start Menu or by using keyboard shortcut combination Ctrl+R and input services.msc in the text field there and click OK.
Locate OpenVpnService (Not OpenVPN Legacy Service or OpenVPN Interactive Service) and double-click on it.
A dialog box appears, change Startup type to Automatic, and click Apply followed by OK. That is all. OpenVPN configuration file should connect right away and on every boot automatically.
Note: You are not required to use OpenVPN GUI client any more.
‘OpenVpnService’ would automatically connect you to respective
PrivateVPN OpenVPN server on boot.
You are now done configuring OpenVPN client as service on Windows OS. Navigate to PrivateVPN.com to check if you are connected to VPN also do a reboot to make sure it persists.
Enjoy!
In this article, we’ll look at how to automatically connect to an OpenVPN server when a user logs into Windows using a startup shortcut or using a Windows Service.
Autostart OpenVPN Client at Windows Startup
Copy your *.ovpn profile file with your VPN settings to C:\Users\YourUsernName\OpenVPN\config
or to C:\Program Files\OpenVPN\config
folder.
Now you need to open the Windows startup folder. To do this, press Win+R
and run the shell:startup
command. This will open the current user’s startup folder (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
). Windows automatically runs all programs in this folder when the user logs on.
If you are using the openvpn-gui.exe
client (OpenVPN 2.5), then the following command is used to automatically connect using the specified profile in the *.ovpn file:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect your_vpn_connection.ovpn
Just copy the OpenVPN GUI shortcut to the Startup directory and add the --connect your_vpn_connection.ovpn
parameter in the shortcut settings. Or create a new shortcut, specify the full path to the openvpn-gui.exe
file, and add the --connect *.ovpn
parameter.
If you want to hide the OpenVPN status window when connecting to the server, add the --silent_connection 1
option to the startup command.
Now run the OpenVPN client and disable automatic launch at Windows startup (General tab -> Launch on Windows startup). This will prevent a conflict with the auto-connect command we created earlier.
Now Windows will automatically establish a connection with the OpenVPN server when the user signs in.
If you are using the OpenVPNConnect.exe
(3.3.x) client from OpenVPN instead of the community client, be aware that it doesn’t yet have command line options to connect to a VPN server using a configured profile file.
In the OpenVPN Connect client settings, you can enable the Connect latest option (under Launch options). In this case, the OpenVPN client will automatically connect using the last used ovpn profile.
Also, you can enable this option from the command prompt:
C:\Program Files\OpenVPN Connect\OpenVPNConnect.exe --set-setting launch-options:connect-latest
In this example, we have shown how to configure an automatic OpenVPN connection for a single Windows user. If you need to enable an automatic OpenVPN connection for all users, you can create a task in the Task Scheduler or enable the OpenVPN service.
Run the OpenVPN Client as a Windows Service to Connect Automatically
You can set up an automatic connection using the OpenVPN service, which will automatically establish the VPN connection before the user logs in to Windows. Using the OpenVPN Connect 3.2+ client, you can run the OpenVPN service that automatically connects to the OpenVPN server when Windows starts.
- Open a command prompt as an administrator and go to the directory:
cd "c:\Program Files\OpenVPN Connect"
- Install the OVPNConnectorService:
ovpnconnector.exe install
- Specify the full path to the OVPN configuration file to be used for the connection:
ovpnconnector.exe set-config profile "C:\OpenVPN\client.ovpn"
- Specify the file name where to write OpenVPN client connection logs:
ovpnconnector.exe set-config log "C:\OpenVPN\client.log"
OpenVPN logs are also available in the Event Viewer under Windows Logs -> Applications. Enable the filter by the Event Source OVPNConnectorService.
- Start the OpenVPN service:
ovpnconnector.exe start
Check that the client successfully connects to the OpenVPN server. The following message should appear in the log:
Wed Feb 1 11:13:29 2023 Connected via TUN_WIN
Wed Feb 1 11:13:29 2023 EVENT: CONNECTED YourOpenVPNProfile via /UDPv4 on TUN_WIN/10.1.2.10/ gw=[10.1.2.8/]
And your WinTUN virtual adapter got an IP address from the OpenVPN server. - Now configure automatic startup for the OVPNConnectorService using the
services.msc
console or with the command:sc config OVPNConnectorService start=auto
- The OpenVPN service will now automatically connect to the server after Windows is restarted.
If you want to disable and remove the OVPNConnectorService service, run the following commands:
ovpnconnector.exe stop
ovpnconnector.exe remove
If you are using OpenVPN authentication via Active Directory, you can save the username and password to a plain text file and use it to automatically connect.
Create a text file login.txt in the C:\Program Files\OpenVPN\config
directory.
And add the following options to the ovpn configuration file:
auth-user-pass login.txt
auth-retry nointeract
auth-nocache
If you are using the OpenVPN GUI client, you can also configure the system service to connect automatically.
- Be sure to select the OpenVPN Service when installing the OpenVPN client;
- Copy your OpenVPN profiles (.ovpn files) to the directory “
C:\Program Files\OpenVPN\config\
“ - The OpenVPN service will automatically start a VPN tunnel for each *.ovpn configuration file from this directory.
If you want more than one OpenVPN connection to be active on your computer at the same time, make sure that a sufficient number of TUN/TAP virtual network adapters have been created in Windows. Otherwise, the error All TAP-Windows adapters on this system are currently in use will appear in the logs. It is also recommended to bind an OpenVPN connection to a specific network interface using the following option in .ovpn:
dev-node 'OpenVPN TAP-Windows2'
(specify your OpenVPN network adapter name in Windows). - Check that the OpenVPNService service (
C:\Program Files\OpenVPN\bin\openvpnserv2.exe
) is configured to start automatically.
On Linux, you can connect to the VPN server from the command line or enable autoconnect using the openvpn@client.service
daemon.
This daemon automatically establishes VPN connections for all .conf configuration files in the /etc/openvpn directory (just rename your *.ovpn files to *.conf). And enable the service:
$ sudo systemctl enable openvpn@client.service
$ sudo systemctl start openvpn@client.service