Как читать журналы сервера Xray без раскрытия секретов

Как читать журналы сервера Xray без раскрытия секретов

Marcus Reid
11 октября 2026 г.· 10 мин чтения

Используйте журналы сервера Xray, чтобы определить этап сбоя, а не собрать все соединения. Сначала подтвердите работающую конфигурацию, воспроизведите один разрешённый отказ в коротком интервале, затем верните обычную политику журналирования и сохраните только необходимые свидетельства.

Ключевые выводы

  • Владелец службы и действующая конфигурация определяют место журналов.
  • Для запуска, аутентификации и исходящего соединения нужны разные свидетельства.
  • Конфликт порта требует проверки владельца, а не слепого завершения процесса.
  • Обезличивайте копию; защищённый оригинал храните только согласованный срок.
  • Временный debug завершается проверенным восстановлением, а не одним редактированием файла.

Что устанавливают журналы сервера Xray?

Руководство по ответственности самостоятельного размещения объясняет обязанности оператора по диагностике и приватности. Процедура предназначена для уже разрешённого экземпляра Xray-core v26.3.27 на Ubuntu 24.04 LTS; справочная версия journal — systemd 255. До команд подтвердите установленные версии и фактический supervisor. У контейнерного или панельного экземпляра свой владелец журналов; наличие xray.service не предполагается.

Автор не проводил полного сквозного эксперимента развёртывания. Команды описывают проверки читателя, а показанные успехи или отказы не являются измеренными результатами. Менять повседневный прокси, VPN или другой сетевой клиент не требуется. Для воспроизведения используйте отдельный разрешённый клиент.

Сообщение подтверждает то, что компонент записал, а не всё произошедшее. Отсутствие сообщения может означать фильтрацию, другой источник или то, что трафик не достиг Xray. TLS может подключить сайт fallback без успешной аутентификации прокси. Различие рассматривает связанная процедура сертификатов и проверки Trojan.

Шаг 1: определите работающий экземпляр и источник

Начните с владельца службы, исполняемого файла, версии и пути конфигурации. При systemd выберите точный unit по инвентаризации. Следующие команды проверяют пример; замените имя, если разрешённая служба называется иначе. Просматривайте вывод локально: аргументы и окружение могут содержать секреты.

XRAY_UNIT='xray.service'
systemctl show "$XRAY_UNIT" -p FragmentPath -p ExecStart -p User -p Group -p MainPID
systemctl cat "$XRAY_UNIT"
xray version

Найдите реальный бинарный файл через ExecStart: команда xray из shell может запускать другую версию. Локально проверьте указанные конфигурации и аргументы каталогов. Не вставляйте unit, environment-файлы или полную конфигурацию в заявку. При неясном владельце остановитесь до debug и перезапуска.

Xray поддерживает назначения access/error и loglevel. Обновляемая документация объясняет смысл, а parser закреплённого тега подтверждает используемые поля.[1][2]Это фрагмент журнала для объединения с проверенной конфигурацией, а не полный серверный файл:

{
  "log": {
    "access": "none",
    "error": "",
    "loglevel": "warning",
    "dnsLog": false
  }
}

Пустое назначение error означает консольный вывод; в journal он попадёт только при фактическом захвате вывода unit. Журнал ошибок Xray с явным файловым путём использует другой источник. Отключённый access log не гарантирует отсутствия персональных данных в ошибках. Установите настоящее назначение прежде, чем считать journal пустым или утверждать отсутствие журналов.

Шаг 2: соберите один ограниченный сбой

Согласуйте короткое окно, одного клиента, одно назначение и максимальный объём сбора. Запишите UTC и локальную метку случая без личности пользователя. Работайте в приватном каталоге с ограниченными правами и свободным местом. Пример выбирает не более 300 записей за указанный интервал; при больших записях сузьте пределы.

До исполнения замените оба временных шаблона. Интервал должен охватывать одно разрешённое воспроизведение, а не день чужих сеансов. Справочник Ubuntu описывает фильтры времени и unit для journalctl.[3]

START_UTC='YYYY-MM-DD HH:MM:SS UTC'
END_UTC='YYYY-MM-DD HH:MM:SS UTC'
umask 077
journalctl --unit "$XRAY_UNIT" --since "$START_UTC" --until "$END_UTC" \
  --no-pager --output short-iso --lines 300 > xray-case.private.log

Сначала выберите новый приватный каталог, чтобы не перезаписать существующее свидетельство. Проверьте локально unit, интервал, права и размер файла. Если отказ отсутствует, проверьте назначение журнала и расширьте только необходимую границу. Не включайте захват содержимого, не выгружайте подписки и не повторяйте запросы до заполнения диска.

Если уровня warning мало, приватно сохраните точную активную конфигурацию и права. В разрешённое окно обслуживания временно измените только этот экземпляр на поддерживаемый диагностический уровень. Проверьте его действующим бинарным файлом и настоящим путём конфигурации, затем примените через владельца supervisor. Запишите прежний уровень и срок завершения. Проверка синтаксиса не гарантирует успешного перезапуска; независимое управление необходимо сохранить.

Шаг 3: разделите запуск, аутентификацию и выход

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

СлойЧто установитьСледующая ограниченная проверка
ЗапускВерный бинарный файл, загрузка конфигурации, нужный слушательВыход службы и первая соответствующая ошибка
Конфликт слушателяТочный адрес, транспорт, порт и процессСвязать PID с supervisor до действий
TLS или входящая аутентификацияСовпадение endpoint, идентичности и протокола клиентаОдин правильный и один намеренно неправильный временный секрет
ВыходПринятый запрос направлен к разрешённому назначениюПроверить его маршрут и настройку разрешения имён
Нет свидетельствИсточник и время покрывают попыткуИсправить выбор прежде повышения детализации

При address already in use локально проверьте слушатели TCP и UDP. Номера порта недостаточно: важны семейство и адрес привязки. Свяжите PID с исполняемым файлом, unit, контейнером или владельцем панели. Это команды осмотра, а не инструкция завершения:

sudo ss -lntup
systemctl status "$XRAY_UNIT" --no-pager

Порт может принадлежать законному сайту или другому экземпляру. Не завершайте процесс, не отнимайте порт и не перезагружайте хост. Остановитесь и согласуйте свободный слушатель либо разрешённую миграцию с владельцем. Неустановленный PID оставьте нетронутым.

Для аутентификации используйте временную тестовую идентичность и отзовите её после проверки. Никогда не просите реальную подписку, пароль или закрытый ключ. Руководство о секретности ссылок подписки объясняет, почему кодирование не устраняет секрет. При клиентском несовпадении REALITY используйте диагностику подключения VLESS/REALITY после установления серверного этапа. Предположительное изменение сервера не заменяет эти свидетельства.

Шаг 4: обезличьте копию, сохранив контекст

Оригинал храните только в ограниченном месте с владельцем и сроком удаления. Для передачи сделайте отдельную копию. Замените секреты, URL подписки, UUID, email-метки, закрытые ключи и идентификаторы аккаунтов. Проверьте также IP клиента, домены назначения, параметры запросов и пути на персональную или внутреннюю информацию.

Используйте постоянные метки CLIENT_A, INBOUND_A, DESTINATION_A, чтобы сохранить взаимосвязи. Оставьте время, относительный порядок, серьёзность, этап и класс ошибки. Если для несовпадения сертификата нужно точное имя хоста, передавайте его только разрешённому получателю через согласованный приватный канал.

Не полагайтесь на один regex для всех секретов. Просмотрите каждую строку и окружение, особенно многострочные ошибки и скопированный вывод. Полностью удаляйте payload вместо маскирования частей разговора. Маскирование адресов реализацией полезно, но не заменяет проверки идентичностей, URL и данных приложения в окончательной копии.

Шаг 5: ограничьте права, место и срок хранения

Служебной учётной записи дайте лишь необходимую запись в выбранное назначение; свидетельства доступны только разрешённым операторам. Не делайте файлы доступными всем для записи ради исправления logging. У конфигурационных секретов, журналов и обезличенных экспортов разные читатели; им не место в общей публичной web-директории.

Ротация журналов Xray при файловом назначении требует заранее определить предельный размер, срок и поддерживаемое повторное открытие. После переименования процесс может продолжать писать в старый descriptor. Следующее разрешённое событие должно попадать в активный файл. Не назначайте угаданный сигнал или общую политику copytruncate универсально безопасной ротацией журналов Xray.

Journal имеет управляемые пределы, включая SystemMaxUse и RuntimeMaxUse, но это политика хранилища journal, не бюджет одного Xray.[4] На общем хосте не меняйте глобальные пределы и не запускайте vacuum ради одного экземпляра. Согласуйте политику с владельцем хранилища либо выделите назначение журналов экземпляра.

Если диск заполнен, сначала сохраните небольшой относящийся к случаю образец в разрешённом месте со свободным объёмом. Запишите время, использование диска и inode. При наличии разрешения остановите собственный источник чрезмерного вывода через supervisor. Затем удаляйте только просроченные файлы, доказанно принадлежащие этому экземпляру, по его политике. Не удаляйте журналы других служб или весь journal. При невозможности безопасно сохранить свидетельства либо определить владельца остановитесь и обратитесь к ответственному оператору.

Шаг 6: верните политику и проверьте жизненный цикл

Восстановите точные прежние уровень и временно изменённые назначения, проверьте окончательную конфигурацию и примените через владельца экземпляра. Перепроверьте работающую версию, состояние службы, слушатель и независимый административный путь. Создайте одно разрешённое обычное событие: журнал должен работать без временной диагностической подробности. Восстановленный файл не доказывает, что загрузил живой процесс.

Проверьте размерный предел, механизм хранения и фактические права. При ротации убедитесь, что новый вывод поступает в активный файл, а старые собственные файлы удаляются по сроку. Отзовите временные секреты и удалите обе копии к установленным датам. При неудачном перезапуске восстановите прежний совместимый комплект бинарного файла и конфигурации и подтвердите исходную службу до новых попыток.

Повторяющаяся диагностика — эксплуатационная стоимость. Решая, кто хранит журналы и обслуживает сервер, сравните управление VPS с готовым VPN-сервисом. Этот выбор не переносит заявления приватности готового сервиса на ваш сервер и не гарантирует устранения неисправности сменой услуги.

Итоги

  • Сначала установите бинарный файл, конфигурацию, supervisor и назначение.
  • Соберите один сбой с явными временными и объёмными границами.
  • До настройки разделите слушатель, аутентификацию и выход.
  • Передавайте вручную проверенную копию и ограничивайте хранение оригинала.
  • Верните живую политику журналов, отзовите тестовую идентичность и проверьте исходную службу.

Часто задаваемые вопросы (FAQ)

Почему журналы сервера Xray пусты?

Событие могло отфильтроваться, попасть в файл или runtime контейнера; трафик мог не достигнуть Xray. До повышения подробности подтвердите экземпляр, источник и интервал. Тишина не доказывает успешную аутентификацию или отсутствие активности.

Стоит ли оставлять debug постоянно?

Эта процедура такого не рекомендует. Используйте минимальную достаточную детализацию, срок завершения и согласованный бюджет хранения. После воспроизведения верните прежнюю политику и проверьте, что работающий процесс её загрузил.

Можно ли передать подписку, скрыв префикс?

Нет. Закодированное содержимое и параметры могут содержать секреты. В копии замените секрет целиком постоянной безопасной меткой; при раскрытии отзовите его. Не помещайте настоящую аутентификацию в заявки и публичные чаты.

Можно ли завершить процесс, занявший порт?

Только после установления владельца и получения разрешения. Проверьте адрес, TCP или UDP, PID и supervisor. Законный сайт или иной экземпляр может владеть портом; выберите свободный либо согласуйте контролируемую миграцию.

Доказывает ли TLS успешный вход в прокси?

Нет. TLS может привести к fallback-сайту или более позднему отказу аутентификации. Используйте явно настроенный клиент, разрешённое назначение и намеренно неверный временный секрет; сравнивайте исходы прокси, а не доступность страницы.

Подходит ли vacuum для одной шумной службы?

Он способен удалить journal других служб, поэтому не является предписанной узкой очисткой. Сначала сохраните небольшой образец, управляйте только своим выводом и применяйте политику собственных файлов вместе с администратором хранилища.

Что завершает диагностическую сессию?

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

Отказ от ответственности: Процедура основана на официальных документах и закреплённой реализации, а не на выполненных автором опытах. Проверяйте только разрешённые экземпляры и трафик, соблюдайте право и условия провайдера. При неясных владельце, безопасности хранения или восстановлении остановитесь.

Источники:

  1. Log Configuration https://xtls.github.io/en/config/log.html
  2. Xray-core v26.3.27 log configuration implementation https://github.com/XTLS/Xray-core/blob/v26.3.27/infra/conf/log.go
  3. journalctl — systemd 255 on Ubuntu 24.04 LTS https://manpages.ubuntu.com/manpages/noble/man1/journalctl.1.html
  4. journald.conf — systemd journal service configuration https://github.com/systemd/systemd/blob/v255/man/journald.conf.xml

Sources checked 11 октября 2026 г.

Начните бесплатный 3-дневный пробный период

Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.

*Только для новых пользователей. Один пробный период на пользователя.

Как читать журналы сервера Xray без раскрытия секретов | AethoVPN