Ошибка запуска ядра EOF в Happ: что это и как поднять профиль
В метро на Android нажал Connect — вместо туннеля красная плашка: ошибка запуска ядра EOF. Иконка VPN в шторке даже не появилась, мессенджер ходит напрямую, а в логе Happ одна строка про unexpected EOF. На happcore.wiki разберём, что EOF в ядре Xray значит «поток или конфиг оборвался на полуслове», а не «клиент умер навсегда». Дальше — как отличить обрезанный профиль от битого geo-файла и что делать, не качая dat с форумов.
EOF — обрыв чтения, а не секретный код
Ядро Happ — это Xray. Оно читает JSON профиля, inbound/outbound и geo-файлы, затем поднимает туннель. EOF (end of file) появляется, когда чтение оборвалось раньше, чем парсер ждал конец объекта: обрезали subscription, не докачали dat, служба закрыла поток на старте.
Поэтому лечить EOF «другим APK с волшебным ядром» бессмысленно. Текст ошибки описывает обрыв данных, а не сломанный бренд клиента. Пока на устройство не попадёт цельный профиль и цельные geo-файлы той же сборки, Connect будет падать на том же месте.
На телефоне обрыв чаще всего рождается в буфере: ссылку скопировали из чата с переносом строки, QR дочитали наполовину, импорт оборвался при слабом LTE. На ПК ту же букву даёт упавшая служба или антивирус, который режет процесс Xray на старте — это соседняя история про daemon на Windows.
- Ядро
- Xray внутри Happ
- EOF
- Поток или файл оборвались при чтении
- Не EOF
- Таймаут узла после удачного старта
- Фикс
- Официальный клиент + свежий профиль
Что ядро не успело дочитать
Первый кандидат — сам профиль. Если inbound пустой или JSON обрезан после первой скобки, Xray падает на старте и Happ показывает EOF. Признак: список серверов странный, карточка профиля есть, а Connect сразу красный. Разбор пустого inbound — в статье про пустую строку Xray.
Второй кандидат — geoip.dat / geosite.dat. Ядро открывает файл, ждёт справочник стран и доменов, а получает обрезок после неудачной загрузки. Тогда EOF всплывает ещё до рукопожатия с сервером. Не путайте с более точным текстом «нет секции ru» — его разбираем отдельно.
Третий — сетевой поток подписки. Клиент тянет URL, соединение рвётся, на диск садится половинка. Следующий Connect читает этот обрезок и честно пишет EOF. Pull «ещё раз» поверх того же битого кэша не всегда помогает: профиль лучше удалить и импортировать заново.
Симптом → куда смотреть первым
Одна буква EOF скрывает несколько развилок. Таблица ниже отделяет обрезанный ключ от службы Windows и от geo. Не чините все слои сразу: один слой за попытку, иначе не понять, что сработало.
Если ошибка только на телефоне, а на ПК тот же аккаунт поднимается — не копируйте ключ между устройствами. Слот и профиль на каждое устройство свои. Сравнение платформ — в материале про EOF на ПК и телефоне.
Если ошибка только после сна ноутбука и служба Happ в Windows «остановлена», это уже не «магия ядра», а демон. Сначала служба и исключения антивируса, потом повторный импорт.
| Симптом | Что оборвалось | Первый шаг |
|---|---|---|
| EOF сразу после Connect | Профиль / JSON | Новый профиль из бота, полный импорт |
| EOF после обновления списка | Поток подписки | Удалить профиль, вставить URL целиком |
| EOF + нет секции RU | Geo-файл | Официальный клиент, не dat с форума |
| EOF только на Windows | Служба / антивирус | Демон, затем повторный импорт |
| Список есть, Connect серый | Ничего не выбрано | Выбрать узел в списке |
Как поднять профиль без «лечения» dat
Поставьте Happ из официального источника той же ветки, которой пользуетесь. Сборка с форума часто тащит чужие geo-файлы и обрезанный core — EOF на таком клиенте воспроизводится даже на свежем ключе.
В боте Nasa VPN запросите свежий профиль именно для этого устройства. Старую карточку в Happ удалите: битый кэш подписки иначе снова сядет на диск. Импортируйте QR или URL одним действием, дождитесь появления списка узлов.
Перед деталями имеет смысл освежить Ошибка запуска ядра EOF на happcore.wiki — дальше только нюансы вашей ситуации.
Выберите конкретный сервер. Если после импорта активной конфигурации нет, ядро стартует вхолостую — это уже формулировка «ни одна конфигурация не выбрана», её легко спутать с EOF.
Нажмите Connect. Если ядро поднялось, проверьте, что нужный сайт открывается. Смена внешнего адреса здесь вторична: сначала должен исчезнуть EOF, потом уже смотрите маршрут.
- Официальный Happ, не сборка с форума
- Удалить старый профиль с подозрением на обрезок
- Свежий профиль в боте Nasa VPN под это устройство
- Импорт целиком (QR или URL без переносов)
- Выбрать узел и нажать Connect
Как выглядит обрезанный профиль на практике
Цельный профиль после импорта даёт карточку с несколькими узлами, нормальными именами и возможностью выбрать сервер. Обрезок выглядит иначе: одно странное имя, пустые поля, мгновенный EOF без запроса системного VPN. Если видите вторую картину — не жмите Connect пачкой, удаляйте карточку.
В буфере обмена ссылка должна начинаться ожидаемым префиксом подписки или одиночного узла и не содержать пробела посередине. Мессенджеры любят разбить строку на две. Happ склеивает их криво или берёт только первую половину — Xray дочитывает файл до конца и ставит EOF.
QR, снятый фотографией с бликом, даёт тот же класс обрыва: часть параметров не распозналась, клиент всё равно создал «профиль». Визуально импорт «успешен», ядро падает. Переснимите код с экрана бота Nasa VPN, не с сжатого превью в галерее.
На слабом LTE импорт иногда сохраняет карточку до конца загрузки списка. Прерванный pull — двоюродный брат обрезанного QR. Дождитесь, пока имена узлов перестанут прибывать, и только потом Connect. Если прогресс оборвался — удаление и повтор, не «ещё раз обновить» поверх обрезка.
Проверка на двух сетях здесь уместна точечно: если на LTE импорт полный, а на кафе-Wi‑Fi всегда EOF, виноват портал или фильтрация, а не «ядро Happ». Сначала закончите импорт там, где строка доезжает целиком, затем уже пользуйтесь любой сетью.
Если EOF возвращается на следующий день
Повторяющийся EOF после «удачного вечера» часто значит, что подписка снова докачивается кусками: нестабильный Wi‑Fi, captive portal, второй VPN в фоне. На время обновления профиля выключите лишний туннель и обновите список на LTE.
На Android проверьте, не режет ли экономия батареи процесс Happ в момент pull. Если система убивает приложение на полузаписи, на диске снова окажется обрезок — и утром вы снова увидите EOF.
Не храните десять копий одного URL в клиенте. Дубликаты путают выбор и повышают шанс ткнуть в старую битую карточку. Оставьте одну актуальную, остальное удалите.
Когда на руках точный текст лога, версия Happ и сеть (метро / дом / LTE), поддержке проще отличить обрыв конфига от обрыва geo. Семейство соседних ошибок ядра собрано в обзоре запуска ядра Happ.