Как автоматически запустить и автоматически подключить OpenVPN в Windows 10?

15

Запуск Windows 10 кажется странным или, по крайней мере, новым. Многие программы не запускаются автоматически, как в предыдущих версиях, и многие люди спрашивают, как заставить их запускаться автоматически. Я знаю, потому что я постоянно ищу автозапуск своих программ, к которым я привык.

Как я могу заставить OpenVPN запускаться при загрузке, предотвращать доступ в Интернет до его подключения и автоматически входить в профиль OVPN?

У меня уже есть учетные данные, сохраненные в текстовом файле, поэтому OpenVPN просто нужно загрузить файл, обработать его и подключиться.

Раньше я работал на Windows 7, но, кажется, я забыл, как это сделать,

YetAnotherRandomUser
источник
Как настроить приложение для запуска, когда пользователь входит в свой профиль, не изменилось с момента выпуска Windows XP. Что ты специально пробовал? Обновите свой вопрос.
Ramhound

Ответы:

28

Лучший способ - воспользоваться услугами:

  1. Установите сервис OpenVPN при установке клиента;
  2. Поместите ваши профили OpenVPN (с расширением .ovpn, а не .conf, как это обычно бывает в Linux) в подкаталог config в установочном каталоге OpenVPN, возможно C:\Program Files\OpenVPN\config.
  3. Откройте консоль служб ( services.msc);
  4. Найдите OpenVPNService, щелкните его правой кнопкой мыши, выберите «Свойства» и измените тип запуска с «Ручной» на «Автоматический».
  5. Запустите службу, и OpenVPN найдет и подключится к профилям в любых файлах .ovpn. Имейте в виду, что в большинстве случаев вам нужен один интерфейс TUN / TAP для каждого файла подключения. В Windows я настоятельно советую постоянно связывать интерфейс с их соединением, используя файлы конфигурации: dev-node TAP_Servзаставляет OpenVPN связывать соединение с сетевым интерфейсом с именем «Tap_Serv».

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

Если использование службы не является опцией, вы можете передать дополнительные аргументы командной строки в вызов OpenVPN GUI, чтобы он автоматически подключался при запуске (а также отображал иконку в трее как обычно):

openvpn-gui.exe --connect myprofile.ovpn

Чтобы запустить его при входе в систему, поместите такой ярлык в обычную папку автозагрузки. (Для всех пользователей %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup; или только для текущего пользователя %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup.)


Я не знаю, как избежать подключения пользователя к Интернету до установки VPN. Единственный способ выяснить это через брандмауэр Windows, и я не эксперт в этом вопросе. Если вы не хотите, чтобы poweruser мог выходить в Интернет, вам нужен межсетевой экран в вашем шлюзе, чтобы избежать этого, или строгие групповые политики, чтобы избежать масштабирования привилегий.

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

route -P add <target> mask <netmask> <gateway IP> metric <metric cost> if <interface>

Маршруты в Windows хранятся в следующем разделе реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes

На этом этапе отключенный клиент имеет доступ только к VPN-серверу. Затем вы можете добавить следующие строки в файл конфигурации VPN-сервера, чтобы добавить маршруты на клиентах при подключении:

Чтобы настроить VPN-сервер в качестве шлюза по умолчанию:

push "redirect-gateway def1 bypass-dhcp"

Чтобы добавить определенный маршрут через VPN-сервер:

push "route 192.168.1.0 255.255.255.0"

Иногда проталкивание маршрута не работает в Windows. Когда это происходит со мной, я полностью удаляю OpenVPN и его интерфейсы из Windows, перезагружаю систему и устанавливаю последнюю версию программного обеспечения. Затем, перед установкой первого соединения, я перезагружаю Windows. Это всегда решало проблемы, однако в Windows 10 Anniversary Update (1607) глючит OpenVPN. На форумах OpenVPN есть ссылка на более глубокое обсуждение:

Проблемы с подключением с юбилейным обновлением Windows 10

Помните об этом при настройке клиентов Windows 10 OpenVPN.

DGoiko
источник
Вы можете использовать команду route для форсирования всего трафика через VPN. См. Comentum.com/route.html
Джефф Ф.
Я считаю себя опытным пользователем, но я хотел бы иметь возможность настроить его для некомпетентных пользователей и сделать так, чтобы он работал без проблем. Мне не нужно мешать другим опытным пользователям возиться.
Ещё один случайный пользователь
«Служба OpenVPN будет искать в каталоге конфигурации и подключаться к каждому профилю VPN, который хранится здесь». Кажется, это не так. Кажется, что он подключается к первому, когда они отсортированы по алфавиту. Можете ли вы дать ссылку на документацию? Я не могу найти раздел, который охватывает это.
Ещё один случайный пользователь
Привет Дэн. Большая часть моего опыта связана с серверами OpenVPN в CentOS, и всякий раз, когда я храню несколько файлов серверов, они запускают их все. Я проведу тест, чтобы определить, одинаково ли поведение с клиентскими файлами, но у меня нет причин думать, что оно будет другим. Извините, если я ввел вас в заблуждение, сообщу как можно скорее (я сейчас на работе, либо когда у меня будет свободное время, либо после работы, я проверю его на компьютере с Windows).
DGoiko
1
Также можно использовать планировщик заданий (<kbd> ключ Windows </ kbd> + <kbd> R </ kbd>, введите Taskschd.mscи нажмите <kbd> Enter </ kbd>).
user598527