Быстрый старт Обновление Обновлено 8 linux

Как обновить Hysteria2 на сервере без потери конфигурации

Безопасное обновление Hysteria2 на сервере: резервное копирование config.yaml и сертификатов, проверка release notes, контролируемый перезапуск и откат к прежней версии. Пошаговая инструкция без потери конфигурации.

hysteria 2hysteria настройка сервераобновление hysteria2vpnбэкапconfig.yaml
Содержание
КороткоОбновление Hysteria2 на сервере безопасно, если сделать резервную копию конфигурации и сертификатов, проверить release notes, остановить службу, заменить бинарник, запустить с проверкой логов и быть готовым к откату.

Если на вашем сервере уже работает Hysteria2, рано или поздно встанет вопрос обновления. Новая версия может принести исправления безопасности, улучшенную производительность или новые параметры в config.yaml. Главное — сделать это так, чтобы не потерять существующую конфигурацию, сертификаты и пользователей. В этом руководстве разберём безопасный порядок обновления Hysteria2: от резервной копии до отката в случае неудачи.

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

Почему важно обновлять Hysteria2

Разработчик проекта регулярно выпускает новые версии. В них исправляются ошибки протокола, уязвимости, возникающие при работе с TLS, а также добавляются функции — например, поддержка новых методов аутентификации или оптимизация для слабых каналов. Если вы используете устаревшую сборку, сервер может работать нестабильно, а клиенты — получать ошибки при подключении. Кроме того, обновление часто требуется после смены версии клиента на компьютере или телефоне.

Однако обновление сервера — это не просто замена бинарника. Не менее важна hysteria настройка сервера в новом релизе: иногда меняются имена полей в config.yaml, добавляются обязательные параметры или меняются права доступа. Поэтому руководство ниже построено так, чтобы свести риск поломки к минимуму.

Шаг 1. Изучите release notes перед обновлением

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

Чтобы узнать текущую версию, выполните команду:

hysteria server --version

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

Шаг 2. Создайте резервную копию конфигурации и сертификатов

Это самый важный шаг. Даже если новая версия работает идеально, вы должны иметь возможность откатиться в течение нескольких минут. Вместе с бинарным файлом обязательно нужно сохранить:

  • файл конфигурации config.yaml;
  • сертификат и приватный ключ TLS;
  • список пользователей, если вы храните его отдельно (например, в users.db или в том же config.yaml).

Выполните копирование в безопасное место, недоступное для обычных системных процессов. Пример:

mkdir -p /root/hysteria-backup
cp /etc/hysteria/config.yaml /root/hysteria-backup/
cp -r /etc/hysteria/cert /root/hysteria-backup/
tar czf /root/hysteria-backup-backup.tar.gz /root/hysteria-backup

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

Шаг 3. Остановите службу и замените бинарный файл

Обновление Hysteria2 на работающем сервере допустимо, но не рекомендуется. Безопаснее сначала остановить службу, затем заменить исполняемый файл и только потом запускать заново. Такой порядок позволяет проверить права доступа и зависимости.

Если вы используете systemd, остановите службу:

systemctl stop hysteria

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

mv /usr/local/bin/hysteria /root/hysteria-backup/hysteria.old
cp /root/hysteria-new/hysteria /usr/local/bin/hysteria
chmod +x /usr/local/bin/hysteria

Имена путей указаны как пример. Проверьте, что бинарник совместим с архитектурой вашего сервера — amd64, arm64 и так далее. После замены запустите проверку версии:

hysteria server --version

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

Шаг 4. Контролируемый запуск и проверка логов

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

hysteria server -c /etc/hysteria/config.yaml --check-config

Какой именно флаг используется для проверки, зависит от версии. Если такого флага нет, просто запустите сервер в консоли и посмотрите на первые строки вывода. Убедитесь, что в логах нет ошибок про неизвестные поля или неверный формат.

После этого запустите службу через systemd (или ваш менеджер процессов) и проследите за логами:

systemctl start hysteria
journalctl -u hysteria -f

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

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

Шаг 5. Откат, если обновление сломалось

Даже при аккуратной подготовке возможны сбои. Например, новая версия может не запуститься из-за несовместимости с библиотеками или не принимать клиентов из-за изменения протокола. В такой ситуации важно иметь возможность быстро вернуть прежнюю версию.

Порядок отката:

  1. Остановите службу: systemctl stop hysteria.
  2. Верните старый бинарный файл из резервной копии:
cp /root/hysteria-backup/hysteria.old /usr/local/bin/hysteria
chmod +x /usr/local/bin/hysteria
  1. Восстановите конфигурацию и сертификаты, если они изменились:
cp /root/hysteria-backup/config.yaml /etc/hysteria/config.yaml
cp -r /root/hysteria-backup/cert /etc/hysteria/
  1. Запустите службу снова и проверьте логи:
systemctl start hysteria
journalctl -u hysteria

Если откат помог, значит, проблема была именно в новой версии. Вы можете сообщить о ней разработчику или подождать следующего релиза.

Частые ошибки при обновлении Hysteria2

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

Вторая по частоте ошибка — забыть про сертификаты. Если вы храните их отдельно от конфигурации, при переносе на другой сервер или восстановлении из бэкапа легко потерять доступ к приватному ключу. Поэтому рекомендую делать полную резервную копию каталога /etc/hysteria, включая подкаталоги.

Третья ошибка — игнорирование release notes. Даже незначительный релиз может изменить формат лога или добавить новый параметр, который включён по умолчанию. Если вы не проверили изменения, новые настройки могут конфликтовать с вашими.

Наконец, многие проверяют обновление только после перезагрузки сервера. Не ждите перезагрузки, а тестируйте сразу после запуска службы. Это сэкономит время, если что-то пошло не так.

Мини-чеклист

  • Изучил release notes текущего релиза
  • Сделал резервную копию config.yaml
  • Сделал резервную копию сертификатов
  • Остановил службу hysteria
  • Заменил бинарный файл
  • Проверил версию после замены
  • Запустил службу с проверкой
  • Просмотрел логи на наличие ошибок
  • Проверил подключение клиента
  • Подготовил план отката

Частые ошибки

  • Обновление без остановки службы
  • Забыли сделать бэкап сертификатов
  • Игнорирование release notes и breaking changes
  • Замена бинарника неподходящей архитектуры
  • Отсутствие тестирования после запуска
  • Нет плана отката

FAQ

Как проверить текущую версию Hysteria2 на сервере?

Выполните команду hysteria server --version в терминале. Если такой флаг не поддерживается, запустите бинарник с -h и посмотрите доступные опции.

Нужно ли обновлять клиентов после обновления сервера?

Не всегда. Но если в release notes упоминаются изменения протокола или способа подключения, лучше обновить клиентов до совместимой версии.

Что делать, если после обновления сервер не запускается?

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

Можно ли обновить Hysteria2 без перезагрузки сервера?

Да, достаточно остановить и заново запустить службу. Перезагрузка ОС не требуется, если не изменялись системные зависимости.

Хотите перейти сразу к рабочему доступу?

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

Получить доступ

Дальше по теме

Связанные статьи