VPN на Keenetic — XKeen с Mihomo
Основной способ UnderVPN для совместимых роутеров. Подписка обновляется автоматически.
Вы один раз вставляете ссылку подписки — дальше раз в 6 часов роутер сам скачивает свежие настройки. Всё, что мы меняем на сервере — серверы, правила, запасные каналы, — доезжает до роутера без вашего участия. Отдельное VPN-приложение на устройствах в выбранной политике не требуется.
Начать настройкуПроверьте модель
Нужны USB и достаточно памяти для Mihomo
Нужен терминал
Установка по SSH, команды копируются целиком
Обновляется само
Раз в 6 часов роутер сам скачивает свежие настройки по вашей ссылке
Альтернатива: XKeen с Xray — для подключения к одной стране по файлу поддержки, в том числе на более слабых моделях. Источники инструкции.
Бета — вы среди первых
Способ собран по документации XKeen, наши скрипты проверены в эмуляции, на живом роутере — пока нет. Лучше напишите нам перед началом — пройдём установку вместе.
Если что-то пойдёт не так, команда xkeen -stop остановит проксирование. При исправном подключении провайдера интернет пойдёт напрямую (аварийная кнопка).
Ваши устройства — настраивать ничего не нужно
Роутер сам:
- Раз в 6 ч — свежие настройки по ссылке
- Раз в 5 мин — автопроверка VPN
Вы сами выбираете устройства в политике xkeen. Сначала проверяем одно, затем подключаем остальные; условия лимита зависят от тарифа.
Четыре слова, которые встретятся
- Entware
- основа для сторонних программ на флешке роутера.
- XKeen
- установщик и выключатель VPN на роутере.
- Mihomo
- сама VPN-программа: через неё роутер ходит в VPN.
- Ссылка подписки
- ваш личный адрес настроек VPN из личного кабинета. Никому её не пересылайте.
В сообщениях скриптов в терминале и журнале те же вещи названы иначе: ядро — Mihomo, VPN-программа; сторож — автопроверка раз в 5 минут; конфиг — настройки; идентификатор роутера — номер роутера; токен RCI — токен доступа из шага 3.
Время — наша оценка. Шаг 3 нужен только на KeeneticOS 5.2 и новее. Шаги 7–10 — справка на потом, читать их сразу не нужно.
Шаг 1. Проверьте, что всё есть
Пять минут сейчас — и вы не застрянете на середине установки. Проверьте три вещи: роутер, флешку и подписку.
Откройте эту страницу на компьютере
С компьютера команды копируются прямо в терминал. Во время подготовки роутер перезагрузится, и интернет дома пропадёт на пару минут — предупредите домашних.
Entware или XKeen уже установлен?
Не форматируйте накопитель и не начинайте новую установку поверх имеющейся. Сначала сохраните файлы USB на компьютер и согласуйте переход с поддержкой. Ниже описана первая установка на подготовленный USB-накопитель.
Перед изменениями сохраните резервную копию startup-config на компьютер. Она содержит настройки роутера; файлы Entware с USB копируются отдельно.
Подходит ли ваш роутер
Нужен Keenetic с USB-портом из списка XKeen. Модель узнаётся по индексу KN- и цифрам. Он напечатан на наклейке снизу и есть в веб-интерфейсе: Системный монитор → О системе. Роутеры Для Netcraze с индексом NC- также сверяйте точную модель и архитектуру по таблице совместимости XKeen.
aarch64РекомендуемPeak KN-2710 · Ultra/Titan KN-1811 и KN-1812 · Giga KN-1012 · Hopper KN-3811 · Hopper SE KN-3812 · Hopper 4G+ KN-2312 · Hero 5G KN-4110
Предпочтительная архитектура; скорость зависит от модели и нагрузки.
mipsel mipsМедленнееОстальные модели из списка XKeen
Проверьте объём памяти и примечания к модели в таблице XKeen. Производительность может ограничивать скорость подключения.
Viva KN-1910 · Hero 4G KN-2310 · Extra KN-1711 и KN-1713
Установка остановится. Для них есть способ с ядром Xray — он описан в отдельной инструкции.
У роутера 256 МБ памяти — что может случиться?
Установщик допускает такой объём, но стабильность зависит от нагрузки и размера подписки. При падении Mihomo наша автопроверка попробует:
- перезапустит её;
- если не помогло — вернёт прошлые настройки;
- если и это не помогло — выключит VPN, и интернет пойдёт напрямую. Исключение — включённый в XKeen kill-switch: тогда интернета не будет до
xkeen -start.
Как это устроено — в шаге 8.
Что понадобится
- KeeneticOS 4 или новее. На 5.2 и новее нужен ещё токен доступа — это шаг 3.
- Режим работы — «Роутер». В режимах адаптера, усилителя или точки доступа XKeen не ставится.
- USB-флешка от 1 ГБ. Всё, что на ней есть, сотрётся. Флешка останется в роутере насовсем: на ней будут жить Entware, XKeen и настройки VPN.
Почему именно 1 ГБ
Для обновления VPN-программы XKeen требует минимум 70 МБ свободного места. Мы советуем держать свободными 150 МБ.
- Компьютер с SSH-клиентом. В Windows 10 и 11, macOS и Linux подойдёт встроенный терминал.
- Действующая подписка и вход в личный кабинет.
Проверьте лимит устройств
Установщик создаёт отдельный идентификатор роутера. Перед установкой проверьте свободные места и условия своего тарифа в личном кабинете. Если непонятно, как учитывается роутер, уточните у поддержки.
Когда подписка закончится
Соединения, направленные через UnderVPN, могут перестать работать. Сайты, для которых в подписке задан прямой маршрут, обычно остаются доступны через провайдера. До продления можно выключить проксирование командой xkeen -stop, подробнее — в шаге 10.
Можно начинать, если ваша модель есть в карточке выше и она не в строке «Не подходят», флешка и компьютер под рукой, а в личном кабинете есть свободное место.
Не уверены, подходит ли роутер? Напишите нам индекс KN- с наклейки — подскажем.
ДальшеШаг 2. Подготовьте роутероколо 25 минутШаг 2. Подготовьте роутер
Здесь роутер получает всё, на чём будет работать VPN: нужные компоненты, флешку, Entware, защищённый DNS и вход с компьютера. Каждый слой ставится поверх предыдущего — поэтому шаги идут именно в таком порядке.
Автообновление UnderVPN — шаг 5
Mihomo — VPN-программа — шаг 4
XKeen — ставит и выключает VPN — шаг 4
Entware — основа для программ — шаг 2.3
Флешка ext4 — шаг 2.2
2.1 Компоненты · 2.2 Флешка · 2.3 Entware · 2.4 DNS · 2.5 IPv6 · 2.6 Вход с компьютера
Не нашли пункт меню на месте?
Названия даны по справке Keenetic. Если пункта нет там, где указано, найдите страницу по её названию в меню слева.
2.1 Включите нужные компоненты
Без них XKeen не запустится, а флешку нельзя будет подключить.
Откройте окно состава компонентов.
- KeeneticOS 4.x и 5.0: Управление → Общие настройки → Обновления и компоненты → Изменить набор компонентов
- KeeneticOS 5.1 и новее: Управление → Настройки системы → Обновления и компоненты KeeneticOS → Изменить набор компонентов
Отметьте компоненты.
- «Поддержка открытых пакетов»;
- «Файловая система Ext»;
- «Модули ядра подсистемы Netfilter» — без них XKeen не запустится;
- «Прокси-сервер DNS-over-TLS» и/или «Прокси-сервер DNS-over-HTTPS»;
- «Общий доступ к файлам и принтерам по протоколу SMB» — через него вы положите файл на флешку по сети. Для Windows это обязательно: она не умеет записывать файлы на флешку в ext4;
- на KeeneticOS 5.1 и новее — ещё «Утилиты для файловой системы», чтобы отформатировать флешку прямо в роутере.
Нажмите «Обновить KeeneticOS».
Роутер скачает компоненты и перезагрузится — интернет дома пропадёт на пару минут.
После перезагрузки посмотрите версию KeeneticOS.
Смена компонентов может заодно обновить прошивку до последней версии. Версия указана в Системный монитор → О системе. От неё зависят пути в меню ниже и нужен ли вам шаг 3.
Получилось, если после перезагрузки в «Изменить набор компонентов» стоят галки у «Поддержка открытых пакетов» и «Модули ядра подсистемы Netfilter».
2.2 Отформатируйте флешку
На флешке будут жить Entware, XKeen и настройки VPN. Всё, что было на флешке, сотрётся.
KeeneticOS 5.1 и новее. Вставьте флешку в роутер, откройте Управление → Накопители и устройства и отформатируйте её в EXT4. Порядок форматирования у производителя.
KeeneticOS 4.x или 5.0: флешку форматируют на компьютере
Отформатируйте флешку в ext4 на компьютере. Windows сама в ext4 не форматирует: понадобится компьютер с Linux или отдельная программа для ext4. Затем вставьте флешку в роутер. Она появится в Приложения → Диски и принтеры.
Получилось, если флешка видна в «Накопители и устройства» (5.1 и новее) или в «Диски и принтеры» (4.x и 5.0).
2.3 Поставьте Entware — основу для программ
Entware — основа для сторонних программ на флешке. XKeen ставится внутрь неё.
Скачайте на компьютер установщик Entware для своего процессора.
Это не команда, а адрес: откройте его в браузере на компьютере — архив скачается. Процессор вашей модели — в карточке шага 1. Для aarch64:
https://bin.entware.net/aarch64-k3.10/installer/aarch64-installer.tar.gzДругой процессор: mipsel или mips
mipsel:
https://bin.entware.net/mipselsf-k3.4/installer/mipsel-installer.tar.gzmips:
https://bin.entware.net/mipssf-k3.4/installer/mips-installer.tar.gzВключите в роутере «Сервер SMB».
В KeeneticOS 4.x и 5.0 он на странице Приложения. В 5.1 и новее ищите пункт «Сервер SMB» в меню 5.1+ не проверено
Откройте флешку по сети.
- Windows: в Проводнике в адресной строке наберите
\\192.168.1.1и нажмите Enter. Если адрес роутера у вас другой, подставьте его; - macOS: Finder → Переход → Подключение к серверу →
smb://192.168.1.1.
Если спросят логин и пароль, введите те, с которыми входите в веб-интерфейс роутера. Windows 11 может не пустить без пароля — это нормально: введите этот логин и пароль. Не пускает и с ними или не спрашивает их вовсе — напишите нам, подскажем.
- Windows: в Проводнике в адресной строке наберите
Положите архив в папку install.
Откройте папку флешки, создайте в её корне папку
installи скопируйте туда один нужный архив, не распаковывая.Запустите установку.
Откройте Управление → OPKG5.1+ не проверено (страница называется «Менеджер пакетов OPKG»). В поле «Накопитель» выберите флешку, включите «Доступ для учётной записи пользователя» и нажмите «Сохранить».
Дождитесь конца и запомните порт.
Установка идёт несколько минут. Следите за ней в Диагностика → Системный журнал. В конце там появится строка с логином, паролем и портом для входа. Запомните порт.
В этой инструкции Entware устанавливается на USB. Другие способы зависят от модели. Инструкция производителя с примерами журнала.
Получилось, если в «Системном журнале» побежали строки установки Entware, а последняя — с логином, паролем и портом.
2.4 Включите защищённый DNS
XKeen требует, чтобы роутер спрашивал адреса сайтов по шифрованному каналу.
Запросы DNS идут мимо VPN, но зашифрованы
Шифрование скрывает содержимое этих DNS-запросов от сети между роутером и выбранной службой DNS. Оно само по себе не скрывает адреса всех соединений или всю активность устройств.
Откройте профили DNS.
Сетевые правила → Интернет-фильтр → Настройка DNS → Профили DNS → Добавить сервер5.1+ не проверено («Настройка DNS» — вкладка).
Добавьте два сервера DNS-over-TLS.
- Cloudflare: адрес
1.1.1.1, доменное имя TLScloudflare-dns.com; - Google: адрес
8.8.8.8, доменное имя TLSdns.google.
Роутер сам берёт тот сервер, который быстрее отвечает.
- Cloudflare: адрес
Проверьте, что сайты открываются.
Откройте на компьютере пару сайтов. Не открываются — проверьте дату и время на роутере (с неверным временем шифрованный DNS не работает), затем попробуйте другую службу.
Запасной вариант, если Cloudflare и Google у вас не работают
Яндекс, адрес
77.88.8.8, доменное имя TLScommon.dot.dns.yandex.net. Учтите, что эта служба увидит все сайты, которые открывают в вашем доме.Не указывайте DNS в настройках DHCP.
В настройках DHCP домашней сети DNS-серверы не указывайте, иначе устройства пойдут мимо роутера.
Отключите автоматические DNS провайдера.
В активном интернет-подключении включите «Игнорировать DNS провайдера»; проверьте также DNS IPv6, если он используется. Иначе рядом с добавленными серверами могут остаться нешифрованные DNS. Настройка DNS у производителя.
Получилось, если сайты на компьютере открываются.
2.5 Выключите IPv6 (если провайдер его даёт)
Наш профиль работает только по IPv4. С включённым IPv6 сайты будут тормозить или не откроются.
Откройте подключение, через которое у вас реально идёт интернет.
Обычно это кабель провайдера: Интернет → Проводной5.1+ не проверено. Если провайдер требует логин и пароль (PPPoE), откройте само подключение PPPoE, а не кабельное под ним. Оно в списке Интернет → Другие подключения5.1+ не проверено.
Выключите IPv6.
Параметры IPv6 → Настройка IPv6 → Не используется
Переподключите устройства к сети или перезагрузите роутер.
Если провайдер IPv6 не даёт, ничего делать не нужно. На KeeneticOS 5 этой настройки может не хватить — установщик в шаге 5 сам проверит IPv6 и скажет, если нужен ещё шаг.
Получилось, если в «Параметры IPv6» стоит «Не используется» — или провайдер IPv6 не даёт.
2.6 Подключитесь к роутеру с компьютера
SSH — текстовый вход в роутер. Все команды дальше набираются в этом окне.
Откройте терминал на компьютере.
В Windows это «Терминал» или PowerShell.
Подключитесь к роутеру.
Логин
root, парольkeenetic, порт — из последней строки журнала в пункте 2.3. Обычно это222:На компьютере ssh root@192.168.1.1 -p 222Если адрес роутера у вас другой, подставьте его вместо
192.168.1.1.- При первом входе появится вопрос
Are you sure you want to continue connecting (yes/no/[fingerprint])?. Наберитеyesи нажмите Enter. - Пароль при вводе на экране не отображается, даже звёздочками. Наберите его и нажмите Enter.
Не подключается: Connection refused или пароль не подходит
- Ответ
Connection refused— повторите с-p 22. - Если на порту 22 пароль
keeneticне принимается, вы попали в командную строку самого Keenetic, а не Entware. Подключайтесь на порт222.
- При первом входе появится вопрос
Сразу смените пароль.
На роутере passwdПроверьте, что скачали Entware под свой процессор.
opkg print-architectureВ ответе найдите строку, где нет слова
all. Её второе слово начинается сaarch64,mipselилиmips— так процессор определяет и сам XKeen. Оно должно совпасть с процессором вашей модели из карточки шага 1. Например, у Giga KN-1012 —aarch64. Не совпало — вы скачали не тот архив: повторите пункт 2.3 с правильным.
Все команды ниже выполняются в этом же окне SSH.
Получилось, если opkg print-architecture ответил списком, в котором есть ваш процессор.
Не получилось? Напишите нам — подскажем, где что в меню вашего Keenetic.
Дальше (на KeeneticOS ниже 5.2 — сразу шаг 4)Шаг 3. Создайте токен доступаоколо 3 минутШаг 3. Создайте токен доступа
Версия ниже 5.2 — пропустите шаг и переходите к шагу 4. Версию вы посмотрели в конце пункта 2.1.
Токен доступа — пароль, с которым XKeen управляет роутером. На 5.2 и новее создайте его до установки XKeen.
Зачем токен заранее
XKeen обращается к служебному интерфейсу RCI роутера. Для KeeneticOS 5.2 подготовьте токен по инструкции автора до запуска установщика. Без рабочего токена команды могут завершаться ошибкой «Отсутствует или недействителен токен доступа к RCI».
Создайте токен в веб-интерфейсе.
Управление → Пользователи и доступ → Токены доступа → Добавить токен («Токены доступа» — вкладка).
Назовите его XKeen и скопируйте значение.
В описании напишите
XKeen. Значение токена покажут только один раз.Запишите токен на роутер.
Сначала установите небольшую утилиту jq: она корректно создаст и проверит JSON. При ошибке остановитесь и не выполняйте следующий блок.
На роутере opkg update && opkg install jqКоманда ниже создаёт новый файл и отказывается перезаписывать существующий. Если xkeen.json уже есть, сохраните копию на компьютере и добавьте
rci_tokenвнутрь его объектаxkeenпо описанию формата. Остальные поля сохраняйте.Выполните команду. Она попросит вставить токен и запишет его в файл настроек XKeen. Вставленный токен на экране не появится, это нормально:
На роутере ( umask 077 TOKEN_FILE=/opt/etc/xkeen/xkeen.json command -v jq >/dev/null || { echo 'Сначала установите jq'; exit 1; } [ ! -e "$TOKEN_FILE" ] || { echo 'Файл уже существует: сохраните копию и измените его вручную'; exit 1; } mkdir -p /opt/etc/xkeen || exit 1 trap 'stty echo 2>/dev/null; echo' EXIT trap 'exit 130' INT TERM HUP printf 'Вставьте токен и нажмите Enter (на экране его не видно): ' stty -echo || exit 1 IFS= read -r TKN || exit 1 stty echo echo [ -n "$TKN" ] || { echo 'Пустой токен: файл не создан'; exit 1; } set -C printf '%s' "$TKN" | jq -Rs '{xkeen: {rci_token: .}}' > "$TOKEN_FILE" || exit 1 chmod 600 "$TOKEN_FILE" )Проверьте, что токен записался.
На роутере if jq -e '(.xkeen.rci_token | type == "string") and (.xkeen.rci_token | length > 0)' /opt/etc/xkeen/xkeen.json >/dev/null; then echo 'JSON корректен, токен заполнен' else echo 'Ошибка JSON или пустой токен: не продолжайте установку' fiНужна строка «JSON корректен, токен заполнен». При ошибке проверьте файл или обратитесь в поддержку; не удаляйте прежние настройки ради повтора команды. Это подтверждает формат и запись токена. Доступ XKeen к роутеру проверяется при установке и запуске; при ошибке RCI не продолжайте настройку.
Токен доступа даёт права администратора роутера
Храните его как пароль и никому не пересылайте.
Получилось, если последняя команда ответила «JSON корректен, токен заполнен».
Шаг 4. Установите XKeen
XKeen поставит на флешку VPN-программу Mihomo и будет включать и выключать VPN. Установщик берётся из репозитория автора XKeen.
XKeen уже стоит с ядром Xray? Прочитайте до команды ниже
Переустанавливать его не нужно. Поставьте ядро Mihomo:
xkeen -umВыбирайте обычный релиз с номером v1.19.27 или новее, не Alpha. Если раньше вы включали исключение российских подсетей, снимите его:
xkeen -dgipsПереключить XKeen на Mihomo вы сможете в конце шага 5: скрипт подскажет xkeen -mihomo.
Запустите установщик XKeen.
На роутере opkg update && opkg install curl tarПродолжайте только после успешной подготовки пакетов. Следующая команда запускает установщик только после успешного скачивания:
На роутере cd /tmp && curl -fSL --retry 2 -o xkeen-install.sh https://raw.githubusercontent.com/jameszeroX/XKeen/main/install.sh && sh ./xkeen-install.shПорядок установки и особенности версий: вики автора XKeen.
Ничего не происходит, только ошибка curl: или «не удалось загрузить xkeen.tar.gz»
Если после второй команды ничего не происходит или выводится только ошибка
curl:, значит, не открылся адрес установщика. Возьмите запасной адрес из вики XKeen:На роутере cd /tmp && curl -fSL --retry 2 -o xkeen-install.sh https://cdn.jsdelivr.net/gh/jameszeroX/XKeen@main/install.sh && sh ./xkeen-install.shЕсли же установщик XKeen запустился, но пишет «Ошибка: не удалось загрузить xkeen.tar.gz», запасной адрес не поможет: архив он скачивает с тех же серверов. Повторите позже.
Ответьте на вопросы установщика.
На каждый вопрос введите цифру и нажмите Enter:
«Какую версию XKeen вы хотите установить?»
2— Beta. Эту ветку используем в данной инструкции, в том числе на KeeneticOS 5.1.2 и новее; на 5.2 она нужна для RCI-токена. Пустой Enter выбирает Stable. Для уже установленной Stable на 5.1.2 у автора есть отдельный патч — не смешивайте его с этой новой установкой.«Выберите ядро проксирования для загрузки и установки»
2— Mihomo.«Введите порядковый номер релиза (0 - пропустить, 9 - ручной ввод)»
Выберите обычный релиз v1.19.27 или новее с номером версии. Не выбирайте Alpha или Prerelease-Alpha: наш скрипт проверяет номер версии и не принимает сборку без него. Номер пункта зависит от списка; через
9можно ввести версию вручную.Релиз с нужным исправлением.«Желаете исключить российские IP-адреса из проксирования?»
0— Пропустить. Разделение прямого трафика и VPN уже задают правила подписки UnderVPN; дополнительное исключение IP здесь не нужно.«Добавить XKeen в автозагрузку при включении роутера?»
1— Да.Если установщик спросил другое
«Внимание: Инициирована установка XKeen во внутреннюю память роутера»
Этого вопроса быть не должно. Если он появился, Entware встал не на флешку: выберите
2и вернитесь к пункту 2.3.«Внимание: Недостаточно свободного места для установки…»
0. Освободите место или возьмите флешку побольше.Вопросы про GeoSite и GeoIP для Mihomo не задаются. Утилиту
yqXKeen ставит сам.Дождитесь «Установка XKeen завершена!» — и пока ничего не запускайте.
XKeen посоветует настроить
config.yamlи запуститьxkeen -start. Пока этого не делайте: настройки положит наш скрипт в шаге 5.Проверьте версии.
xkeen -vВ ответе должны быть строки про XKeen, ядро Mihomo (версия не ниже 1.19.27) и Yq.
Не ставьте mihomo пакетом Entware
opkg install mihomo ставит вторую копию VPN-программы, и она будет драться с первой за одни и те же порты.
Получилось, если было «Установка XKeen завершена!», а xkeen -v показывает Mihomo не ниже 1.19.27.
Не получилось? Найдите сообщение в группе «Установка остановилась с ошибкой» шага 9 или напишите нам.
ДальшеШаг 5. Подключите подпискуоколо 5 минутШаг 5. Подключите подписку
На этом шаге роутер получает ваши настройки VPN. Ссылку вы вставляете один раз. Дальше роутер сам скачивает свежие настройки раз в 6 часов.
До первого запуска выберите одно тестовое устройство
Сначала ограничьте проксирование одним компьютером или телефоном. Без найденной политики XKeen может перехватывать трафик всей домашней сети.
- Откройте Интернет → Приоритеты подключений → Политики доступа в интернет и создайте политику
xkeen. Отметьте в ней рабочее подключение провайдера. - Зарегистрируйте тестовое устройство в списке клиентов роутера. На вкладке «Применение политик» перенесите только его в
xkeen. Остальные устройства оставьте в обычной политике. - Убедитесь, что на тестовом устройстве пока открываются обычные сайты. Только после этого переходите к подключению подписки ниже.
Подробности о телефонах со случайным MAC-адресом — в настройке списка устройств. После успешной проверки сможете добавить остальных.
Скопируйте ссылку подписки.
Откройте личный кабинет и скопируйте ссылку с карточки подписки.
Запустите установщик.
На роутере cd /tmp && curl -fSL --retry 2 -o undervpn-install.sh https://undervpn.org/keenetic/install.sh && sh ./undervpn-install.shНичего не произошло или только ошибка curl:
Если вывелась только ошибка
curl:или вообще ничего не произошло, установщик не скачался. Проверьте, что на роутере есть интернет и верная дата (командаdate), и повторите через несколько минут. Не помогло — напишите нам.Сверьте первую строку.
Она должна быть такой:
UnderVPN — автообновление подписки для XKeen (Mihomo) v2.1Если версии в строке нет или она другая, скачалась старая версия скрипта. Остановите его клавишами Ctrl+C и напишите нам.
Вставьте ссылку, когда скрипт попросит.
На строке «Вставьте ссылку вашей подписки UnderVPN и нажмите Enter:» вставьте ссылку и нажмите Enter. Вставляйте ссылку только сюда: если дописать её к команде из пункта 2, она останется в истории команд роутера.
Дождитесь «Готово.» и, если нужно, включите VPN.
После «Готово.» скрипт может подсказать, что делать дальше. Найдите у себя подсказку:
Скрипт написал:
«Прокси сейчас выключен. Включить: xkeen -start»
На роутере xkeen -startСкрипт написал:
«XKeen работает не на ядре Mihomo. Переключить: xkeen -mihomo, затем xkeen -start»
Выполните две команды по очереди:
На роутере xkeen -mihomoЕсли переключение прошло без ошибки, запустите:
На роутере xkeen -startПодсказки нет — XKeen уже работает на Mihomo, ничего запускать не нужно.
Вместо «Готово.» — «Автообновление поставлено, но первый прогон не удался (причина выше).»?
Пока не выполняйте
xkeen -start. Сначала откройте ниже спойлер «Скрипт написал „Первый прогон не удался“».
Ссылка подписки — это ключ к вашему VPN
Скрипт хранит её на роутере в файле, который может прочитать только администратор. Не публикуйте ссылку и не пересылайте её в переписке. Не копируйте в чат поддержки весь вывод установщика: ссылка видна в нём после «>». Что присылать — в блоке помощи.
Получилось, если скрипт написал «Готово.» (под ним идут подсказка и памятка с командами), а xkeen -start, если скрипт его подсказал, прошёл без ошибок.
XKeen написал, что политика xkeen не найдена?
Остановите его командой xkeen -stop и проверьте имя политики, подключение провайдера и тестовое устройство в начале этого шага. Без политики проверка может затронуть всю домашнюю сеть.
Как выглядит удачная установка
Скрипт сам сделает пять дел:
проверит VPN-программу и утилиту
yq;сохранит ваши прежние настройки;
скачает подписку;
проверит её;
поставит расписание.
UnderVPN — автообновление подписки для XKeen (Mihomo) v2.1 проверяю ядро и yq… ядро mihomo v1.19.31 — подходит (нужно v1.19.27+) yq (…) — самотест пройденВставьте ссылку вашей подписки UnderVPN и нажмите Enter:> … сгенерирован секрет API для этого роутера сгенерирован идентификатор роутера (роутер = 1 устройство подписки) параметры сохранены в /opt/etc/undervpn/undervpn.env (доступ только root) исходный config.yaml сохранён: /opt/etc/undervpn/config.yaml.pre-undervpn обновлятор установлен: /opt/etc/undervpn/update-config.sh забираю подписку и проверяю её ядром… 2026-09-25 18:17:02 ядро не запущено (xkeen -stop?) — конфиг заменён, применится при xkeen -start (групп …, правил …) расписание: обновление раз в 6 часов (минута запуска :17) и сторож ядра раз в 5 минут, задания проверены Готово. Прокси сейчас выключен. Включить: xkeen -startСтрока «> …» — это ваша ссылка. Поэтому весь вывод целиком никому не пересылайте.
Не пугайтесь, если увидите:
- другие версию ядра, дату и минуту расписания — у каждого роутера они свои;
- строку «токен RCI для XKeen на месте» — она бывает, если Keenetic требует токен доступа (шаг 3);
- строку «ядро не запущено (xkeen -stop?)…» сразу после свежей установки XKeen — XKeen просто ещё не запускали;
- памятку с командами в самом конце — это подсказка на будущее.
Скрипт написал «Первый прогон не удался»
Значит, скрипт не смог сразу скачать или проверить ваши настройки. Под строкой «Первый прогон не удался. Подробности:» он покажет строки журнала.
1. Найдите причину. Отыщите эти строки в группе «Ошибка в журнале обновлений» шага 9 и сделайте, что там сказано.
Пока причина не устранена, не выполняйте xkeen -start
После свежей установки XKeen в его настройках ещё нет наших серверов. XKeen включился бы без VPN, и у устройств дома мог бы пропасть интернет.
2. Посмотрите, что скрипт написал дальше, и найдите свой случай:
Скрипт написал:
«ВНИМАНИЕ: причина временная — автообновление ставлю, оно повторит само»
Расписание уже стоит, но сам VPN не включится. В конце скрипт напишет «Прокси сейчас выключен. После устранения причины: /opt/etc/undervpn/update-config.sh, затем xkeen -start». Когда устраните причину, сначала выполните обновление:
/opt/etc/undervpn/update-config.shТолько после успешного обновления без ошибки запустите:
xkeen -start- В подсказке есть ещё
xkeen -mihomo— выполните её передxkeen -start. - Написано «Ядро работает на прежнем конфиге…» — хватит первой команды.
Скрипт написал:
«ОШИБКА: разберитесь с причиной и запустите снова: sh /opt/etc/undervpn/install.sh»
Когда исправите причину, запустите установку снова:
sh /opt/etc/undervpn/install.shЕсли в этой строке вместо неё команда с curl, выполните команду установки из пункта 2.
Скрипт остановился на IPv6
Он напишет «в домашней сети включён IPv6 от провайдера, а VPN-профиль работает только по IPv4…» и перечислит, что сделать. Идите по порядку:
Выключите IPv6.
Поставьте «Не используется» на том подключении, через которое реально идёт интернет (пункт 2.5). У PPPoE — на самом подключении PPPoE.
Переподключите устройства к сети или перезагрузите роутер.
Запустите установку снова — той же командой из пункта 2.
Только если скрипт снова остановился на IPv6, выполните команду ниже и запустите установку ещё раз.
xkeen -ipv6 offАвтор XKeen называет эту функцию экспериментальной: она выключает IPv6 на всём роутере.
Не получилось? Начните с шага 9 или напишите нам.
ДальшеШаг 6. Убедитесь, что VPN работаетоколо 5 минутШаг 6. Убедитесь, что VPN работает
Три короткие проверки: XKeen работает, настройки скачались, а сайты открываются уже через VPN.
Проверьте, что XKeen работает.
На роутере xkeen -statusВ ответе должна быть строка Прокси-клиент mihomo запущен в режиме HybridРежим другой или «Прокси-клиент не запущен» — смотрите группу «Что-то перестало работать» шага 9.
Для поддержки: проверка портов (xkeen -tp)
xkeen -tpПосле строки «mihomo слушает» идут блоки из трёх строк: «Шлюз», «Порт», «Протокол». Каждый протокол выводится отдельным блоком, порядок может быть любым. Ожидаем:
Шлюз
0.0.0.0Порт5000TCPСюда XKeen направляет трафик домашних устройств.
Шлюз
0.0.0.0Порт5001TCP, и отдельным блоком UDPТо же, что 5000.
Шлюз
127.0.0.1Порт9090TCPСлужебный вход, из домашней сети недоступен.
Шлюз
127.0.0.1Порт7890TCPСлужебный вход для проверки, из домашней сети недоступен.
Если видите другие порты со шлюзом
0.0.0.0, приложите вывод к сообщению в поддержку.Загляните в журнал обновлений.
tail -n 5 /opt/var/log/undervpn-xkeen.logДолжна быть строка об успешном обновлении или «без изменений». Отсутствие ошибок в журнале само по себе ещё не подтверждает подключение.
На телефоне или компьютере дома выключите всё, что подменяет адрес или DNS.
Иначе проверка покажет не роутер.
Где это выключить: iPhone, Android, браузер
- приложение VPN, если оно есть;
- на iPhone: «Частный узел» iCloud (Настройки → ваше имя → iCloud) и «Ограничение трекинга IP-адреса» в настройках домашней сети Wi-Fi;
- на Android: «Частный DNS» в настройках сети — поставьте «Выкл.»;
- в браузере: «Безопасный DNS» (Chrome, Edge) или «DNS через HTTPS» (Firefox).
Проверьте внешний IP на устройстве из политики xkeen.
Подключитесь к домашнему Wi-Fi и временно выключите мобильные данные. Откройте IPinfo: IP должен отличаться от адреса провайдера и соответствовать выбранному VPN-серверу. Для сравнения откройте тот же сайт на устройстве вне политики, без своего VPN. При выборочных правилах отдельный сайт может идти напрямую — спорный результат проверьте с поддержкой, а не только по названию страны.
Проверка утечки DNS
Откройте DNSLeakTest. В списке ожидаются серверы той службы, что вы выбрали в пункте 2.4, а не вашего провайдера. Так и задумано: DNS идёт мимо VPN, но зашифрован.
После проверки настройки на устройстве можно вернуть.
Получилось, если xkeen -status пишет «…в режиме Hybrid», тестовое устройство выходит через VPN, а устройство вне политики сохраняет обычное подключение.
После проверки перезагрузите роутер в удобное время и повторите проверку с обоих устройств — это подтвердит автозапуск. Затем добавляйте остальные устройства.
Не получилось? Откройте шаг 9 — начните с карточки «Что случилось?».
Готово! Все устройства дома теперь ходят через VPN.
Роутер сам обновляет настройки раз в 6 часов. Возвращаться сюда нужно, только если что-то сломается. Ниже — какие команды лучше не набирать и справка на потом.
Эти команды лучше не набирать
- Не включайте перехват DNS (
xkeen -dns): у устройств в «Политике по умолчанию» пропадает интернет, а сам автор XKeen считает эту настройку устаревшей. - Не пускайте через VPN трафик самого роутера (
xkeen -pr on). Без отдельной настройки XKeen его всё равно не включит. А с ней подписка будет скачиваться через VPN и перестанет обновляться, если серверы в текущих настройках недоступны. - Не ставьте второй обход блокировок на этот же роутер: две такие системы мешают друг другу.
- Не выполняйте
xkeen -dm: она удаляет Mihomo вместе с настройками, и VPN перестанет работать до повторной установки ядра (xkeen -um). - Не выполняйте
xkeen -mbr: она подменяет настройки старой копией. Если всё же выполнили, запустите/opt/etc/undervpn/update-config.sh, и свежие настройки вернутся.
Шаг 7. Выберите, какие устройства идут через VPN
В шаге 5 вы создали политику xkeen для одного тестового устройства. После успешной проверки перенесите в неё остальные нужные устройства. Маршрут конкретного сайта определяется правилами полученной подписки.
Через VPN пойдут устройства из выбранной политики. Порядок настройки списка — в спойлере ниже. Список привязан к MAC-адресу устройства, поэтому начните с телефонов.
Две ловушки списка xkeen
В политике обязательно отметьте галкой подключение к провайдеру — без неё у устройств в этой политике пропадёт интернет. А на телефонах сначала выключите частный MAC-адрес и переподключитесь к Wi-Fi, и только потом переносите их в политику.
Как пустить через VPN только часть устройств
Выключите частный MAC-адрес на телефонах.
Если телефон меняет адрес, роутер видит его как новое устройство вне списка, то есть без VPN. Настройте адрес до того, как переносить телефон в политику:
- iPhone с iOS 18 и новее: Настройки → Wi-Fi → (i) рядом с домашней сетью → Частный адрес Wi-Fi → «Выкл.» или «Постоянный». «Чередующийся» не подходит;
- iPhone с iOS 14–17: там же переключатель «Частный адрес» — выключите его;
- Android: в настройках домашней сети Wi-Fi выберите MAC-адрес устройства вместо случайного. Название пункта зависит от производителя.
После смены телефон переподключится к Wi-Fi уже с новым адресом. Роутер покажет его как новое устройство — именно его и переносите в пункте 4.
Создайте политику xkeen.
Интернет → Приоритеты подключений → Политики доступа в интернет → Добавить политику5.1+ не проверено Имя —
xkeen, можно большими или маленькими буквами. Другое имя XKeen не найдёт.Поставьте галку на подключении к провайдеру.
Без неё у устройств в этой политике не будет интернета.
Перенесите нужные устройства.
Вкладка «Применение политик»: перенесите устройства из «Политики по умолчанию» в
xkeen.Перезапустите XKeen, чтобы он увидел политику.
На роутере xkeen -restart
Теперь через VPN идут только устройства из политики xkeen, остальные — напрямую.
Получилось, если на устройстве из списка xkeen страна сменилась, а на устройстве вне списка — нет.
Шаг 8. Роутер обновляется сам — вот как
Раз в 6 часов роутер сам скачивает свежие настройки по вашей ссылке. Если ничего не изменилось, он ничего не трогает.
Что происходит при сбоях, после xkeen -stop и перезагрузки
- Новые настройки сначала проверяет сама VPN-программа. Не прошли проверку — роутер остаётся на прежних.
- Обычно новые настройки применяются без перезапуска XKeen, и открытые соединения, как правило, не рвутся. Если нужен полный перезапуск XKeen, интернет пропадёт на несколько секунд.
- Если после обновления VPN-программа не запустилась, скрипт сам вернёт прежние настройки. Те, что её уронили, он сутки не применяет, потом пробует снова.
- Если не запустились и прежние, скрипт выключит XKeen и проверит, что трафик больше не направляется в VPN. Интернет пойдёт напрямую, без VPN, а в журнале появится ошибка. Включённый в XKeen kill-switch скрипт не снимает: тогда у устройств не будет интернета до
xkeen -start. - Автопроверка раз в 5 минут. Пока XKeen включён, роутер смотрит, не упала ли VPN-программа сама. Пока всё работает — ничего не делает и ничего не пишет. Если она упала, роутер по очереди:
- один раз перезапустит XKeen и подождёт её до 90 секунд. Запустилась, но не ответила — VPN не выключает, пишет в журнал предупреждение;
- не запустилась или снова упала меньше чем через час — вернёт прошлые рабочие настройки, если они отличаются от текущих;
- не помогло и это — выключит XKeen: интернет пойдёт напрямую, в журнале будет ошибка. С kill-switch XKeen интернета не будет до
xkeen -start.
- Если вы выключили VPN командой
xkeen -stop, это не падение: ни обновление, ни автопроверка его не включат. Обновление только заменит файл, и новые настройки заработают послеxkeen -start. - После перезагрузки роутера XKeen и расписание запускаются сами.
Обновить прямо сейчас:
/opt/etc/undervpn/update-config.sh
tail -n 5 /opt/var/log/undervpn-xkeen.logПервая команда обновляет, вторая показывает журнал.
Какие строки журнала нормальны
Нормальные строки в журнале:
- «обновлено горячо (без перезапуска XKeen): групп …, правил …» — новые настройки применились, соединения не рвались;
- «обновлено полным рестартом: групп …, правил …»;
- «без изменений (групп …, правил …)»;
- «без изменений (сменились только счётчики трафика в именах)».
Ошибки тоже пишутся в «Системный журнал» веб-интерфейса Keenetic с пометкой UnderVPN.
Сменить ссылку. Например, если вы сбросили её в личном кабинете. Запустите установщик ещё раз и вставьте новую ссылку:
sh /opt/etc/undervpn/install.shЕсли просто нажать Enter, останется прежняя ссылка. Повторная установка не занимает новое место в подписке: номер роутера хранится на флешке, и установщик берёт прежний. Это верно, пока вы не удаляли автообновление (шаг 10): удаление стирает номер с флешки.
Не правьте /opt/etc/mihomo/config.yaml вручную: правки пропадут при следующем обновлении. Если чего-то не хватает, напишите нам, и мы поправим настройки на сервере.
Для опытных: свои настройки поверх подписки
Положите их в файл undervpn-mixin.yaml в каталоге /opt/etc/undervpn/. Пример с пояснениями лежит рядом, в undervpn-mixin.yaml.example. Что вы откроете через этот файл (например, DNS для всей сети), обновлятор не закрывает — за это отвечаете вы.
А можно с веб-панелью?
Можно, но не нужно. Настройки на роутере обновляет наш скрипт, поэтому правки, сделанные в панели, сотрутся при следующем обновлении. А «Добавить подписку» в панели займёт в подписке лишнее устройство.
Если всё же ставите XKeen UI, сразу включите в его настройках пароль и не открывайте порт 1000 в интернет.
Шаг 9. Что-то не работает? Начните здесь
Пропал интернет? Аварийная кнопка
Выполните:
xkeen -stopXKeen перестанет направлять трафик в VPN. При исправном подключении провайдера интернет пойдёт напрямую. Это действует до перезагрузки роутера: после неё XKeen запустится снова. Чтобы он не запускался сам, выполните xkeen -auto off. Включить всё обратно — xkeen -auto on и xkeen -start.
Если xkeen -stop отвечает ошибкой про токен («Отсутствует или недействителен токен доступа к RCI»), остановите XKeen напрямую, а потом пройдите шаг 3:
/opt/etc/init.d/S05xkeen stopЕсли интернета нет и после остановки, верните тестовое устройство в обычную политику с доступом к провайдеру. Проверьте подключение провайдера и DNS; по одному симптому причину определить нельзя.Напишите нам с текстом ошибки.
Что случилось?
- Пропал интернет у всехСначала верните интернет — аварийная кнопка
- Не открываются только зарубежные сайтыЧаще всего закончилась подписка
- Сайты открываются, но страна не меняетсяПроверка режима и списка устройств
- Установка остановилась с ошибкойНайдите сообщение установщика
- Нашли ошибку в журналеСтроки с «ОШИБКА:» и «ВНИМАНИЕ:»
Не нашли своё сообщение?
Если строки нет в списке, у неё метка «Напишите нам» или совет не помог — напишите нам и приложите вывод команд из блока «Что приложить к сообщению». Ссылку подписки не присылайте.
Само пройдёт роутер справится самМожно продолжать не мешает, но учтитеСделайте есть что поправитьНапишите нам без нас не обойтись
Найдите строку, которая похожа на ваш случай, и нажмите на неё — откроются причина и что делать.
Что-то перестало работать
10 ситуаций
Зарубежные сайты не открываются, российские работаютСделайте
Почему. Чаще всего подписка закончилась, ссылку сбросили или VPN-программа упала.
tail -n 5 /opt/var/log/undervpn-xkeen.logsh /opt/etc/undervpn/install.shxkeen -stop вернёт интернет без VPN.Сайты открываются напрямую, страна в проверке IP не меняетсяСделайте
VPN не запускаетсяНапишите намxkeen -start пишет «Прокси-клиент аварийно завершился», xkeen -status — «Прокси-клиент не запущен» или режим не Hybrid
Почему. VPN-программа не запускается на этих настройках или XKeen настроен на другой режим.
xkeen -stop и приложите к сообщению вывод:xkeen -mtest
tail -n 30 /opt/var/log/undervpn-xkeen.logВсё запущено, режим Hybrid, но страна не меняется ни на одном устройствеНапишите нам
Почему. Трафик не доходит до VPN-программы (известная проблема XKeen на части прошивок).
uname -r
iptables -t nat -L xkeen -v -nУ устройств из списка xkeen нет интернетаСделайте«У политики xkeen нет доступа в интернет»
Почему. В политике нет галки на подключении к провайдеру.
XKeen не запускается и пишет про модули ядраСделайте
Почему. Нет компонента Netfilter.
Роутер подключён через мобильный интернет, и VPN не работаетСделайте
Почему. Известная особенность XKeen.
xkeen -pr off, затем xkeen -dgips.Через несколько часов или дней пропадает интернет, а xkeen -status в порядкеСделайте
Почему. VPN-программа исчерпала лимит открытых соединений (по FAQ автора XKeen).
xkeen -fd on и перезагрузите роутер.Соединения рвутся или не устанавливаютсяСделайте
Почему. Неверное время на роутере.
date. Если время неверное, включите синхронизацию времени в настройках роутера.Пропал интернет у всехСделайте
xkeen -stop (аварийная кнопка), затем напишите нам.Установка остановилась с ошибкой
23 сообщения
Ошибки установщика начинаются с «ОШИБКА:», предупреждения — с «ВНИМАНИЕ:».
Установщик не скачалсяСделайтеПосле команды установки из шага 5 вывелась только ошибка curl: или ничего не произошло
Почему. Нет интернета, неверная дата на роутере или временный сбой.
date), повторите через несколько минут.Keenetic просит токен доступаСделайте«Ошибка: Отсутствует или недействителен токен доступа к RCI» (от XKeen) или «KeeneticOS 5.2+: нет рабочего токена RCI для XKeen…» (от нашего скрипта)
Почему. На KeeneticOS 5.2 и новее XKeen нужен токен доступа, а его нет или он неверный.
xkeen -i.Вы вошли не под rootСделайте«запускать от root»
XKeen не установленСделайте«XKeen не установлен. Сначала установите XKeen с ядром Mihomo (см. инструкцию).»
Не хватает программы curlСделайте«нет curl: opkg install curl»
opkg install curl и повторите.Не хватает планировщикаСделайте«нет команды crontab — без неё автообновление не поставить…»
Почему. XKeen не настроил планировщик заданий.
Mihomo не установленСделайте«ядро Mihomo не установлено. Выполните: xkeen -um (версия не ниже v1.19.27)»
Почему. VPN-программу не выбрали при установке XKeen.
xkeen -um, версия не ниже v1.19.27.XKeen установлен не полностьюСделайте«не найден init-скрипт XKeen (/opt/etc/init.d/S05xkeen) — переустановите XKeen»
Mihomo слишком старый или тестовыйСделайте«ОШИБКА: ядро mihomo v… старее v1.19.27: на нём пустые группы уходят мимо VPN…» или «не удалось узнать версию mihomo (alpha-сборки не поддерживаются)…»
xkeen -um, выберите версию не ниже v1.19.27, затем повторите установку.Сломалась утилита yqСделайте«ОШИБКА: yq (/opt/sbin/yq) не прошёл самотест: …»
xkeen -uy, затем повторите установку. Не помогло — приложите к сообщению вывод /opt/sbin/yq --version.Не подошла VPN-программа или yqСделайте«самотест не пройден — строкой выше сказано, что именно…»
xkeen -um (не ниже v1.19.27), про yq — xkeen -uy.Роутеру не хватает памятиСделайте«у роутера … МБ памяти — для Mihomo мало. Используйте способ с ядром Xray из инструкции.»
Почему. Модель со 128 МБ.
Памяти впритык, но можно продолжатьМожно продолжать«ВНИМАНИЕ: памяти … МБ: Mihomo заработает, но под нагрузкой возможны перезапуски»
Почему. Модель с 256 МБ.
Мало места на флешкеСделайте«ВНИМАНИЕ: на /opt свободно … МБ: XKeen требует для обновления ядра (xkeen -um) от 70 МБ…»
Провайдер выдаёт IPv6Сделайте«в домашней сети включён IPv6 от провайдера…»
Ссылка вставилась не целикомСделайте«ссылка подписки не введена», «ссылка должна начинаться с https://» или «в ссылке есть пробел или спецсимвол — скопируйте её заново»
Нет связи с нашим сайтомСделайте«не удалось скачать обновлятор (…) — проверьте интернет и повторите»
Скачался не тот файлСделайте«обновлятор повреждён (ошибка синтаксиса) — повторите позже» или «обновлятор не той версии — повторите позже»
Настройки не загрузились, но скрипт повторит самСделайте«Первый прогон не удался. Подробности:», затем «ВНИМАНИЕ: причина временная — автообновление ставлю, оно повторит само» и в конце «Автообновление поставлено, но первый прогон не удался (причина выше).»
Почему. Подписка неактивна, заняты все места или временный сбой.
xkeen -start до устранения причины не выполняйте.Настройки не загрузились — исправьте и запустите сноваСделайте«Первый прогон не удался…», затем «ОШИБКА: разберитесь с причиной и запустите снова: sh /opt/etc/undervpn/install.sh»
Не записалось расписаниеНапишите нам«не удалось записать расписание cron (…) — автообновление НЕ поставлено…» или «задания cron не записались (…)»
crontab -l и приложите вывод к сообщению.Не запущен планировщикСделайте«ВНИМАНИЕ: планировщик cron не запущен — автообновление и сторож не сработают…»
/opt/etc/init.d/S05crond startpidof crond (должно быть число). Файла нет — напишите нам.Не сохранилась копия установщикаМожно продолжать«ВНИМАНИЕ: не удалось сохранить копию установщика — для удаления понадобится интернет»
Почему. Временный сбой связи.
Ошибка в журнале обновлений
30 сообщений
Журнал:
tail -n 20 /opt/var/log/undervpn-xkeen.logПеред каждой строкой стоят дата и время. Ошибки помечены «ОШИБКА:», предупреждения — «ВНИМАНИЕ:», остальное — обычные сообщения.
Не скачались настройки
Подписка закончилась или заняты все местаСделайте«подписка неактивна или достигнут лимит устройств — проверьте срок подписки и список устройств в личном кабинете; конфиг не тронут» (иногда с «(срок подписки: …)»)
/opt/etc/undervpn/update-config.shxkeen -stop.Заняты все места в подпискеСделайте«достигнут лимит устройств подписки — удалите лишнее устройство в личном кабинете (роутер = 1 устройство). Конфиг не тронут»
Ссылку сбросили или подписку удалилиСделайте«ссылка подписки недействительна (сброшена в личном кабинете или подписка удалена)…»
sh /opt/etc/undervpn/install.shcurl — выполните её.Вставлена не та ссылкаСделайте«сервер отказал в доступе (HTTP 401) — проверьте ссылку подписки» (или 403), «ссылка ведёт на перенаправление (HTTP 3xx)…», «по ссылке пришла веб-страница, а не подписка…»
Почему. Скопирована не ссылка подписки или не целиком.
sh /opt/etc/undervpn/install.shРоутер не достучался до сервера подпискиСамо пройдёт«нет связи с сервером подписки (…) — повтор при следующем прогоне.»
Почему. Нет интернета у роутера.
xkeen -stop), затем запустите обновление вручную.Сервер подписки занятСамо пройдёт«сервер подписки временно недоступен (HTTP …) — повтор при следующем прогоне» или «сервер просит подождать (HTTP 429)…»
Почему. Временный сбой на нашей стороне.
Сервер ответил пустотойСамо пройдёт«сервер вернул пустой ответ. Конфиг не тронут»
Почему. Временный сбой.
Сервер не узнал роутерНапишите нам«сервер не принял идентификатор устройства и отдал заглушку…», «сервер отдал не профиль Mihomo…», «в ответе нет узлов…», «неожиданный ответ сервера (HTTP …)»
Новые настройки не применились
Новые настройки не прошли проверкуНапишите нам«конфиг не прошёл проверку ядром (mihomo -t) — старый оставлен»
Почему. Новые настройки не подошли VPN-программе.
Новые настройки не запустились — роутер вернул прежниеНапишите нам«ядро не поднялось на новом конфиге (…) — вернул предыдущий конфиг, ядро работает на нём»
Роутер пропускает настройки, которые уже ломали VPNСделайте«с сервера пришёл тот же конфиг, что меньше суток назад уронил ядро и был откачен, — не применяю…»
Почему. Скрипт помнит неудачные настройки.
/opt/etc/undervpn/update-config.sh --forceVPN выключен: не запустились ни новые, ни прежние настройкиНапишите нам«… — откат на предыдущий конфиг тоже не поднял ядро (…). XKeen остановлен: интернет идёт напрямую, без VPN…» или «… — предыдущего конфига нет, откатить некуда. XKeen остановлен…»
xkeen -start.VPN не запустился, и XKeen не выключился до концаСделайте«… тоже не поднял ядро (…). Снять перехват XKeen не удалось — у устройств может не быть интернета…», «… XKeen занят другой своей командой и не остановился…» или «… XKeen не остановился: ядро снова запущено…»
xkeen -status. В остальных случаях, если у устройств нет интернета, перезагрузите роутер и напишите нам.Ошибка в вашем файле undervpn-mixin.yamlСделайте«миксин не применился: …», «после миксина: … — конфиг не тронут» или «ВНИМАНИЕ: /opt/etc/undervpn/undervpn-mixin.yaml пуст или не словарь — пропущен»
Роутер сам перезапускал VPN
VPN-программа упала — роутер сам её перезапустилСамо пройдёт«ОШИБКА: ядро mihomo упало, а перехват XKeen остался…», затем «сторож: XKeen перезапущен, ядро работает…»
VPN перезапущен, но отвечает не так, как нужноСделайте«ВНИМАНИЕ: сторож: XKeen перезапущен, ядро живо, но … — не останавливаю. Проверьте: xkeen -status; повторяется — напишите в поддержку»
Почему. VPN-программа запустилась, но не ответила за 90 секунд, или XKeen не в режиме Hybrid.
xkeen -status: нужен режим Hybrid.Новые настройки роняли VPN — роутер вернул прежниеСамо пройдёт«ВНИМАНИЕ: сторож: ядро падало на новом конфиге — вернул предыдущий, ядро работает на нём. Повторяется — напишите в поддержку»
Почему. Роутер вернул прежние настройки, а новые сутки не применяет.
VPN выключен: он падал снова и сноваНапишите нам«ядро падает, VPN выключен, интернет идёт напрямую — напишите в поддержку. Включить снова: xkeen -start» (перед ней может быть «XKeen остановлен, но его перехват остался в iptables (ядро уже не работало) — снимаю сам»)
xkeen -start.Нет интернета: VPN упал, а в XKeen включён kill-switchНапишите нам«ядро падает, перезапуск не помог. Kill-switch XKeen включён: у устройств в политике XKeen интернета нет до xkeen -start…» или строка об откате, которая кончается на «Kill-switch XKeen включён: у устройств в политике XKeen интернета нет до xkeen -start.»
Почему. Kill-switch XKeen при падении VPN оставляет устройства без интернета, чтобы трафик не ушёл мимо VPN. Наш скрипт его не снимает: это ваш выбор в настройках XKeen.
xkeen -start.VPN не поднимается, и выключить XKeen до конца не вышлоСделайте«ядро падает, перезапуск не помог. Снять перехват XKeen не удалось…», «… XKeen занят другой своей командой и не остановился…» или «… XKeen не остановился: ядро снова запущено…»
xkeen -status. В остальных случаях, если у устройств нет интернета, перезагрузите роутер и напишите нам.XKeen не принял токен доступаСделайтеСтрока сторожа заканчивается на «(xkeen -restart завершился ошибкой; на KeeneticOS 5.2+ проверьте токен RCI в /opt/etc/xkeen/xkeen.json)»
xkeen -start.Не хватает программ или файлов
Mihomo старый, тестовый или удалёнСделайте«ядро mihomo v… старее v1.19.27…», «нет /opt/sbin/mihomo — выполните xkeen -um» или «не удалось узнать версию mihomo…»
xkeen -um, версия не ниже v1.19.27.Сломалась утилита yqСделайте«yq не прошёл самотест (…) — выполните xkeen -uy»
xkeen -uy. Не помогло — приложите к сообщению вывод /opt/sbin/yq --version.Испорчен файл настроек роутераСделайте«нет /opt/etc/undervpn/undervpn.env…» или «в /opt/etc/undervpn/undervpn.env … — запустите установщик заново»
sh /opt/etc/undervpn/install.shОбновление прервалось на серединеСделайте«прогон прерван (код …, шаг «…»)»
/opt/etc/undervpn/update-config.shНе ошибка, но стоит знать
VPN выключен — новые настройки заработают при включенииСделайте«ядро не запущено (xkeen -stop?) — конфиг заменён, применится при xkeen -start…»
xkeen -start.XKeen переключён на XrayСделайте«конфиг обновлён, но XKeen работает на ядре «xray» — выполните xkeen -mihomo, затем xkeen -start» или та же подсказка после «без изменений…»
xkeen -mihomo, затем xkeen -start.В сети появился IPv6Сделайте«ВНИМАНИЕ: в домашней сети глобальный IPv6, а XKeen его перехватывает…»
xkeen -ipv6 off.Обычная работа роутераСамо пройдёт«уже идёт другой прогон — пропуск», «порты перехвата изменились -> полный рестарт XKeen…», «горячее применение вернуло … -> полный рестарт», «применён миксин владельца…»
Другая ошибкаНапишите намЛюбая другая строка с «ОШИБКА:»
Шаг 10. Выключить VPN или удалить всё
Выключить VPN на время. Интернет пойдёт напрямую. Автообновление продолжит тихо обновлять файл, автопроверка не вмешивается:
xkeen -stopЭто до перезагрузки роутера. Чтобы XKeen не включился сам после перезагрузки:
xkeen -auto offВключить обратно:
xkeen -auto on
xkeen -startОтдаёте роутер или флешку — сбросьте ссылку подписки
Сбросьте её в личном кабинете: в /opt/etc/mihomo/config.yaml остаются ключи вашей подписки, даже после удаления автообновления.
Убрать автообновление или стереть всё наше целиком
Выберите одну из двух команд.
Оставить текущие настройки. XKeen продолжит работать на них, но без обновлений:
sh /opt/etc/undervpn/install.sh --uninstallВернуть настройки, которые были до нас:
sh /opt/etc/undervpn/install.sh --uninstall --restoreЕсли XKeen вы ставили по этой инструкции, «до нас» — это пустой шаблон XKeen без серверов: VPN на нём работать не будет. После этой команды выключите XKeen (xkeen -stop и xkeen -auto off) или удалите его целиком (ниже).
Удалится
- расписание и автопроверка;
- скрипт обновления;
- ссылка подписки и секрет роутера;
- номер роутера — файл на флешке (место в подписке при этом не освобождается);
- журнал;
config.yaml.bakи временные файлы.
Останется
- копия исходных настроек
config.yaml.pre-undervpnв каталоге/opt/etc/undervpn/; - ваш
undervpn-mixin.yaml, если вы его создавали.
Скрипт напишет, что именно оставил. Если в этот момент идёт обновление подписки, скрипт напишет «идёт обновление подписки — жду, пока закончится (до 5 минут)…» и дождётся его.
Если вы уже выполнили первую команду, а потом решили вернуть прежние настройки, выполните вторую: копия установщика для этого сохраняется. Или вручную:
cp /opt/etc/undervpn/config.yaml.pre-undervpn /opt/etc/mihomo/config.yaml && xkeen -restartСтереть всё наше целиком, вместе с копией исходных настроек и вашим миксином:
sh /opt/etc/undervpn/install.sh --purgeСкрипт спросит подтверждение: введите yes и нажмите Enter.
Место в подписке. Любая из команд выше стирает номер роутера на флешке, а место в подписке остаётся занятым — освободите его в личном кабинете. Если потом поставите автообновление снова, роутер получит новый номер и займёт новое место в лимите устройств.
Удалить XKeen целиком
Сначала уберите автообновление.
Командой
sh /opt/etc/undervpn/install.sh --uninstall(спойлер выше): XKeen при удалении наше расписание не снимает.Удалите XKeen и на оба вопроса ответьте 1.
xkeen -removeПервый вопрос подтверждает удаление: XKeen удалит себя вместе с Mihomo и каталогом
/opt/etc/mihomo. Второй — «Удалить резервные копии и пользовательские настройки?»: он стирает/opt/backups(копии настроек с ключами) и/opt/etc/xkeen(в нём токен доступа). Entware останется.Сотрите наш каталог.
XKeen его не трогает, а в нём остаются копии настроек:
rm -rf /opt/etc/undervpn
После удаления:
- если создавали политику
xkeen, удалите её или верните устройства в «Политику по умолчанию»; - если выключали IPv6 и он вам нужен, верните «Параметры IPv6» у подключения к провайдеру и перезагрузите роутер;
- токен доступа для XKeen больше не нужен, его можно удалить на вкладке «Токены доступа».
Не получилось — напишите нам
Поможем разобраться. Чтобы не гонять вопросы туда-сюда, сразу приложите к сообщению то, что ниже.
Что приложить к сообщению
Модель роутера (индекс KN-), версию KeeneticOS и вывод этих команд:
xkeen -v
xkeen -status
xkeen -tp
cat /opt/etc/undervpn/undervpn.state
tail -n 30 /opt/var/log/undervpn-xkeen.log
sh /opt/etc/undervpn/update-config.sh --selftestПрисылайте только вывод этих команд, а не всю сессию SSH целиком: выше в окне могут остаться ваша ссылка подписки (установщик показывает её после «>») и токен доступа. В журнал наш скрипт не пишет ни ссылку подписки, ни номер роутера, ни секрет.
Не присылайте никому, даже поддержке
- ссылку подписки — ни текстом, ни скриншотом;
- файл
/opt/etc/undervpn/undervpn.env— в нём ссылка подписки и секрет роутера; /opt/etc/mihomo/config.yamlи копии в/opt/etc/undervpn/(config.yaml.bak,config.yaml.pre-undervpn) — в них ключи вашей подписки;/opt/etc/xkeen/xkeen.jsonи/opt/etc/ndm/netfilter.d/proxy.sh— в них токен доступа с правами администратора роутера;- каталог
/opt/backups— туда XKeen кладёт копии настроек с ключами; - файл
/tmp/undervpn/last-response— это сырой ответ сервера с вашими ключами (он остаётся только после ошибки); - отчёт
xkeen -diagбез просьбы поддержки: он скрывает ключи не во всех строках.
Источники и документация
Сверено 4 октября 2026 года по документации и исходникам. Названия меню зависят от модели и версии ОС. Испытание всей установки на физическом роутере в рамках этой проверки не выполнялось.
- XKeen: модели роутеров и архитектуры Entware.
- XKeen: порядок установки, версии ОС и ветка Beta.
- XKeen: xkeen.json и токен доступа RCI.
- XKeen: режимы перехвата, включая Hybrid.
- Netcraze: резервная копия startup-config.
- Netcraze: форматирование USB-накопителя.
- Netcraze: установка Entware и журнал с портом SSH.
- Netcraze: шифрованный DNS.
- Mihomo: входящие подключения и порты и релиз v1.19.27.
- Скрипты UnderVPN: установщик и обновление подписки. Их можно скачать для просмотра; команды запуска приведены в шагах выше.