Как обновить Hysteria2 на сервере без потери конфигурации
Безопасное обновление Hysteria2 на сервере: резервное копирование config.yaml и сертификатов, проверка 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. Откат, если обновление сломалось
Даже при аккуратной подготовке возможны сбои. Например, новая версия может не запуститься из-за несовместимости с библиотеками или не принимать клиентов из-за изменения протокола. В такой ситуации важно иметь возможность быстро вернуть прежнюю версию.
Порядок отката:
- Остановите службу:
systemctl stop hysteria. - Верните старый бинарный файл из резервной копии:
cp /root/hysteria-backup/hysteria.old /usr/local/bin/hysteria
chmod +x /usr/local/bin/hysteria- Восстановите конфигурацию и сертификаты, если они изменились:
cp /root/hysteria-backup/config.yaml /etc/hysteria/config.yaml
cp -r /root/hysteria-backup/cert /etc/hysteria/- Запустите службу снова и проверьте логи:
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 без перезагрузки сервера?
Да, достаточно остановить и заново запустить службу. Перезагрузка ОС не требуется, если не изменялись системные зависимости.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Получить доступ