Диагностика

Журнал решений, вкладка «Логи», обращение оператору и что клиент отправляет сам.

Клиент отвечает на вопрос «почему не работает» вместо того, чтобы молчать. Защита от утечек, которая заменила прежний Kill Switch, описана в разделе Подключение и защита.

Журнал решений

Приложение записывает не только работу ядра, но и то, что делает само, — одной строкой на решение:

  • запускает, останавливает или перезапускает ядро (остановку и перезапуск — с причиной, неожиданное завершение ядра — с кодом);
  • поднялся ли туннель, а если он разошёлся с включённым подключением — что ядро перезапущено и когда приложение перестало пробовать само;
  • включение и снятие защиты от утечек, в том числе неудачные;
  • смена способа подключения, сбои после смены сети, шаги обновления приложения.

Отдельно видна работа Обхода блокировок — когда точка не отвечает напрямую и приложение ищет путь к ней через соседнюю:

2026-09-26T09:14:03.512Z [XO] proxy: точка не ответила напрямую, ищем путь к ней через соседей exit=… candidates=…
2026-09-26T09:14:05.207Z [XO] proxy: вердикт по паре посредник→точка exit=… relay=… ok=false stage=… cancelled=false ms=… launchMs=… coreTail=…
2026-09-26T09:14:09.880Z [XO] proxy: обход применён exit=… relay=… chainRttMs=…

exit — точка, до которой нужно добраться, relay — соседняя точка-посредник. «Вердикт» пишется на каждую опробованную пару, у неудачной — с хвостом журнала ядра этой попытки, если он есть. «Обход применён» — трафик пошёл новым путём, через названную пару.

Пока таких записей не было, «пропал интернет» выглядело загадкой даже при полном доступе к машине: причину искали по строкам, которых в журнале не оказалось.

Журнал решений пишется в файл журнала за день — в папку logs среди данных приложения. На macOS её открывает меню Инструменты → Открыть папку → Папка логов. Файлы хранятся 7 дней, более старые удаляются при запуске приложения; срок меняется в Настройки → Настройки ядра → Дни хранения логов. На вкладке Логи этих строк нет, но к обращению и к отчёту о сайте они прикладываются.

Вкладка «Логи»

Вкладка «Логи»

Здесь журнал ядра и ошибки самого приложения с момента запуска, новые строки сверху; на экране — не больше 500 последних.

  • События — журнал без отладочных строк, Ядро — все строки подряд.
  • Фильтр оставляет строки, в которых встречается набранный текст.
  • Кнопка копирования в шапке копирует видимые строки — уже без токенов и ключей, с укороченными IP-адресами. Очистить убирает строки только с экрана: журнал для обращения остаётся целым.
  • Соединения открывает экран Подключения: куда шло каждое соединение и через что ушло — имя сервера или DIRECT, если мимо VPN. Так быстрее всего проверить набор разделения трафика: сайт, который должен идти мимо VPN, будет с DIRECT. Сработавшее Правило видно в подробностях соединения.

Сообщить о проблеме

Внизу вкладки — карточка Что-то не работает? с кнопкой Отправить отзыв. В окне Сообщить о проблеме опишите, что не работает (до 4000 символов), и нажмите Отправить. Вместе с текстом уйдут:

  • снимок настроек: способ подключения, режим маршрутизации, включённые наборы разделения трафика и куда они направлены, число своих правил, положение Защиты от утечек, DNS через сервер и Обхода блокировок, состояние подключения и причина сбоя, версия ядра;
  • последние записи журнала решений за сегодня и журнал ядра — без построчного потока соединений, похожие строки подряд схлопнуты в одну;
  • название доступа, версия приложения, тип системы, идентификатор устройства;
  • последние переходы между экранами и нажатия в приложении — без введённого текста.

Сохранить журнал в том же окне сохраняет журнал ядра — тот же, что на вкладке, уже без токенов и ключей — в текстовый файл, если отправка не работает или журнал нужно передать вручную. Журнала решений в этом файле нет.

Без сети обращение не теряется. Оно сначала записывается на диск и только потом уходит в сеть: обращение пишут, когда что-то сломано, и чаще всего сломан как раз путь, по которому оно уходит. Если сразу отправить не вышло или ответа нет за несколько секунд, окно скажет «Обращение сохранено — отправлю, как только будет связь». Дальше приложение досылает его само — с нарастающей паузой, сразу после возврата сети и после перезапуска — в течение 14 дней. Очередь видна на той же карточке:

  • Ждут отправки — уйдут сами; Отправить сейчас пробует немедленно.
  • Не отправлено с причиной — приёмник отклонил обращение окончательно или 14 дней истекли. Повторить отправляет снова и отсчитывает 14 дней заново, Удалить срабатывает со второго нажатия: это ваш текст, вернуть его будет неоткуда.

Что клиент отправляет

XO-NET — корпоративный клиент: диагностика включена политикой организации с установки. Окна согласия и переключателя в приложении нет. Оператору уходят:

  • Пульс — по умолчанию раз в десять минут, пока приложение запущено, с VPN и без: идентификатор устройства (ключ, который приложение создаёт само, и хэш аппаратного идентификатора компьютера), версия приложения, тип системы и процессора, применены ли подсказки оператора о выборе серверов.
  • Отчёт о сайте, который не открылся. Приложение следит за соединениями само: страница не дождалась ответа, грузилась аномально медленно или ответила подозрительно коротко, а проверочный запрос к сайту вернул ошибку (так выглядит страница блокировки). Один сайт на одном сервере — не чаще раза в три минуты; за какими сайтами следить, может ограничить оператор. В отчёте — домен без пути страницы, исход и время ожидания, сервер, соединения ядра к этому сайту и только к нему (про остальные — лишь их число), тот же снимок настроек и журнал, что в обращении, название доступа, версия приложения и тип системы. Вкладка Проверка отчётов не отправляет.
  • Обращение — только когда вы сами нажали Отправить.
  • Итог диагностического задания. Оператор может запросить короткую сводку: версия ядра, включён ли туннель, режим DNS, число правил и групп серверов, отпечаток конфигурации ядра, сколько процессора и памяти занимает само приложение и сколько свободно места на диске — грубыми интервалами. Задание подписано, адресовано одному устройству и действует не дольше 15 минут. Выполняется оно без вопроса, но не незаметно: значок XO-NET в трее (на macOS — в строке меню) становится оранжевым кружком, в его меню появляется Остановить диагностику, а без видимого значка сбор не начинается. Задания на глубокий сбор — маршруты, DNS, журнал — версия 1.4.6 отклоняет.

Всё это уходит оператору напрямую, мимо сервера VPN: жалоба на неработающий сервер, отправленная через этот же сервер, не дошла бы.

Не передаются содержимое трафика, пароли, ссылка на подписку, cookies и токены. Журнал перед отправкой очищается: вырезаются токены, ключи и идентификаторы, путь к домашней папке заменяется, у IP-адресов скрыта последняя часть; приёмник чистит его ещё раз. В базе приёмника пульсы, отчёты о сайтах и обращения хранятся не дольше 30 дней, итог диагностического задания — неделю. По вопросам доступа к данным и их удаления: privacy@verge.st.

Соединения с Anthropic и Claude идут через VPN наравне со всеми остальными.