VPN L2TP/IPsec клиент: настройка, ошибки и решение проблем в Windows

Подробное руководство по настройке L2TP/IPsec VPN-клиента в Windows: подготовка, пошаговая настройка, решение ошибок 809, 789, 691, правка реестра для NAT-T, автоматизация через PowerShell и ответы на частые вопросы.

Что такое L2TP/IPsec и зачем он нужен

L2TP (Layer 2 Tunneling Protocol) — один из старейших протоколов VPN, который сам по себе не обеспечивает шифрования. Поэтому его почти всегда используют в связке с IPsec — набором протоколов, отвечающих за аутентификацию и шифрование трафика. Такая комбинация называется L2TP/IPsec и до сих пор широко применяется в корпоративных сетях, на маршрутизаторах и в операционных системах.

Главное преимущество L2TP/IPsec — встроенная поддержка во всех популярных ОС: Windows, macOS, Linux, Android и iOS. Это значит, что для подключения не нужно устанавливать сторонние программы — достаточно встроенного клиента. Однако у этой простоты есть обратная сторона: настройка может вызывать трудности, особенно если клиент или сервер находятся за NAT (Network Address Translation).

В этой статье мы разберём, как настроить L2TP/IPsec-клиент в Windows, какие данные нужны, как обойти типичные ошибки и как автоматизировать подключение. Материал будет полезен как системным администраторам, так и обычным пользователям, которым нужно подключиться к рабочей сети из дома.

Подготовка к настройке: что нужно знать заранее

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

Вам понадобятся:

  • Адрес сервера — IP-адрес или доменное имя L2TP/IPsec-сервера. Обычно это публичный IP или DNS-имя вида vpn.example.com.
  • Общий ключ (Preshared Key, PSK) — секретная строка, которая используется для аутентификации IPsec. Она задаётся на сервере и должна быть известна клиенту.
  • Логин и пароль — учётная запись, созданная специально для VPN-подключения. Это не пароль от Windows и не root-пароль на сервере.
  • Порты — убедитесь, что на сервере и на пути к нему открыты UDP-порты 500 (IKE), 4500 (NAT-T) и протокол ESP (IP-протокол 50). Если сервер за NAT, порт 1701 (L2TP) пробрасывать не нужно — он инкапсулируется в UDP 4500.

Если вы администрируете сервер сами, создайте PSK и учётную запись на его стороне. Для Linux-серверов это обычно делается через конфигурационные файлы Libreswan или strongSwan, для Windows Server — через RRAS.

Проверить доступность портов с клиента можно ещё до создания подключения. В PowerShell выполните:

Test-NetConnection -ComputerName vpn.example.com -Port 500
Test-NetConnection -ComputerName vpn.example.com -Port 4500

Обе команды должны вернуть TcpTestSucceeded : True. Это не гарантирует, что UDP-порты открыты, но отсекает грубые ошибки вроде неверного адреса или блокировки провайдером.

Пошаговая настройка L2TP/IPsec в Windows 10 и 11

В Windows 10 и 11 настройка L2TP/IPsec выполняется через графический интерфейс. Рассмотрим процесс для Windows 11, но в Windows 10 он практически идентичен.

  1. Откройте ПараметрыСеть и ИнтернетVPN.
  2. Нажмите Добавить VPN-подключение.
  3. В поле Поставщик VPN-услуг выберите Windows (встроенные).
  4. В поле Имя подключения введите любое понятное название, например «Office L2TP».
  5. В поле Имя или адрес сервера укажите IP или домен вашего VPN-сервера.
  6. В поле Тип VPN выберите L2TP/IPsec с предварительным ключом.
  7. В поле Предварительный ключ введите PSK.
  8. В поле Тип данных для входа выберите Имя пользователя и пароль.
  9. Введите логин и пароль, поставьте галочку Запомнить данные для входа, если не хотите вводить их каждый раз.
  10. Нажмите Сохранить.

После сохранения подключение появится в списке VPN. Чтобы подключиться, нажмите на него и выберите Подключить. Если всё настроено правильно, статус изменится на «Подключено» в течение нескольких секунд.

