Настройка VPN-клиента WireGuard на Keenetic
Если VPN настроен только на телефоне и ноутбуке, дома всё равно остаются «слепые» устройства — смарт-ТВ, консоль, умные колонки, гостевые гаджеты, которым отдельный клиент не поставишь. Решение — поднять WireGuard прямо на роутере: один туннель на весь дом, без установки приложений на каждое устройство и без разрывов при смене сети. KeeneticOS умеет это «из коробки», и ниже — весь путь: от установки компонента до тонкой настройки, что именно должно ходить через VPN, плюс те вещи, о которых обычно узнают уже после того, как «вроде подключилось, но что-то не так».
Содержание
- Что получится в итоге и что для этого нужно
- Устанавливаем компонент WireGuard в KeeneticOS
- Импортируем конфиг через веб-интерфейс
- Проверяем, что туннель реально работает
- Политики маршрутизации: какие устройства идут через VPN
- Kill switch: что происходит, когда туннель падает
- MTU: когда сайты открываются наполовину
- Маршрутизация по доменам и сайтам
- Фишки, о которых редко пишут
- Что делать, если не работает
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что получится в итоге и что для этого нужно
Результат, к которому идём: роутер держит постоянный туннель к вашему серверу, а вы решаете списком, какие устройства дома ходят через этот туннель, а какие — напрямую через провайдера. На самих устройствах ничего не устанавливается и не настраивается: телевизор просто «видит» интернет, а через какой канал он идёт — решает роутер.
Прежде чем открывать веб-интерфейс, соберите три вещи:
- Keenetic с KeeneticOS 3.3 или новее. Компонент WireGuard появился в 3.3, на актуальных прошивках 4.x он есть на всех живых моделях (Giga, Viva, Ultra, Peak, Hero и т. д.). Исключение — самые бюджетные модели с маленькой флеш-памятью: там компонент может не влезть в набор. Версию прошивки видно на главной странице веб-интерфейса или в Общие настройки → Обновления и компоненты.
- Готовый конфигурационный файл клиента с вашего WireGuard-сервера —
.conf-файл, который сервер генерирует под конкретного пира. Если сервера ещё нет, его настройка — отдельная тема, процесс подробно разобран в статье про установку WireGuard на VPS. - Доступ к веб-интерфейсу роутера —
my.keenetic.netиз локальной сети или IP-адрес роутера в браузере, с правами администратора.
Конфиг клиента обычно выглядит так:
[Interface]
PrivateKey = <приватный_ключ_роутера>
Address = 10.20.0.2/32
DNS = 10.20.0.1
[Peer]
PublicKey = <публичный_ключ_сервера>
Endpoint = 203.0.113.10:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Если вы видите эти строки впервые, вот что они означают на человеческом языке — это пригодится дальше, когда будем разбирать проблемы:
| Параметр | Что это простыми словами |
|---|---|
PrivateKey | Секретный ключ вашего роутера. Никому не показывать, он как пароль. |
Address | Адрес роутера внутри VPN-сети. Не имеет отношения к вашему домашнему IP. |
DNS | Какой сервер имён использовать, пока работает туннель. Обычно сам VPN-сервер. |
PublicKey | Открытый ключ сервера — по нему роутер убеждается, что подключается «к своему». |
Endpoint | Реальный адрес и порт вашего сервера в интернете, куда стучится роутер. |
AllowedIPs | Какие адреса роутер согласен пускать в туннель. 0.0.0.0/0 = «вообще любые». |
PersistentKeepalive | Раз в сколько секунд слать «я живой», чтобы туннель не заснул за NAT провайдера. |
Отдельно про PersistentKeepalive: без него туннель за NAT-ом провайдера может «засыпать» и не подниматься автоматически после паузы в трафике — типичная история, когда утром интернет на телевизоре «сам починился» только после захода в настройки. Для роутера, который держит соединение постоянно, 25 секунд — разумный компромисс между стабильностью и лишним трафиком.
Ещё один термин, который будет встречаться дальше, — handshake (рукопожатие). Это момент, когда роутер и сервер обменялись ключами и договорились шифровать трафик. Свежий handshake = туннель живой; handshake был 40 минут назад = связь давно оборвалась, хотя интерфейс может выглядеть «включённым».
Устанавливаем компонент WireGuard в KeeneticOS
По умолчанию поддержка WireGuard в прошивку не включена — это отдельный компонент, который нужно поставить вручную:
- Откройте веб-интерфейс роутера, перейдите в Общие настройки → Обновления и компоненты.
- Нажмите Изменить набор компонентов.
- В категории VPN найдите WireGuard и отметьте его галочкой.
- Нажмите Сохранить — начнётся загрузка и установка, роутер перезагрузится сам. Это занимает пару минут, интернет в это время пропадёт у всей сети — не пугайтесь и не выдёргивайте питание.
После перезагрузки в разделе Интернет появится вкладка WireGuard. Если компонент не находится в списке — либо на устройстве мало свободной памяти под компоненты (тогда снимите галочки с того, чем не пользуетесь: неактивные VPN-протоколы, торрент-клиент, модуль печати), либо модель слишком старая и официально не поддерживается.
Если WireGuard на вашей модели недоступен, это ещё не тупик — на Keenetic хорошо работает OpenVPN, он тяжелее по нагрузке, но ставится на тот же роутер по отдельной инструкции.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверИмпортируем конфиг через веб-интерфейс
Дальше — сама настройка подключения:
- Перейдите в Интернет → WireGuard и нажмите Добавить подключение.
- Выберите способ Импортировать файл настройки и укажите скачанный
.conf. - Роутер сам разберёт файл и заполнит поля: приватный ключ интерфейса, публичный ключ сервера,
Endpoint,AllowedIPs, DNS. - Проверьте поле Keep-alive — если в конфиге его не было, выставьте 20–25 секунд вручную.
- Сохраните — Keenetic создаст новый интерфейс, обычно с именем
Wireguard0.
Если готового .conf-файла нет и параметры выданы отдельно (например, в личном кабинете провайдера или в панели самостоятельно поднятого сервера), можно ввести всё вручную тем же мастером, выбрав Задать параметры вручную — поля те же самые, просто без автозаполнения из файла.
Отдельный нюанс — AllowedIPs. Если там стоит 0.0.0.0/0, ::/0, весь трафик интерфейса Wireguard0 по умолчанию считается предназначенным для туннеля, но это ещё не значит, что через него пойдёт вся сеть: реальная маршрутизация в Keenetic задаётся политиками (следующие разделы), а не самим фактом наличия такого AllowedIPs. Это принципиальное отличие роутера от мобильного клиента WireGuard, где включил — и весь трафик ушёл в туннель. На Keenetic после импорта конфига по умолчанию не изменится ничего, пока вы не назначите политику.
Проверяем, что туннель реально работает
Самая частая ошибка новичка — увидеть зелёный статус и решить, что дело сделано. Зелёный статус означает только «интерфейс поднят», а не «трафик идёт через сервер». Проверяйте по трём уровням, снизу вверх.
Уровень 1 — туннель установлен. Зайдите на вкладку WireGuard и посмотрите на подключение:
- Состояние: Подключено и время последнего handshake. Оно должно обновляться (при активном трафике или keepalive — каждые пару минут). Если handshake был «55 минут назад» — связи нет, что бы ни показывал цвет индикатора.
- Счётчики Отправлено/Получено растут. Важно, чтобы росли оба: если отправлено много, а получено ноль — ваши пакеты уходят, а ответы не возвращаются (типично для неверного ключа, закрытого порта на сервере или блокировки UDP у провайдера).
Уровень 2 — трафик действительно идёт через сервер. Назначьте политику хотя бы одному устройству (как — в следующем разделе), затем с этого устройства откройте любой сервис проверки IP (2ip.ru, whoer.net). Должен показаться IP и страна вашего сервера, а не провайдера. Если показывает домашний IP — политика не применилась.
Уровень 3 — нет утечки DNS. Даже когда трафик идёт через туннель, запросы имён могут уходить мимо — тогда провайдер по-прежнему видит список сайтов, которые вы открываете. Проверяется на dnsleaktest.com или browserleaks.com/dns: в результатах не должно быть серверов вашего домашнего провайдера. Частая причина утечки именно на Keenetic — включённые в роутере DNS-over-TLS/DNS-over-HTTPS профили: они перебивают DNS, пришедший из конфига туннеля. Подробный разбор — в статье про проверку и закрытие DNS-утечек.
Если удобнее через командную строку — подключитесь к роутеру по SSH или Telnet и выполните:
show interface Wireguard0
Команда покажет IP-адрес интерфейса, состояние линка и статистику трафика. Если handshake есть, а интернет через туннель не идёт, — это отдельная частая история, типичные причины разобраны в статье «WireGuard: handshake есть, а трафика нет». Чаще всего дело в AllowedIPs на сервере (сервер не знает маршрут обратно к подсети роутера) либо в отсутствующем iptables/nftables MASQUERADE на сервере.
Политики маршрутизации: какие устройства идут через VPN
Ключевая причина ставить WireGuard именно на роутер — точечный контроль, кто из устройств дома ходит через VPN, а кто напрямую. Настраивается это в Интернет → Политики:
- Нажмите Добавить политику.
- Задайте имя (например, «Через VPN»).
- В качестве приоритетного подключения выберите интерфейс Wireguard0.
- Решите, добавлять ли основной канал провайдера вторым, резервным (об этом — в следующем разделе, выбор важнее, чем кажется).
- Сохраните политику.
- Перейдите в Мои сети и устройства, откройте нужное устройство (по имени или MAC-адресу) и в его настройках назначьте созданную политику.
Так можно отправить через VPN только рабочий ноутбук и телевизор, а смартфоны и IoT-устройства оставить на обычном канале — или наоборот, пустить через туннель весь дом, а пару капризных устройств явно исключить. Это удобнее, чем поднимать VPN на каждом устройстве отдельно — тема, которой касается статья про VPN на роутере для всего дома, а для телевизоров без поддержки VPN роутер вообще единственный вариант — обходной путь через роутер.
Небольшая таблица для ориентира, как обычно распределяют устройства:
| Тип устройства | Типичный выбор |
|---|---|
| Рабочий ноутбук/ПК | Через VPN |
| Смарт-ТВ, приставка | По ситуации (некоторые сервисы иначе работают через VPN) |
| Умный дом (розетки, лампы) | Обычно напрямую — меньше риска потери связи с облаком устройства |
| Гостевой Wi-Fi | Как правило — напрямую, отдельная политика |
| Телефоны домочадцев | По потребности, индивидуально |
Kill switch: что происходит, когда туннель падает
Это тот раздел, который обычно пропускают, а потом удивляются. Вопрос простой: если туннель оборвётся (сервер перезагрузился, провайдер моргнул, у сервера сменился IP), что должно случиться с устройствами, которым назначена VPN-политика?
Вариантов ровно два, и вы выбираете его тем самым шагом 4 из предыдущего раздела:
- Добавили провайдера резервным подключением. При падении туннеля устройства молча продолжат работать через обычный канал. Интернет не пропадёт — но и защиты не будет, причём вы об этом не узнаете: внешне ничего не изменится. Для телевизора это нормально, для рабочего ноутбука — обычно нет.
- Оставили в политике только Wireguard0, без резерва. При падении туннеля устройства с этой политикой остаются вообще без интернета. Выглядит как поломка, но по сути это и есть kill switch: трафик физически некуда уйти в обход туннеля.
Отдельной галочки «Kill switch» в KeeneticOS нет — она реализуется именно составом политики. Практичный компромисс: заведите две политики. «VPN строгий» (только Wireguard0) — для рабочих устройств, где утечка недопустима. «VPN мягкий» (Wireguard0 + провайдер резервом) — для медиа и всего, где важнее непрерывность. Как этот же принцип выглядит на обычных компьютерах, разобрано в статье про kill switch для VPN на Windows, Linux и macOS.
MTU: когда сайты открываются наполовину
Классический симптом, который почти никогда не связывают с VPN: туннель поднят, handshake свежий, мелкие сайты открываются, пинг идёт — но крупные страницы висят на середине загрузки, картинки не догружаются, файлы обрываются, а SSH подключается и замирает. Почти всегда это MTU.
Что происходит: WireGuard упаковывает ваш пакет в свой, добавляя примерно 60 байт служебных данных. Если исходный пакет был максимального размера (1500 байт), упакованный уже не влезает в канал — и должен быть разрезан. Часть промежуточных узлов такие «разрезанные» пакеты выбрасывает, и получается ровно та картина: мелкое проходит, крупное теряется.
Лечится уменьшением MTU на интерфейсе туннеля. Ориентиры:
- 1420 — стандартная отправная точка для обычного подключения (Ethernet, 1500).
- 1412 и ниже — если у провайдера PPPoE (там уже 1492 вместо 1500).
- 1280 — гарантированно рабочий минимум, если экспериментировать не хочется.
Подобрать значение точно можно с любого компьютера в сети. В Windows:
ping -f -l 1400 8.8.8.8
Флаг -f запрещает разрезать пакет, -l задаёт размер данных. Уменьшайте число, пока не пропадёт ответ «Требуется фрагментация пакета». Найденное значение плюс 28 (служебные заголовки) — это ваш рабочий MTU канала; MTU туннеля берут ещё на ~60 байт меньше. На macOS и Linux то же самое делается командой ping -M do -s 1400 8.8.8.8.
Выставить MTU на Keenetic можно в настройках самого подключения WireGuard либо через CLI:
interface Wireguard0 ip mtu 1420
system configuration save
Подробный разбор подбора значения — в статьях про MTU для WireGuard и проблему фрагментации.
Маршрутизация по доменам и сайтам
Иногда деление «по устройствам» слишком грубое — хочется, чтобы конкретные сайты всегда шли через туннель независимо от устройства, а остальной трафик — напрямую. В KeeneticOS это делается через списки доменных имён:
- В разделе Интернет → Политики откройте вкладку Списки доменных имён.
- Создайте список, добавьте туда домены (вручную по одному или загрузите файлом).
- В настройках списка укажите интерфейс Wireguard0.
- Обязательно включите использование DNS-сервера именно для этого списка — многие сервисы отдают разные IP в зависимости от того, откуда пришёл DNS-запрос (гео-балансировка CDN). Если резолвить домен «неправильным» DNS, IP окажется не тем, что реально обслуживает трафик из VPN-сети, и правило не сработает.
- Сохраните — теперь трафик к этим доменам едет через туннель для всех устройств сети.
Работает это на перехвате DNS-ответов: роутер запоминает, какие IP вернулись на запрос домена из списка, и добавляет их в таблицу маршрутизации со шлюзом Wireguard0 динамически. Отсюда практическое ограничение — правило начинает действовать только после первого DNS-резолва домена уже после добавления в список. На уже открытые соединения оно не распространяется, поэтому после правки списка нужную вкладку стоит перезагрузить, а иногда и сбросить DNS-кеш на устройстве.
Фишки, о которых редко пишут
Несколько вещей, которые сильно улучшают жизнь после базовой настройки.
Несколько туннелей одновременно. KeeneticOS поддерживает Wireguard0, Wireguard1 и далее. Заведите два подключения к разным серверам (скажем, US и UK) и две политики — тогда переключение локации для устройства делается в два клика, без правки конфигов.
VPN по расписанию. К интерфейсу WireGuard можно привязать расписание (Общие настройки → Расписания), чтобы туннель, например, поднимался только в рабочие часы. Удобно, если сервер оплачивается по трафику или VPN нужен только для работы.
Провайдер режет WireGuard. Симптом узнаваемый: из дома handshake не проходит вообще, а с мобильного интернета тот же конфиг работает. Первое, что стоит попробовать, — сменить порт сервера на 443/UDP: его блокируют реже, чем нестандартные. Если не помогает, тему решает обфускация — AmneziaWG, протокол-надстройка, маскирующая трафик WireGuard.
Смена сервера без пересоздания подключения. Если сервер переехал, не удаляйте интерфейс: достаточно поправить Endpoint и публичный ключ в существующем подключении. Все политики, привязки устройств и списки доменов сохранятся.
Про скорость. Шифрование на Keenetic считает центральный процессор, аппаратного ускорения для WireGuard у бытовых моделей нет. Практический вывод: младшие модели упираются в потолок заметно раньше старших, и на тарифе провайдера в несколько сотен мегабит роутер может стать узким местом. Конкретные цифры сильно зависят от модели и версии прошивки, поэтому измеряйте у себя: запустите замер скорости с устройства с VPN-политикой и без неё, разница и будет ценой шифрования. Аккуратная методика — в статье про измерение скорости VPN через iperf3.
Мини-шпаргалка по CLI (SSH или Telnet на роутер):
show version # версия KeeneticOS
show interface Wireguard0 # состояние туннеля и счётчики
show ip route # текущая таблица маршрутизации
interface Wireguard0 ip mtu 1420 # изменить MTU
system configuration save # сохранить изменения в память
Что делать, если не работает
Быстрая диагностика по симптомам — от самого частого к редкому:
| Симптом | Вероятная причина | Что делать |
|---|---|---|
| Handshake вообще не появляется | Неверный Endpoint/порт, закрыт UDP-порт на сервере, провайдер режет | Проверить порт на сервере, попробовать 443/UDP, проверить конфиг с мобильного интернета |
| Handshake есть, интернета нет | Нет NAT на сервере или неверные AllowedIPs | Проверить MASQUERADE на сервере, маршрут обратно к подсети роутера |
| Крупные сайты висят, мелкие открываются | MTU | Снизить MTU до 1420, при PPPoE ниже |
| IP на 2ip показывает домашний | Политика не назначена устройству | Проверить привязку устройства к политике в «Мои сети и устройства» |
| Сайты открываются, но DNS «светит» провайдера | Утечка DNS, включён DoH/DoT в роутере | Отключить сторонние DNS-профили, использовать DNS из конфига |
| Туннель отваливается после простоя | Нет PersistentKeepalive | Выставить Keep-alive 20–25 секунд |
| После перезагрузки роутера туннель не поднялся | Конфигурация не сохранена или сервер сменил IP | system configuration save, проверить Endpoint |
| Интернет пропал у всей сети | Политика по умолчанию переключена на Wireguard0 | Вернуть политику по умолчанию на провайдера, настраивать адресно |
Полезное место для поиска причины — Управление → Диагностика → Системный журнал: там видно, поднимался ли интерфейс, были ли ошибки ключей и как часто рвётся связь.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
WireGuard пропал из списка компонентов после обновления прошивки?
Проверьте набор компонентов заново в Общих настройках — при крупном обновлении KeeneticOS список иногда сбрасывается на дефолтный минимальный, и компонент нужно включить повторно.
Можно ли одновременно держать несколько подключений WireGuard на одном роутере?
Да, KeeneticOS поддерживает Wireguard0, Wireguard1 и далее — удобно, если разные политики должны вести к разным серверам.
Что делать, если после импорта конфига интернет вообще пропал у всех устройств?
Скорее всего, политика маршрутизации по умолчанию переключилась на Wireguard0, а туннель ещё не поднялся. Верните политику «по умолчанию» на провайдера и настраивайте адресно, устройство за устройством.
Роутер поддерживает импорт конфига в виде QR-кода, как в мобильном приложении?
Нет, веб-интерфейс — только через файл .conf. Сканирование QR — особенность официальных мобильных клиентов WireGuard.
Нужно ли вручную прописывать маршруты, кроме политик?
Обычно нет — политика на интерфейс и список доменных имён покрывают почти все домашние сценарии.
Одна и та же конфигурация может работать на роутере и на телефоне одновременно?
Технически можно, но не нужно: два устройства с одним ключом мешают друг другу, handshake будет перебиваться. Заведите на сервере отдельного пира для каждого устройства.
Сильно ли греется роутер под нагрузкой VPN?
Шифрование заметно нагружает процессор, и на слабых моделях при постоянной высокой скорости температура вырастет. Если корпус горячий и связь начинает рваться — это повод либо снизить нагрузку, либо смотреть в сторону более старшей модели.
Что лучше: клиент на роутере или сервер на роутере?
Для доступа домой снаружи нужен сервер, для «весь дом через удалённый сервер» — клиент, как в этой статье. Разница разобрана в статье про клиент против сервера на роутере.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →