Свой VPN на роутере Keenetic через XKeen и Entware
Разворачиваем VPN на Keenetic своими руками: Entware и XKeen через SSH, сервер из подписки в JSON-файл, политика устройств для тоннеля и разбор сбоев.
VPN на роутере Keenetic — это связка Entware и XKeen: на подключённую флешку ставится линуксовое окружение, поверх него встаёт XKeen с ядром Xray, а роутер дальше сам заворачивает трафик нужных устройств в тоннель. Ставить клиенты на телевизор или приставку уже не придётся — за них всё делает сам роутер. Дальше — весь путь от чистой флешки до рабочего подключения, с точными пунктами меню и командами.
Что подготовить заранее
Нужны Keenetic с USB-портом, накопитель, ссылка на сервер и провод к компьютеру. XKeen ставится только на внешний диск — во внутреннюю память разработчик установку не поддерживает. Что касается модели роутера: на процессорах aarch64 (новые линейки Giga, Ultra, Titan, Peak, Hopper и похожие) шифрование считается заметно быстрее, но бюджетные mips и mipsel тоже подойдут — просто упрутся в потолок по скорости раньше. Узнать архитектуру своей модели проще всего по таблице Routers Info в вики XKeen или командой show version в консоли роутера — там нужно поле arch.
Из подписки пригодится ссылка — она понадобится на четвёртом шаге. Компьютер для настройки подключите к роутеру именно кабелем, не по Wi-Fi. Про резервную копию настроек и кнопку сброса на случай ошибки — в статье про настройку на роутере, там это расписано отдельно.
Шаг 1: развернуть Entware на флешке
Entware — набор линуксовых пакетов, которые Keenetic умеет запускать прямо с внешнего накопителя. Делается это так.
- Зайдите в «Общие настройки → Обновления и компоненты → Изменить набор компонентов» и включите «Поддержка открытых пакетов». Заодно отметьте «Прокси-сервер DNS-over-TLS», «Прокси-сервер DNS-over-HTTPS» — они пригодятся чуть позже — и модули ядра Netfilter: без них прозрачный перехват трафика попросту не заработает. После сохранения роутер сам скачает компоненты и перезагрузится.
- Подключите флешку и отформатируйте её в EXT4 на странице «Накопители и устройства», в разделе «Форматирование и проверка файловой системы на USB-накопителе».
- Создайте в корне накопителя папку
installи положите туда установочный архив с bin.entware.net, подходящий вашей архитектуре:aarch64-installer.tar.gzиз каталогаaarch64-k3.10/installer/,mipsel-installer.tar.gzизmipselsf-k3.4/installer/либоmips-installer.tar.gzизmipssf-k3.4/installer/. Копировать файлы проще всего через сетевую папку — включите «Сервер SMB (доступ к файлам и принтерам)», и накопитель появится в сетевом окружении компьютера. - Откройте «Менеджер пакетов OPKG», выберите флешку в поле «Накопитель» и сохраните настройку. Роутер распакует архив сам — в журнале событий появится строка «Начало установки системы пакетов Entware».
Шаг 2: подключиться по SSH и подготовить роутер
Подключение по SSH идёт на адрес роутера, порт 222, логин root, пароль keenetic — так отвечает именно Entware. Если в самой KeeneticOS не установлен компонент «SSH-сервер», подключайтесь на порт 22. В Windows для этого хватит встроенного ssh из PowerShell, отдельная программа не нужна. Первым делом смените пароль командой passwd.
Документация XKeen просит проверить ещё два момента.
Шифрованный DNS. Без прописанных на роутере DoT или DoH XKeen работать отказывается: запросы имён уходят провайдеру открытым текстом, и часть адресов резолвится неправильно. Добавляется сервер на странице «Интернет-фильтр», вкладка «Настройка DNS»: кнопка «Добавить сервер», тип DNS-over-TLS или DNS-over-HTTPS, адрес сервера. Зачем это нужно вообще, подробно разобрано в статье что такое DNS.
Порт 443. В режиме Hybrid, который у XKeen 2.0 включён по умолчанию, порты трогать не нужно — оставьте как есть. Только чистый TProxy требует освободить 443: тогда HTTPS веб-интерфейса переносят на другой порт, скажем
- Для первого запуска Hybrid проще и safer.
Шаг 3: установить сам XKeen
В консоли выполните подряд две команды:
opkg update && opkg upgrade && opkg install curl tar && cd /tmp
sh -c "$(curl -sSL https://raw.githubusercontent.com/jameszeroX/XKeen/main/install.sh)"
Актуальную ссылку на скрипт и вики смотрите на странице проекта — адреса иногда меняются. Установщик задаёт вопросы по порядку:
- Версия — берите стабильную ветку.
- Ядро — Xray; Mihomo стоит выбирать только тем, кто уже разбирался с его конфигами раньше.
- Версия ядра — самую свежую с числовым номером из предложенного списка.
- GeoSite и GeoIP — наборы адресов для правил маршрутизации; в первый раз проще поставить всё сразу, пункт
1. - Исключать ли российские подсети. Находитесь в России и хотите, чтобы российские сайты открывались напрямую, — отвечайте да. Настраиваете роутер за границей ради российского выхода — отвечайте нет, тогда российские сервисы тоже пойдут через тоннель и увидят российский адрес.
- Автообновление geo-файлов и автозапуск — включайте оба пункта.
Когда установка завершится, ничего не запускайте — сначала нужно указать сервер.
Шаг 4: подставить сервер из подписки
В Happ или другом клиенте откройте подписку и найдите сервер нужной страны в разделе «Обычный VPN» — не пункт-«автовыбор», роутер переключаться между серверами сам не умеет. Скопируйте его ссылку через «Поделиться» или «Скопировать»: Xray не принимает ссылку подписки целиком, ему нужен адрес одного конкретного сервера. Если такой кнопки в клиенте нет, ссылку на отдельный сервер подскажет поддержка сервиса.
Эту ссылку нужно разложить по полям файла 04_outbounds.json в каталоге /opt/etc/xray/configs/. Редактировать можно прямо по SSH (opkg install nano, затем nano) либо с компьютера через ту же сетевую папку: Entware лежит в корне флешки, так что путь будет etc/xray/configs/. Блоки freedom и blackhole не трогайте — это прямой выход и заглушка, оба нужны для маршрутизации.
Как поля ссылки ложатся в файл:
- адрес и порт сервера →
addressиport - идентификатор перед
@→id;encryptionтак и остаётсяnone flow, если он есть в ссылке, — в тот же блок пользователяsecurity→tlsилиrealityвнутриstreamSettingssni→serverName,fp→fingerprint,pbk→publicKey,sid→shortIdtype→network(tcp,ws,grpc,xhttp); для веб-транспортов ещё добавляютсяpathиhost
В вики XKeen упомянуты и готовые онлайн-генераторы такого файла, но разработчик всё же советует один раз собрать конфиг руками, чтобы понимать, что где лежит. Почему для дома лучше обычный раздел подписки, а не премиальный, объясняется в разборе видов подключений.
Шаг 5: назначить, кто идёт через тоннель
XKeen 2.0 в отличие от старых сборок заворачивает в тоннель не всех подряд, а только устройства, привязанные к нужной политике доступа Keenetic — остальные продолжают ходить напрямую на полной скорости.
- Сами политики живут на странице «Сетевые правила → Приоритеты подключений». Какое имя политики нужно XKeen, подскажет команда
xkeen -hи вики: произвольные политики описываются в файле/opt/etc/xkeen/xkeen.json, в массивеpolicy, где пустое полеportозначает сразу все порты. - В «Списке устройств» откройте нужный телевизор, приставку или консоль и назначьте ему эту политику. Устройства, оставшиеся на политике по умолчанию, тоннель никак не затронет.
Есть и режим без политик — сразу для всех клиентов роутера, но для первого раза удобнее начать именно с политики: если в настройке ошибётесь, без интернета останется одно устройство, а не весь дом.
Шаг 6: запустить и проверить работу
Команды простые: xkeen -start запускает, xkeen -status показывает состояние, xkeen -restart перезапускает после правки файлов, xkeen -stop останавливает. Отдельно есть xkeen -diag — собирает диагностику, если придётся писать разработчику.
Проверять нужно с устройства, которое уже добавлено в политику: откройте любой сайт, показывающий ваш IP-адрес, — должна определиться страна выбранного сервера. На телефоне вне политики адрес так и останется провайдерским, это нормально. Если телевизор всё равно пишет «недоступно в вашем регионе», загляните в инструкцию по Android TV — тамошние приложения подолгу держат в памяти старый ответ сервиса.
Что делать, если не заработало
xkeen -statusпишет, что Xray не запущен. Почти всегда виновата ошибка в JSON — лишняя запятая, не закрытая кавычка или скобка. Загляните в журнал ошибок в/opt/var/log/xray/: там будет указан номер символа с проблемой.- Служба запущена, но сайты не открываются. Сначала проверьте, назначена ли устройству политика. Потом — работает ли тот же сервер в Happ на телефоне: если и там не работает, дело в сервере или сети, а не в роутере.
- На телефоне всё открывается, а на роутере — нет. Клиент на телефоне сам обновляет список серверов, а роутер держит одну зафиксированную ссылку. Скопируйте ссылку сервера заново и обновите
04_outbounds.json. - После включения
xkeen -dnsпропал интернет у устройств вне политики. Это известная особенность встроенной «Политики по умолчанию» — заведите для таких устройств отдельную свою политику. - Часть сайтов идёт мимо тоннеля. Чаще всего дело в IPv6: в KeeneticOS 5 его нельзя выключить полностью, и XKeen обрабатывает такой трафик отдельно. Если IPv6 от провайдера вам не нужен, отключите его прямо на подключении.
- Роутер работает через мобильный интернет, и тоннель вообще не поднимается. У оператора может быть свой фильтр разрешённых адресов. Для таких сетей в подписке есть раздел Premium LTE, но он расходует пакет гигабайт, поэтому дома разумнее проводной канал и обычный раздел.
Частые вопросы
Можно поставить XKeen без флешки, во внутреннюю память роутера?
Технически такое возможно, но официально разработчик поддерживает только установку на внешний накопитель, а проблемы при установке во внутреннюю память ошибками самого XKeen не считает.
XKeen работает на KeeneticOS 5?
Да, вторая версия XKeen изначально рассчитана на KeeneticOS 5 и новее, а для старой ветки 4.3 LTS тоже есть сборка. На версии 5.2 утилите дополнительно нужен токен доступа к RCI — как его выпустить в веб-интерфейсе, написано в вики на странице про конфигурационный файл.
Насколько сильно упадёт скорость интернета?
Шифрование трафика считает процессор самого роутера. У моделей на aarch64 запас мощности приличный, а про mips и mipsel с частотой около 580 МГц вики XKeen прямо предупреждает: не стоит ждать от них большего, чем они физически способны выдать.
На роутере обязательно нужен свой блокировщик рекламы?
Необязательно: в подписке нашего сервиса реклама и так срезается во всех разделах, кроме тех, что помечены как ADS. Если всё же ставите отдельный фильтр, следите, чтобы он не перехватывал DNS-запросы раньше XKeen.
Как поменять сервер или страну назначения?
Скопировать ссылку другого сервера из подписки, подставить новые значения в 04_outbounds.json и выполнить xkeen -restart. Кнопки быстрого переключения, как на телефоне, у роутера нет.
Нужен стабильный интернет в поездке?
Подписка на быстрые серверы: три дня бесплатно, банковская карта не нужна.
Попробовать бесплатноЧитайте дальше
Была ли статья полезной?
Комментарии
Пока никто не написал — будьте первым.
Комментарии публикуются после проверки. Ссылки не публикуем.