Однако мастер не показывает все параметры. Чтобы получить доступ к скрытым настройкам, откройте Панель управленияСеть и ИнтернетСетевые подключения, найдите созданное подключение, кликните правой кнопкой и выберите Свойства. На вкладке Безопасность проверьте:

  • Тип VPN — должен быть L2TP/IPsec.
  • Шифрование данных — Обязательное или Максимальное.
  • В Дополнительных параметрах убедитесь, что выбран пункт Использовать предварительный ключ для проверки подлинности и ключ введён без лишних пробелов.
  • В разделе допустимых протоколов оставьте MS-CHAP v2 — это стандарт для L2TP/IPsec.

Настройка в Windows 7 и 8.1: отличия

В Windows 7 и 8.1 процесс настройки немного отличается, но принцип тот же. Рассмотрим его для Windows 7.

  1. Нажмите Win + R, введите control и нажмите Enter.
  2. Перейдите в Центр управления сетями и общим доступомСоздание и настройка нового подключения или сети.
  3. Выберите Подключение к рабочему месту и нажмите Далее.
  4. Выберите Использовать моё подключение к Интернету (VPN).
  5. В поле Адрес в Интернете введите IP или домен сервера.
  6. В поле Имя объекта назначения введите название подключения.
  7. Нажмите Создать.

После создания откройте свойства подключения (правый клик → Свойства). На вкладке Безопасность:

  • Тип VPN — Протокол L2TP с IPsec (L2TP/IPsec).
  • Шифрование данных — Обязательное.
  • Разрешить следующие протоколы — Протокол Microsoft CHAP версии 2 (MS-CHAP v2).
  • Нажмите Дополнительные параметры и отметьте Для проверки подлинности использовать общий ключ, введите PSK.

В Windows 8.1 интерфейс похож на Windows 7, но мастер вызывается через ПараметрыСетьVPNДобавление VPN-подключения. Дальнейшие шаги аналогичны.

Проблема NAT-T: почему L2TP не работает из-за роутера

Одна из самых частых причин, почему L2TP/IPsec не работает на Windows-клиентах, — это NAT. IPsec-протокол ESP не поддерживает NAT, поэтому для работы через NAT используется специальное расширение NAT-T (NAT Traversal), которое инкапсулирует ESP-пакеты в UDP-пакеты на порту 4500.

В большинстве операционных систем (Linux, macOS, Android, iOS) NAT-T включён по умолчанию. Но в Windows есть особенность: по умолчанию Windows разрешает NAT-T только в том случае, если сервер имеет публичный IP без NAT. Если же и клиент, и сервер находятся за NAT, Windows блокирует установление IPsec-соединения.

Эта проблема решается изменением параметра реестра AssumeUDPEncapsulationContextOnSendRule. По умолчанию он отсутствует или равен 0. Значение 1 означает, что сервер за NAT, значение 2 — что и клиент, и сервер за NAT.

Чтобы исправить ситуацию, выполните в PowerShell от имени администратора:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\PolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Value 2 -PropertyType DWORD -Force

После этого обязательно перезагрузите компьютер — параметр не подхватывается на лету. Если сервер тоже Windows и тоже за NAT, аналогичный параметр нужно выставить и на сервере.

Для Linux-серверов (Libreswan, strongSwan) эта проблема нехарактерна — они изначально поддерживают NAT-T с обеих сторон.

Типичные ошибки подключения и их устранение

Рассмотрим самые распространённые ошибки, с которыми сталкиваются пользователи при подключении к L2TP/IPsec VPN.

Ошибка 809 — «Соединение не может быть установлено». Возникает, когда UDP-порты 500/4500 заблокированы файрволом или NAT-T не разрешён в реестре. Проверьте параметр AssumeUDPEncapsulationContextOnSendRule, откройте порты на роутере, отключите VPN-passthrough/ALG, если он включён.

Ошибка 789 — «Сбой при согласовании безопасности». Причина — неверный PSK или несовпадение параметров IKE. Убедитесь, что ключ введён без пробелов, и что сервер и клиент используют одинаковые алгоритмы шифрования.

Ошибка 691 — «Неверное имя пользователя или пароль». Проверьте, что вы используете именно VPN-учётку, а не системного пользователя.

Ошибка 619 — «Соединение закрыто удалённой стороной». Возникает, если сервер отклоняет подключение после установления. Проверьте логи сервера, лимит одновременных подключений.

Ошибка 720 — «Не удалось согласовать PPP-соединение». Часто связана с конфликтом MTU. Попробуйте уменьшить MTU на VPN-интерфейсе.

