Что такое ядро и зачем оно
Ядро — самая непонятная часть системы для тех, кто просто нажимает кнопку. При этом именно оно делает всю работу, и именно на него приходится львиная доля сообщений об ошибках.
Двигатель под капотом. Приборная панель показывает скорость, но едет машина не из-за панели.
Самостоятельная программа внутри клиента, которая устанавливает соединение с сервером, шифрует трафик, применяет правила маршрутизации и передаёт данные по выбранному протоколу.
В приложениях этого семейства ядро — проект Xray. Оно одно и то же в разных клиентах, поэтому и ошибки у пользователей разных программ одинаковые.
Почему ядро вынесли отдельно
Потому что задачи разные. Интерфейс должен быть удобным и родным для каждой системы: на Android он один, на Windows другой, на iPhone третий. А работа с сетью и криптографией должна быть одинаковой везде — иначе один и тот же сервер вёл бы себя по-разному на разных устройствах.
Разделение даёт три следствия, которые вы замечаете каждый день: одна ссылка работает в разных программах (почему), обновление ядра меняет поведение без обновления приложения (версии ядра), а часть ошибок формулируется языком ядра, а не приложения.
Что ядро делает и чего не делает
| Делает | Не делает |
|---|---|
| Устанавливает соединение с сервером | Не решает, действует ли ваш доступ |
| Шифрует и распаковывает трафик | Не скачивает список серверов |
| Применяет правила маршрутизации | Не рисует интерфейс и не хранит подписки |
| Разрешает имена по заданным адресам | Не выбирает сервер за вас |
| Сообщает о своих ошибках | Не чинит сеть между вами и сервером |
Страницы раздела
- C02 Xray простыми словамиЧто это за проект и почему он оказался внутри вашего приложения открыть →
- C03 Чем ядро отличается от приложенияГраница ответственности между оболочкой и мотором открыть →
- C04 Почему ошибки часто именно в ядреЯдро — единственная часть, которая имеет дело с внешним миром открыть →
- C05 Версии ядра: что меняетсяПочему одна и та же ссылка работает не во всех сборках открыть →
- C06 Как ядро читает конфигурациюЧто приложение передаёт ядру и в каком виде открыть →
- C07 Что происходит при стартеПять этапов запуска и где он обрывается открыть →
- C08 Когда ядро ни при чёмСимптомы, которые выглядят как сбой ядра, но им не являются открыть →
Проверьте узел «Доступ» отдельно от остальных
Понять, какая часть схемы отказала, проще всего подстановкой: вставьте в тот же клиент другую, заведомо живую ссылку-подписку. Заработало — приложение, ядро и устройство исправны, вопрос был к доступу. Не заработало — причина выше по схеме, и разбор на этой странице остаётся в силе. Ссылка Happ Plus на 3 дня выдаётся без карты.
- ссылка приходит сразу
- карта не нужна
- проверка занимает две минуты
Мне нужно что-то делать с ядром?
Обычно нет. Оно устанавливается вместе с приложением, запускается автоматически и обновляется вместе с ним. Знать о его существовании полезно только для того, чтобы понимать сообщения об ошибках.
Можно ли поменять ядро на другое?
В некоторых клиентах есть выбор версии ядра или альтернативной реализации. Это редко нужно: смена помогает в узких случаях совместимости, а обычные проблемы лежат не здесь.
Ядро — это то же самое, что VPN-протокол?
Нет. Ядро — программа, протокол — правила, по которым она разговаривает с сервером. Одно ядро умеет несколько протоколов, см. раздел протоколы.
Схема наверху держится на одном узле, который нельзя починить настройками: серверы приходят из подписки. Есть живой доступ — приложению есть что показать, ядру есть что запустить. Нет — интерфейс исправен, а список пуст. Доступ Happ Plus закрывает этот узел: одна ссылка на все устройства, серверы обновляются сами, первые 3 дня бесплатно и без карты.
Оформить доступ →