Hysteria2 на VPS Ubuntu: установка сервера и первый запуск
Пошаговое руководство по установке Hysteria2 на VPS с Ubuntu: подготовка, скачивание бинарника, минимальный конфиг, запуск через systemd и проверка порта. Подходит для первого самостоятельного развертывания сервера.
Содержание
Если вы купили VPS с Ubuntu и хотите поднять на нём Hysteria2, это руководство проведёт вас по всем этапам: от подготовки системы до первого запуска и проверки доступности порта. Вы получите рабочий сервер без лишних действий и с минимальной конфигурацией, которую потом сможете расширить под свои задачи.
Мы не будем касаться настройки клиентов или панелей — только серверная часть, установка Hysteria2 на Ubuntu и запуск в качестве systemd-сервиса. Все команды рассчитаны на свежую VPS с Ubuntu 22.04 или 24.04, но подойдут и для других версий LTS.
Предварительные требования к VPS
Перед началом убедитесь, что у вас есть:
- VPS с установленной Ubuntu (22.04 или новее) и доступом по SSH;
- права root или пользователь с sudo;
- открытый порт, который вы планируете использовать (например, UDP 36712) — его нужно будет разрешить в фаерволе;
- минимальные ресурсы: достаточно 512 МБ ОЗУ и одного ядра.
Если вы планируете подключаться через прокси с нескольких устройств, рекомендуем заранее выбрать порт и учесть его при настройке. Всё остальное — Hysteria2 сам поднимет сервер и будет слушать выбранный адрес.
Обновление системы и подготовка окружения
Начните с обновления пакетов и установки базовых утилит. Это стандартная практика перед развёртыванием любого сервиса на Ubuntu.
sudo apt update
sudo apt upgrade -y
sudo apt install wget curl nano -y
Проверьте версию Ubuntu, чтобы понимать, какие бинарники совместимы:
lsb_release -a
Обычно Hysteria2 собирается для amd64 и arm64. Узнать архитектуру VPS можно командой uname -m. Результат x86_64 означает amd64, aarch64 — arm64.
Скачивание и установка бинарного файла Hysteria2
Hysteria2 распространяется как готовый бинарник в релизах на GitHub. Мы рекомендуем всегда сверяться с актуальной версией на официальной странице проекта Hysteria Wiki, потому что номера версий и ссылки на загрузку могут меняться.
Общий алгоритм такой: скачиваем архив с бинарником, распаковываем и перемещаем его в /usr/local/bin, чтобы система видела команду hysteria.
wget https://github.com/apernet/hysteria/releases/download/v2.8.0/hysteria-linux-amd64.gz
gunzip hysteria-linux-amd64.gz
chmod +x hysteria-linux-amd64
sudo mv hysteria-linux-amd64 /usr/local/bin/hysteria
Если ваша архитектура arm64, замените имя файла на hysteria-linux-arm64.gz. Проверьте установку:
hysteria version
Если команда не найдена, возможно, /usr/local/bin не в PATH или файл называется иначе. В таком случае используйте полный путь или скопируйте бинарник в /usr/bin.
Минимальный конфигурационный файл сервера
Создайте директорию для конфигов и файл config.yaml:
sudo mkdir -p /etc/hysteria
sudo nano /etc/hysteria/config.yaml
Минимальный рабочий конфиг выглядит так:
listen: :36712
tls:
cert: /etc/letsencrypt/live/example.com/fullchain.pem
key: /etc/letsencrypt/live/example.com/privkey.pem
auth:
type: password
password: YOUR_SECURE_PASSWORD
Замените example.com на ваш реальный домен, а YOUR_SECURE_PASSWORD — на длинный случайный пароль. Секреты, такие как пароль и ключи, никогда не должны быть захардкожены в открытом виде — используйте переменные окружения или файлы с ограниченными правами.
Для первого запуска подойдёт и самоподписанный сертификат, но тогда клиенты будут показывать предупреждение. Лучше сразу выпустить Let's Encrypt через certbot или использовать панели, например 3x-UI для управления Hysteria2, которые автоматизируют выдачу сертификатов.
Мы используем только безопасные плейсхолдеры — не добавляйте реальные ключи в примеры, это опасно. Сгенерируйте пароль командой:
openssl rand -base64 32
Запуск Hysteria2 как systemd-сервиса
Чтобы сервер запускался автоматически и переживал перезагрузки VPS, создадим systemd unit-файл.
sudo nano /etc/systemd/system/hysteria.service
Вставьте следующий шаблон:
[Unit]
Description=Hysteria2 Server
After=network.target
[Service]
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Затем выполните перезагрузку systemd и запустите сервис:
sudo systemctl daemon-reload
sudo systemctl start hysteria
sudo systemctl enable hysteria
Проверьте статус:
sudo systemctl status hysteria
Если всё сделано верно, вы увидите статус active (running) и логи без ошибок. Если возникли проблемы — смотрите раздел «Типичные ошибки» ниже.
Проверка работы сервера и порта
Убедитесь, что процесс слушает UDP-порт. Команда ss покажет это:
sudo ss -ulpn | grep hysteria
Вы должны увидеть строку вида udp UNCONN 0 0 *:36712 *:* users:(("hysteria",pid=...,fd=...)).
Далее проверьте доступность порта с самого VPS:
sudo lsof -i -P -n | grep 36712
Если порт не открыт, проверьте фаервол. Для Ubuntu чаще всего используется ufw:
sudo ufw allow 36712/udp
sudo ufw reload
Настройка фаервола подробно описана в нашей статье «Firewall и порт» на главной странице Hysteria Wiki. Также не забывайте про правила на стороне хостера — иногда VPS-панель требует открыть порт вручную в панели управления.
После того как порт открыт, можно выполнить расширенную диагностику с клиента, но это уже тема отдельного материала. На этом этапе задача «установить Hysteria2 на VPS Ubuntu» выполнена.
Заключение
Вы установили сервер Hysteria2 на Ubuntu VPS, настроили минимальный конфиг и запустили его как systemd-сервис. Теперь вы можете переходить к настройке клиентов или интегрировать сервер с панельными решениями. Помните, что безопасность — это не только закрытые секреты, но и регулярное обновление бинарника. Следите за новыми релизами Hysteria2 и своевременно обновляйте сервер.
Мини-чеклист
- Проверить доступ к VPS по SSH и права sudo
- Обновить систему: sudo apt update && sudo apt upgrade -y
- Установить базовые пакеты: wget, curl, nano
- Определить архитектуру процессора (uname -m)
- Скачать актуальный бинарник Hysteria2 с GitHub репозитория
- Переместить бинарник в /usr/local/bin и дать права на выполнение
- Создать директорию /etc/hysteria и конфиг config.yaml
- Сгенерировать надёжный пароль через openssl rand -base64 32
- Убедиться, что TLS-сертификаты существуют и доступны для чтения
- Создать systemd unit и запустить сервис hysteria
- Проверить статус сервиса: systemctl status hysteria
- Проверить, что UDP-порт слушается (ss -ulpn)
- Открыть порт в firewal/ufw и в панели хостера
Частые ошибки
- Использование бинарника не той архитектуры (например, amd64 на arm64) — проверяйте uname -m
- Захардкоженные секреты прямо в конфиге, который попадает в репозиторий или чат
- Запуск сервера без systemd — после перезагрузки VPS сервер не стартует автоматически
- Забыли открыть UDP-порт в двух местах: в локальном firewall и в панели хостера
- Перепутали порт UDP с TCP — Hysteria2 работает именно по UDP
- Самоподписанный сертификат, который вызывает ошибки у клиентов — лучше использовать Let's Encrypt
FAQ
Нужен ли домен для установки Hysteria2 на VPS с Ubuntu?
Технически можно использовать IP-адрес и самоподписанный сертификат, но для стабильной работы и обхода блокировок лучше использовать домен. Hysteria2 умеет работать с TLS, и Let's Encrypt выпускает бесплатные сертификаты только для доменных имён, не для IP.
Какой минимальный объём памяти нужен для Hysteria2?
Для сервера Hysteria2 достаточно 256–512 МБ ОЗУ. На сложных конфигурациях с большим количеством клиентов можно поднять до 1 ГБ, но в целом сервер потребляет очень мало ресурсов.
Как обновить Hysteria2 на Ubuntu?
Остановите сервис (systemctl stop hysteria), скачайте новую версию бинарника, замените файл в /usr/local/bin и запустите сервис снова. Обязательно проверьте changelog на предмет изменений в конфигурации, так как формат config может отличаться.
Почему сервер не запускается после установки?
Чаще всего причина в неправильном пути к бинарнику, конфигу или недостаточных правах. Смотрите вывод команды systemctl status hysteria или journalctl -u hysteria -n 50. Также проверьте, что файл config.yaml не содержит ошибок синтаксиса (используйте hysteria server -c /etc/hysteria/config.yaml для тестового запуска в фореграунде).
Можно ли использовать Hysteria2 без systemd?
Да, но это не рекомендуется для постоянного сервера. Вы можете запустить процесс командой nohup или использовать screen/tmux, однако при перезагрузке VPS сервер не запустится автоматически. systemd — стандартный и надёжный способ для Ubuntu.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Получить доступ