Что такое 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 он практически идентичен.
- Откройте Параметры → Сеть и Интернет → VPN.
- Нажмите Добавить VPN-подключение.
- В поле Поставщик VPN-услуг выберите Windows (встроенные).
- В поле Имя подключения введите любое понятное название, например «Office L2TP».
- В поле Имя или адрес сервера укажите IP или домен вашего VPN-сервера.
- В поле Тип VPN выберите L2TP/IPsec с предварительным ключом.
- В поле Предварительный ключ введите PSK.
- В поле Тип данных для входа выберите Имя пользователя и пароль.
- Введите логин и пароль, поставьте галочку Запомнить данные для входа, если не хотите вводить их каждый раз.
- Нажмите Сохранить.
После сохранения подключение появится в списке VPN. Чтобы подключиться, нажмите на него и выберите Подключить. Если всё настроено правильно, статус изменится на «Подключено» в течение нескольких секунд.
Однако мастер не показывает все параметры. Чтобы получить доступ к скрытым настройкам, откройте Панель управления → Сеть и Интернет → Сетевые подключения, найдите созданное подключение, кликните правой кнопкой и выберите Свойства. На вкладке Безопасность проверьте:
- Тип VPN — должен быть L2TP/IPsec.
- Шифрование данных — Обязательное или Максимальное.
- В Дополнительных параметрах убедитесь, что выбран пункт Использовать предварительный ключ для проверки подлинности и ключ введён без лишних пробелов.
- В разделе допустимых протоколов оставьте MS-CHAP v2 — это стандарт для L2TP/IPsec.
Настройка в Windows 7 и 8.1: отличия
В Windows 7 и 8.1 процесс настройки немного отличается, но принцип тот же. Рассмотрим его для Windows 7.
- Нажмите Win + R, введите
controlи нажмите Enter. - Перейдите в Центр управления сетями и общим доступом → Создание и настройка нового подключения или сети.
- Выберите Подключение к рабочему месту и нажмите Далее.
- Выберите Использовать моё подключение к Интернету (VPN).
- В поле Адрес в Интернете введите IP или домен сервера.
- В поле Имя объекта назначения введите название подключения.
- Нажмите Создать.
После создания откройте свойства подключения (правый клик → Свойства). На вкладке Безопасность:
- Тип 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= 1ProhibitIPSec= 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 для подключения. Параметры должны совпадать с настройками сервера.