Российские технологии и цифровая экономика
ПоискRSS

Hysteria 2 на Vps без панели: установка и настройка через терминал

6 минут чтения

Hysteria 2: развертывание на VPS в терминальном режиме

Готовые панели управления заметно упрощают запуск прокси-сервисов, однако за их интерфейсом часто скрываются обычные Linux-команды, конфигурационные файлы и системные службы. В этом руководстве рассмотрим, как выполнить Hysteria 2 установку на VPS вручную - без панели, используя SSH и терминал.

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

Подготовка VPS и подключение по SSH

Для работы подойдет VPS с KVM-виртуализацией и выделенным статическим IPv4-адресом. Конкретного провайдера выбирать не обязательно: важнее наличие стабильного IP, доступа по SSH и возможности принимать UDP-трафик на нужном порту.

Инструкция ориентирована на Debian и Ubuntu. В системах семейства RHEL, включая AlmaLinux и Rocky Linux, команды `apt` потребуется заменить на соответствующие операции `dnf`.

Подключение к серверу выполняется так:

```bash
ssh root@IP_АДРЕС
```

При первом входе SSH предложит подтвердить отпечаток удаленного сервера. Введите `yes`, после чего укажите пароль, предоставленный хостером. Если соединение не устанавливается, проверьте, завершилось ли создание VPS и разрешены ли подключения к порту 22.

После первого входа желательно отказаться от постоянного использования пароля и настроить авторизацию по ключу. На локальном компьютере создайте пару ключей:

```bash
ssh-keygen -t ed25519
```

Приватный ключ нельзя передавать другим людям или хранить в открытом доступе. Публичный ключ находится в файле `ed25519.pub`. Его содержимое необходимо добавить на VPS в файл:

```bash
/root/.ssh/authorized_keys
```

Если каталога или файла еще нет, их можно создать вручную:

```bash
mkdir -p /root/.ssh
nano /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
```

После проверки входа по ключу стоит отключить парольную авторизацию и запретить прямой вход root. Для этого откройте конфигурацию SSH:

```bash
nano /etc/ssh/sshd_config
```

Проверьте или добавьте параметры:

```text
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
```

Затем перезапустите SSH:

```bash
systemctl restart ssh
```

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

Установка Hysteria 2

Обновим список пакетов и установим базовые инструменты:

```bash
apt update && apt upgrade -y
apt install -y wget ufw ca-certificates
```

Актуальный бинарный файл Hysteria 2 обычно загружают из официального репозитория проекта. При выборе версии учитывайте архитектуру VPS: для большинства современных серверов используется `amd64`, для ARM - соответствующая сборка.

После загрузки переместите файл в каталог, доступный системным программам:

```bash
mv hysteria /usr/local/bin/hysteria
chmod +x /usr/local/bin/hysteria
```

Практическая Hysteria 2 настройка в терминале строится вокруг обычного исполняемого файла и конфигурации. Программа написана на Go и распространяется как статически скомпилированный бинарник, поэтому ей, как правило, не требуется отдельная установка набора библиотек. Это упрощает переносимость между дистрибутивами Linux.

Проверить запуск и версию можно командой:

```bash
hysteria version
```

Конфигурация сервера

Современные версии поддерживают YAML, JSON и TOML. Для ручного редактирования удобнее YAML или TOML: они лучше читаются человеком и позволяют быстрее обнаруживать ошибки.

Создадим рабочий каталог:

```bash
mkdir -p /etc/hysteria
nano /etc/hysteria/config.yaml
```

На серверной стороне потребуется определить порт, параметры TLS, способ маскировки и учетные данные клиента. Hysteria 2 передает данные поверх QUIC, поэтому для сетевого экрана критически важно открыть именно UDP-порт, а не только TCP.

В экосистеме протокола встречаются режимы masquerade и разные варианты обфускации. Masquerade позволяет имитировать обычное обращение к веб-ресурсу, а Salamander скрывает структуру трафика с помощью парольной схемы. Gecko представляет более новую экспериментальную реализацию с фрагментацией служебных пакетов и дополнительным заполнением. Для первого запуска рациональнее выбрать наиболее простой и предсказуемый вариант - Salamander.

TLS-сертификат можно получить через ACME-клиент, использовать сертификат существующего сайта или настроить отдельное доменное имя. Важно, чтобы DNS-запись домена указывала на IP-адрес VPS, а сертификат соответствовал этому имени.

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

```bash
hysteria check -c /etc/hysteria/config.yaml
```

Ограничение доступа через UFW

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

Сначала разрешите SSH, чтобы не потерять доступ:

```bash
ufw allow 22/tcp
```

Затем откройте UDP-порт, на котором будет работать Hysteria 2, например:

```bash
ufw allow 443/udp
```

Активируйте межсетевой экран:

```bash
ufw enable
ufw status verbose
```

После этого входящие подключения к остальным портам будут блокироваться. Если на сервере используются веб-сайт, панель мониторинга или другой сервис, для них необходимо создать отдельные правила. Не следует открывать диапазоны портов без необходимости.

Запуск как системной службы

Чтобы Hysteria 2 запускалась автоматически после перезагрузки, создайте unit-файл systemd:

```bash
nano /etc/systemd/system/hysteria-server.service
```

Пример структуры службы:

```ini
[Unit]
Description=Hysteria 2 Server
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/hysteria server -c /etc/hysteria/config.yaml
Restart=on-failure
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target
```

Загрузите конфигурацию systemd и запустите сервис:

```bash
systemctl daemon-reload
systemctl enable --now hysteria-server
systemctl status hysteria-server
```

Журнал работы можно просматривать так:

```bash
journalctl -u hysteria-server -f
```

Если служба не стартует, сначала проверьте путь к бинарному файлу, права доступа, синтаксис YAML и наличие сертификатов. Частая ошибка - открытие TCP-порта вместо UDP или несовпадение имени домена с TLS-сертификатом.

Клиентская часть и проверка соединения

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

После запуска клиента проверьте:

1. разрешен ли UDP-порт в UFW;
2. совпадает ли доменное имя с сертификатом;
3. доступен ли сервер по DNS;
4. одинаковы ли пароли и параметры обфускации;
5. нет ли блокировки UDP у провайдера или локального маршрутизатора.

Для диагностики удобно параллельно открыть журнал:

```bash
journalctl -u hysteria-server -f
```

Информация о подключениях и ошибки TLS обычно сразу показывают, на каком этапе возникла проблема.

В итоге Hysteria 2 прокси сервер можно развернуть без веб-панели, ограничившись SSH, одним бинарным файлом, конфигурацией и systemd. Такой вариант требует немного больше внимания на старте, зато дает полный контроль над файлами, портами, журналами и обновлениями.

Для надежной эксплуатации регулярно обновляйте систему и саму Hysteria 2, храните резервные копии конфигурации без раскрытия секретов, следите за загрузкой CPU и сети. Не стоит публиковать конфиги с паролями в открытых репозиториях или отправлять их в чаты. При необходимости инфраструктуру можно дополнить fail2ban, мониторингом доступности, автоматическим продлением сертификатов и отдельным непривилегированным пользователем.

Так выглядит базовая Hysteria 2 конфигурация сервера без панели управления: VPS, защищенный SSH-доступ, закрытые лишние порты, корректный UDP-трафик и служба, автоматически запускающаяся после перезагрузки. Именно последовательность этих шагов важнее конкретного интерфейса или готового установочного скрипта.

Прокрутить вверх