🦎 Hysteria 2 — установка сервера
О чём заметка
Практический гайд по установке серверной части Hysteria 2 на Linux-VPS: официальный bash-скрипт с systemd-сервисом, ручная установка бинарника и Docker. Обзор протокола и модели «клиент-сервер» — в обзорной заметке. После установки нужно написать конфиг — см. Конфиг сервера.
TL;DR
- Проще всего — официальный скрипт:
bash <(curl -fsSL https://get.hy2.sh/). Он ставит бинарник и заводит systemd-сервисhysteria-server.service. - Скрипт только устанавливает и создаёт пример конфига. Рабочий конфиг с доменом, паролем и сертификатом нужно написать вручную в
/etc/hysteria/config.yaml, иначе сервис не запустится. - Конфиг лежит в
/etc/hysteria/config.yaml, запуск/перезапуск — черезsystemctl, логи — черезjournalctl. - Нужен дистрибутив с systemd: Debian 11+, Ubuntu 22.04 LTS+, Rocky/CentOS Stream 8+, Fedora 37+. CentOS 7 и busybox-системы (Alpine, OpenWrt) не поддерживаются.
- Один и тот же бинарник
hysteria— это и сервер, и клиент; режим выбирается аргументом (hysteria server/hysteria client).
Требования
- VPS с публичным IP (IPv4 или IPv6 — оба подходят). Нет белого IP (дом, CGNAT, мобильный модем)? Сервер всё равно можно поднять — см. Realms: сервер за NAT.
- Домен, указывающий на IP сервера (подойдёт и поддомен). Домен нужен, чтобы Hysteria автоматически получила TLS-сертификат через ACME (Let’s Encrypt / ZeroSSL). Без домена придётся использовать самоподписанный сертификат — см. клиентский конфиг, раздел про
insecure/pinSHA256. - Для скрипта установки: система на systemd (команда
systemctl) и установленныеbash,grep,curl, GNU Coreutils (не busybox-версии).
Какой дистрибутив выбрать новичку
Для нового VPS берите стабильную версию мейнстрим-дистрибутива не старше 2 лет. Рекомендованные официальной документацией: Debian 11+, Ubuntu 22.04 LTS+, Rocky Linux 8+, CentOS Stream 8+, Fedora 37+. Явно избегайте CentOS 7 (старое ядро ломает QUIC-соединения). Не поддерживаются busybox-системы: OpenWrt, Alpine Linux, NixOS.
Способ 1 — официальный скрипт установки (рекомендуется)
Официальный bash-скрипт скачивает свежий бинарник, кладёт его в систему и настраивает systemd-сервис. Он аналогичен пакетному менеджеру: устанавливает и обновляет, но сам сервис не настраивает до рабочего состояния — генерирует только пример конфига.
Установка или обновление
Установить (или обновить до последней версии):
bash <(curl -fsSL https://get.hy2.sh/)Установить конкретную версию (например, v2.9.3):
bash <(curl -fsSL https://get.hy2.sh/) --version v2.9.3Удаление
bash <(curl -fsSL https://get.hy2.sh/) --removeПолезные варианты запуска скрипта
- Установка из локального файла — если VPS не может достучаться до GitHub Releases, скачайте бинарник вручную и передайте путь:
bash <(curl -fsSL https://get.hy2.sh/) --local /path/to/hysteria-linux-amd64. - Указать архитектуру (в основном для AVX-сборки, она быстрее на поддерживающих AVX процессорах):
ARCHITECTURE=amd64-avx bash <(curl -fsSL https://get.hy2.sh/). - Запуск от root — если не хотите возиться с правами (например, при внешней генерации сертификатов):
HYSTERIA_USER=root bash <(curl -fsSL https://get.hy2.sh/). Вернуть обычного пользователя:HYSTERIA_USER=hysteria bash <(curl -fsSL https://get.hy2.sh/).
Скрипт не «настроит всё сам»
Официальный
get.hy2.sh— это установщик, а не «мастер настройки под ключ». Он создаёт пример конфига, но не пропишет за вас домен, пароль и сертификат. Рабочий конфиг нужно написать самому (см. Конфиг сервера). Существуют сторонние «скрипты Hysteria 2», которые ставят и настраивают всё разом, но это чужой неофициальный код — запускать его от root на своём сервере стоит только осознанно и из доверенного источника.
Управление сервисом (systemd)
После установки скриптом сервис называется hysteria-server.service.
Отредактировать конфиг:
nano /etc/hysteria/config.yamlВключить автозапуск и сразу стартовать:
systemctl enable --now hysteria-server.serviceПерезапустить (обычно после правки конфига):
systemctl restart hysteria-server.serviceПроверить статус:
systemctl status hysteria-server.serviceПосмотреть логи сервера:
journalctl --no-pager -e -u hysteria-server.serviceКак понять, что сервер поднялся
В логах должно появиться сообщение «server up and running» без ошибок. Если вместо этого видите ошибки про
permission deniedна порт 443 или про сертификат — загляните в разбор проблем.
Способ 2 — ручная установка бинарника
Если systemd-скрипт не подходит (например, нестандартная система), можно скачать исполняемый файл напрямую. Ссылка вида https://download.hysteria.network/app/latest/[имя файла] всегда ведёт на последнюю версию — удобно для скриптов и автоматизации.
Имена файлов для Linux (выберите под свою архитектуру):
| Файл | Архитектура | Примечание |
|---|---|---|
hysteria-linux-amd64 | x86-64 | обычный |
hysteria-linux-amd64-avx | x86-64 | требует поддержки AVX (быстрее) |
hysteria-linux-arm64 | ARM64 | |
hysteria-linux-arm | ARMv7 | |
hysteria-linux-386 | x86 |
Есть также сборки под Windows, macOS (включая ARM/M1), FreeBSD и Android (последние — ELF-бинарники под NDK, а не APK). Полный список — в официальной документации.
Пример: скачать, сделать исполняемым и запустить как сервер с конфигом config.yaml в текущей папке:
curl -fsSL -o hysteria https://download.hysteria.network/app/latest/hysteria-linux-amd64-avx
chmod +x hysteria
./hysteria server -c config.yamlПорт 443 требует привилегий
Hysteria по умолчанию слушает 443 порт, а порты ниже 1024 недоступны обычному пользователю. Либо запускайте от root, либо выдайте бинарнику право привязываться к привилегированным портам:
sudo setcap cap_net_bind_service=+ep ./hysteria. Подробнее об этой ошибке — в разборе проблем.
Способ 3 — Docker
Официальный образ — tobyxdd/hysteria. Пример docker-compose.yaml:
version: "3.9"
services:
hysteria:
image: tobyxdd/hysteria
container_name: hysteria
restart: always
network_mode: "host"
cap_add:
- NET_ADMIN
volumes:
- acme:/acme
- ./hysteria.yaml:/etc/hysteria.yaml
command: ["server", "-c", "/etc/hysteria.yaml"]
volumes:
acme:Capability NET_ADMIN нужна только если включён port hopping (серверу надо править правила фаервола). Для обычной работы её можно убрать.
Что дальше
После установки бинарник есть, но сервис ещё не работает — нужен конфиг. Переходите к написанию серверного конфига: домен, ACME-сертификат, пароль аутентификации и маскировка под сайт.
📚 См. также
- Hysteria 2 — обзор — что это за протокол и кому подходит.
- Конфиг сервера — следующий обязательный шаг после установки.
- Решение проблем — если сервис не стартует.
- 🔗 Installation — официальная документация
- 🔗 Server Installation Script — детали скрипта
🤖 Эти статьи открыты — можно обучать на них ИИ
При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.