Ошибка 800 — «Не удается установить связь с VPN-сервером». Проверьте, что сервер доступен и порты открыты.

Если ошибка 809 появляется после правки реестра, скорее всего проблема в роутере. Некоторые бытовые роутеры с включённым SPI Firewall или устаревшей прошивкой режут UDP 4500. Попробуйте отключить встроенный VPN-passthrough/ALG — как ни странно, эта «помощь» часто и ломает соединение.

Дополнительные настройки: шлюз, протоколы, службы

Помимо основных параметров, есть несколько дополнительных настроек, которые могут повлиять на работу L2TP/IPsec.

Шлюз в удалённой сети. По умолчанию Windows использует шлюз, полученный по VPN, для всего трафика. Если вам нужно, чтобы интернет-трафик шёл через локальный шлюз, отключите опцию Использовать основной шлюз в удалённой сети в свойствах TCP/IPv4.

Протоколы аутентификации. На вкладке Безопасность можно разрешить несколько протоколов. Для L2TP/IPsec обычно достаточно MS-CHAP v2. Если сервер требует PAP (что небезопасно), его нужно включить, но делать это не рекомендуется.

Службы Windows. Для работы L2TP/IPsec должны быть запущены службы IKE and AuthIP IPsec Keying Modules (IKEEXT) и IPsec Policy Agent (PolicyAgent). Проверить их можно командой:

Get-Service IKEEXT, PolicyAgent

Если службы остановлены, запустите их.

Виртуальные адаптеры. Иногда помогает удаление виртуальных адаптеров WAN Miniport (L2TP) и WAN Miniport (IKEv2) в диспетчере устройств. После перезагрузки Windows восстановит их с настройками по умолчанию.

Параметры реестра для нескольких подключений. Если вы не можете установить более одного одновременного L2TP-подключения с разных Windows-компьютеров из одной локальной сети, измените параметры в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters:

  • AllowL2TPWeakCrypto = 1
  • ProhibitIPSec = 0

Это ослабит шифрование (будут использоваться MD5 и DES), но позволит поднять несколько подключений. После изменения перезагрузите компьютер.

Автоматизация подключения через PowerShell

Если вам нужно настроить L2TP/IPsec на нескольких компьютерах или пересоздать подключение после переустановки Windows, удобно использовать PowerShell-скрипты.

Создание подключения:

Add-VpnConnection -Name "Office L2TP" -ServerAddress "vpn.example.com" -TunnelType L2tp -L2tpPsk "ваш-preshared-key" -AuthenticationMethod MSChapv2 -EncryptionLevel Required -RememberCredential -Force

Настройка параметров IPsec (должны совпадать с сервером):

Set-VpnConnectionIPsecConfiguration -ConnectionName "Office L2TP" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup PFS2048 -Force

Правка реестра для NAT-T:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\PolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Value 2 -PropertyType DWORD -Force

Подключение через командную строку:

rasdial "Office L2TP" username password

Логин и пароль в скрипте хранить не рекомендуется — лучше использовать защищённое хранилище через Get-Credential и Export-Clixml.

Для автоматического запуска при старте системы можно создать задачу в планировщике, но тогда пароль придётся передавать в открытом виде — делайте это только на доверенных машинах.

Проверка работоспособности туннеля и диагностика

После подключения важно убедиться, что туннель действительно работает, а не просто «висит подключённым». Вот несколько способов проверки.

Проверка IP-адреса. Выполните ipconfig /all. В списке адаптеров должен появиться виртуальный адаптер PPP с IP-адресом из диапазона, который выдаёт сервер.

Проверка маршрута. Выполните tracert 8.8.8.8. Если первым хопом идёт адрес из подсети VPN-сервера, значит весь трафик идёт через туннель.

Проверка DNS. Выполните Get-NetIPConfiguration | Where-Object InterfaceAlias -like "*VPN*". Если DNS остался локальным, это может указывать на утечку DNS-запросов, но на работу туннеля не влияет.

Проверка портов. С помощью Test-NetConnection можно проверить доступность портов 500 и 4500.

Если туннель не работает, проверьте логи на сервере. Для Linux-серверов это journalctl -u ipsec, для Windows Server — журнал RRAS.

