Откуда в пустой программе берутся серверы
от 169 ₽ за доступ; 198 ₽ в месяц на самом длинном сроке, 4 устройства на один ключ
Их приносит подписка. Подписка — это адрес, по которому программа сама ходит и забирает список серверов, а вместе с ним имя, срок и остаток трафика. Пока адрес не вложен, подключаться некуда: своих серверов у приложения нет, и разработчик прямо пишет, что их не предоставляет.
Ниже — пять способов вложить этот адрес, четыре вида содержимого, которое по нему приходит, и разбор зашифрованной ссылки incy://crypt1/….
Что такое подписка и почему без неё пусто
Подписка — это ссылка от того, у кого вы взяли доступ. Программа опрашивает её и обновляет по ней список серверов. Всё остальное в приложении — оболочка вокруг этого списка.
- Пустой экран после первого запуска — норма, а не сбой. В обоих магазинах приложение описано одинаково: оно работает с конфигурациями и подписками, которые пользователь добавляет сам.
- Адрес подписки берут у того, кто продал доступ. Программа его не выдаёт и выдать не может. Если брать пока не у кого, наш доступ с ценами и сроками — на листе покупки: приходит такой же ссылкой и вкладывается тем же способом.
- Серверов у разработчика нет. На его же странице проекта сказано прямо: VPN-серверы он не предоставляет, за них отвечает владелец подписки. В карточках магазинов та же строка своими словами.
- Адрес вкладывается пятью способами — ссылкой, QR-кодом, готовой share-строкой, командой схемы
incy://и зашифрованным вариантом той же команды. - Список обновляется сам. Как часто — решает не приложение, а тот, кто выдал подписку: он присылает интервал в часах.
- Вместе с серверами приезжает подпись карточки — имя, описание, срок, счётчик трафика и объявление продавца. Это данные из подписки, а не собственные сообщения программы.
Как устроен ответ подписки
Слева — программа сразу после запуска. Справа — то, что вы видите в списке. Между ними всего один запрос по адресу.
Как адрес подписки попадает в программу
Пятью способами — и все они кладут внутрь один и тот же адрес. Разница только в том, чем вы его переносите: буфером обмена, камерой или нажатием на ссылку.
- Ссылка-URL. Обычный веб-адрес. Программа опрашивает его и перечитывает по расписанию — это и называется автообновлением подписки.
- QR-код. Для него нужна камера. На Android доступ к камере приложение просит именно ради этого и обходится без неё, если камеры нет.
- Share-ссылка. Готовая строка с сервером или набором серверов, которой делятся в переписке.
- Команда схемы
incy://.incy://add/{адрес}добавляет подписку по адресу.incy://import/{данные}принимает данные как есть и сам определяет, что ему дали, — вплоть до целого файла настроек WireGuard или AmneziaWG, в том числе закодированного. - Зашифрованная команда
incy://crypt1/…— тот жеadd, только нечитаемый снаружи. Разбор — ниже на этой странице.
Почему ссылка сервера из переписки открывается сразу в приложении
Потому что на Android программа объявляет себя обработчиком пяти схем сразу: incy, vless, vmess, trojan и ss. Система знает, кому отдавать такие ссылки, и предлагает открыть их именно здесь.
Схема умеет не только импорт: у неё есть и команды управления — connect, open, disconnect, close, toggle, status. Их обычно используют не руками, а из ярлыков и сценариев автоматизации.
Что именно лежит по адресу подписки
Один из четырёх видов содержимого. Программа принимает любой, поэтому «непонятная каша по ссылке» — обычно не поломка.
- Закодированный столбик. Те же ссылки серверов, только переведённые в сплошную строку из букв и цифр — это делают, чтобы ничего не потерялось по дороге. Программа понимает оба принятых способа такой записи.
- Открытые ссылки построчно. То же самое, но без кодирования: каждую строку видно глазами.
- Готовые настройки целиком. Не перечень серверов, а полное описание того, как программе работать. Оно принимается целиком — вместе с распределением нагрузки, проверкой доступности серверов и своими списками адресов.
- Смешанный вид. Часть строк открытая, часть закодированная — в одном и том же ответе.
Зачем это знать обычному человеку
Затем, что адрес подписки можно просто открыть в браузере и посмотреть своими глазами. Сплошная стена букв и цифр без пробелов — это нормально, так выглядит закодированный список. А вот пустая страница, форма входа или сообщение об ошибке означают, что программе брать оттуда нечего, и вопрос тут к тому, кто выдал ссылку.
И ещё одно: список серверов в теле мог приехать целиком, а появиться в программе не полностью. Это отдельный сюжет, и он про формат самих ссылок — разобран на листе что программа понимает в ссылке на сервер.
Что подписка сообщает приложению, кроме серверов
Левая колонка — то, что видит человек. Правая — как это называется у того, кто подписку выдаёт. Полезно, если вы сверяете свою карточку с обещаниями продавца.
| Что видно в приложении | Чем это прислано | Уточнение |
|---|---|---|
| Название подписки в списке | profile-title | не длиннее 25 символов; если его нет, имя ищется в subscription-name и content-disposition |
| Строка описания под названием | profile-description | свободный текст от продавца |
| Сколько осталось дней и гигабайт | subscription-userinfo | четыре числа: upload, download, total, expire |
| Сообщение от продавца в карточке | announce и announce-url | текст объявления — до 200 символов |
| Список сам освежается | profile-update-interval | интервал задаётся в часах |
| Кнопки поддержки и сайта | support-url, support-email, profile-web-page-url | контакты продавца, а не разработчика программы |
| Порядок серверов и оформление карточки | sort-order, группа banner-*, premium-url | оформлением распоряжается тот, кто выдал подписку |
| Правила маршрутов приехали вместе с доступом | autorouting и routing | разбор — на листе маршрутизация |
Откуда программа берёт эти данные и что с ними делает
Из двух мест сразу: из заголовков HTTP-ответа и из строк тела, начинающихся с #. Если одно и то же сказано и там и там, побеждает заголовок.
- Имя, описание и объявление могут приехать закодированными — тогда перед текстом стоит служебная пометка. Так провозят русские буквы там, где иначе они превратились бы в кашу. Ничего это не скрывает и защитой не является.
- Срок приходит числом. Это секунды Unix. Если число больше 32 000 000 000, оно считается миллисекундами — так подписки на разных панелях не путают единицы.
- Отдельный баннер показывают не всем. Он появляется только у тех, у кого до конца подписки осталось три дня или меньше.
- Адрес подписки может смениться сам. У продавца есть флаг «нужна синхронизация» и поле с новым доменом: программа перепишет адрес подписки у себя, ничего не спрашивая.
Сообщение «ключ перенесли на другой сервер» — это не ошибка программы
Это объявление продавца, доставленное через подписку тем самым полем announce. Программа только показывает присланный текст. По той же причине не стоит нести такие сообщения разработчику приложения: он их не писал.
Дословные строки, которые люди принимают за ошибки приложения, собраны отдельно — лист про ошибки.
Что означает ссылка incy://crypt1/…
Это обычная команда «добавь подписку», только зашифрованная. Получившаяся строка не похожа на адрес VPN-подписки, и смысл у этого ровно один: чтобы ссылку не опознали автоматические фильтры мессенджера.
- Что внутри. После расшифровки — всего три вещи: сам адрес подписки, номер версии формата и необязательное имя продавца, которое программа покажет в окне «добавить подписку?».
- Кто такие ссылки собирает. Продавец доступа. У разработчика для этого есть страница
incy.cc/encrypt— она шифрует ссылку прямо в браузере, ничего никуда не отправляя, — и открытый инструмент для тех, кто делает это у себя на сервере. - Что будет, если ключ утечёт. Разработчик обещает следующую версию таких ссылок, а старые продолжат открываться: поддержку прежних вариантов он не убирает.
crypt1 — это маскировка, а не защита
Так это называет сама документация разработчика: маскировка, а не настоящее шифрование. Ключ у всех один, лежит внутри самого приложения и вдобавок выложен в открытый доступ; достать его из программы, по оценке той же документации, — примерно час работы.
Практический вывод: crypt1 прячет ссылку от автоматических фильтров, но не от человека, который решит её прочитать. Считать такую ссылку секретной и пересылать её кому попало — ошибка.
Программа на месте, а вкладывать нечего
Без подписки приложение не делает ничего: ни один пункт этой страницы не сработает, потому что подключаться ему некуда. Заодно рабочая подписка — самый быстрый способ разделить два разных вопроса: вложите её в ту же программу, и если список серверов появился и подключение пошло, приложение исправно, а разбираться надо было с прежней ссылкой.
Частые вопросы про подписку
Программа пустая — я что-то сделал не так?
Нет. Серверов внутри не бывает изначально: приложение бесплатное и рассчитано на то, что доступ вы приносите сами. Пустой список до добавления подписки — штатное состояние.
Ключ и подписка — это одно и то же?
Обычно да: «ключом» продавцы называют ту самую ссылку. Формально приложение различает две вещи — адрес подписки, который оно перечитывает по расписанию, и одиночную ссылку сервера, которая просто добавляется в список и сама не обновляется.
Обязательно ли вводить длинный адрес руками?
Нет. Тот же адрес переносится QR-кодом через камеру или ссылкой incy://add/…, по которой достаточно нажать. Ручной ввод — самый неудобный из пяти способов.
Кто решает, как часто обновляется список серверов?
Тот, кто выдал подписку: интервал приезжает в её заголовках и считается в часах. Приложение этот интервал исполняет, а не выбирает.
Можно ли прислать программе готовые настройки целиком, а не список серверов?
Да. По адресу подписки может лежать не перечень серверов, а полное описание того, как программе работать. Оно принимается целиком — вместе с распределением нагрузки, проверкой доступности серверов и своими списками адресов.
Сколько устройств можно подключить по одной подписке?
Это условие продавца, а не программы. В документации разработчика описан только тарифный лимит для провайдера; правила «одна ссылка — столько-то устройств» приложение не устанавливает. Разбор — на листе про лимит устройств.
Куда дальше
Страница ответила на ваш вопрос?
Спасибо, учтём при следующей правке страницы.