Также полезно проверить, что службы IKEEXT и PolicyAgent запущены, и что в реестре правильно выставлен параметр NAT-T.

Часто задаваемые вопросы

Вопрос: Можно ли использовать встроенный клиент Windows без PSK, только на сертификатах?

Да, L2TP/IPsec поддерживает аутентификацию на основе сертификатов. В этом случае сертификат клиента и сервера должны быть выданы одним доверенным центром сертификации. Это более безопасный вариант, но настройка сложнее.

Вопрос: Почему подключение работает из дома, но не работает с телефона в мобильной сети?

Операторы сотовой связи часто используют carrier-grade NAT (CGNAT) с агрессивной фильтрацией UDP, из-за чего L2TP/IPsec в мобильных сетях менее надёжен. Для мобильных сценариев лучше подходят WireGuard или IKEv2.

Вопрос: Нужно ли открывать порт 1701 (L2TP)?

Нет, если используется NAT-T — весь L2TP-трафик инкапсулируется в UDP 4500. Порт 1701 нужен только для прямого L2TP без IPsec, что небезопасно.

Вопрос: Значение AssumeUDPEncapsulationContextOnSendRule = 2 небезопасно?

Само по себе значение не снижает криптографическую стойкость, но оно разрешает NAT-T в более широком диапазоне сценариев. Это стандартная практика для домашних и офисных подключений.

Вопрос: Что делать, если ошибка 809 не исчезает после правки реестра?

Проверьте роутер: отключите VPN-passthrough/ALG, обновите прошивку, убедитесь, что UDP 4500 не блокируется. Также проверьте, что на сервере открыты порты 500 и 4500.

Вопрос: Можно ли настроить L2TP/IPsec на Windows Server?

Да, Windows Server поддерживает L2TP/IPsec через RRAS. Настройка аналогична клиентской, но требует дополнительных шагов по настройке сервера.

Вопрос: Как ускорить подключение?

Убедитесь, что используется NAT-T, отключите лишние протоколы аутентификации, проверьте MTU. Иногда помогает уменьшение MTU до 1400.

Вопросы и ответы

Какие порты нужно открыть для L2TP/IPsec VPN?

Для работы L2TP/IPsec необходимы UDP-порт 500 (IKE), UDP-порт 4500 (NAT-T) и протокол ESP (IP-протокол 50). Если сервер находится за NAT, порт 1701 (L2TP) пробрасывать не нужно, так как он инкапсулируется в UDP 4500.

Почему возникает ошибка 809 при подключении L2TP/IPsec?

Ошибка 809 обычно возникает, когда UDP-порты 500/4500 заблокированы файрволом или NAT-T не разрешён в реестре Windows. Проверьте параметр AssumeUDPEncapsulationContextOnSendRule, откройте порты на роутере и отключите VPN-passthrough/ALG, если он включён.

Как исправить ошибку 789 при подключении L2TP/IPsec?

Ошибка 789 указывает на неверный preshared key или несовпадение параметров IKE. Убедитесь, что ключ введён без пробелов, и что сервер и клиент используют одинаковые алгоритмы шифрования (например, AES256, SHA256).

Нужно ли открывать порт 1701 для L2TP/IPsec?

Нет, если используется NAT-T — весь L2TP-трафик инкапсулируется в UDP 4500. Порт 1701 нужен только для прямого L2TP без IPsec, что небезопасно и не рекомендуется.

Как настроить L2TP/IPsec в Windows 11?

Откройте Параметры → Сеть и Интернет → VPN → Добавить VPN-подключение. Выберите поставщика Windows (встроенные), укажите адрес сервера, тип VPN L2TP/IPsec с предварительным ключом, введите PSK, логин и пароль. После сохранения проверьте свойства подключения в Панели управления.

Что делать, если L2TP/IPsec не работает из-за NAT?

Измените параметр реестра AssumeUDPEncapsulationContextOnSendRule на значение 2 в ветке HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent и перезагрузите компьютер. Это разрешит NAT-T, даже если и клиент, и сервер находятся за NAT.

Можно ли автоматизировать подключение L2TP/IPsec через PowerShell?

Да, используйте командлет Add-VpnConnection для создания подключения, Set-VpnConnectionIPsecConfiguration для настройки IPsec и rasdial для подключения. Параметры должны совпадать с настройками сервера.