Установка и настройка Hysteria2 на VPS (Ubuntu Server)

Установка и настройка Hysteria2 на VPS (Ubuntu Server)

Краткая заметка по развёртыванию прокси-сервера Hysteria2 на Ubuntu 24.04 LTS: TLS (Let's Encrypt), обфускация salamander, ALPN h3. Подойдёт для обхода блокировок и быстрого доступа к интернету с клиентов (v2rayN, мобильные приложения).


1. Вводные

Параметры, которые понадобятся дальше (подставьте свои значения):

  • ОС: Ubuntu Server 24.04 LTS (VPS).
  • Домен: ваш-домен.ru (должен быть указан и в SNI, и в сертификате).
  • Порт Hysteria2: 443/UDP.
  • Пароль доступа: придумайте надёжный пароль (например, длинная случайная строка).
  • Obfs: salamander с отдельным паролем обфускации.
  • ALPN: h3 (маскировка под HTTP/3).

Перед началом: A-запись домена на IP VPS, дождаться обновления DNS (проверка: ping ваш-домен.ru). Порядок: сначала п. 3 (сертификат), затем п. 2 (установка Hysteria2) — certbot занимает порт 80.


2. Установка Hysteria2 на сервер

Выполняйте после получения сертификата (п. 3). Подключитесь по SSH к серверу, далее все команды — от root или через sudo.

Обновление системы и установка curl:

sudo apt update
sudo apt full-upgrade -y
sudo apt install curl -y

Официальный установочный скрипт Hysteria2:

sudo bash -c 'curl -fsSL https://get.hy2.sh | bash'

Скрипт скачает бинарник hysteria и создаст базовый systemd-сервис.


3. Сертификат TLS (ACME / Let's Encrypt)

Выполните первым (порт 80 должен быть свободен). Если для вашего домена уже настроены nginx и ACME — используйте существующий сертификат. Если нет:

sudo apt install certbot -y
sudo certbot certonly --standalone -d ваш-домен.ru

Сертификаты будут лежать в:

  • /etc/letsencrypt/live/ваш-домен.ru/fullchain.pem
  • /etc/letsencrypt/live/ваш-домен.ru/privkey.pem

Hysteria2 умеет использовать эти файлы напрямую. Certbot продлевает сертификат по таймеру сам; чтобы Hysteria2 подхватил новый сертификат, после продления сервис нужно перезапустить. Deploy-hook делает это автоматически:

sudo tee /etc/letsencrypt/renewal-hooks/deploy/restart-hysteria.sh << 'EOF'
#!/bin/sh
systemctl restart hysteria-server
EOF
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/restart-hysteria.sh

4. Конфиг Hysteria2 сервера

Создаём каталог и файл конфигурации:

sudo mkdir -p /etc/hysteria
sudo nano /etc/hysteria/config.yaml

Пример конфига (замените ваш-домен.ru, пароли и при необходимости пути к сертификатам):

listen: :443
protocol: udp

acl:
  inline:
    - action: direct   # без лишних правил, трафик напрямую в интернет

auth:
  type: password
  password: "ВАШ_НАДЁЖНЫЙ_ПАРОЛЬ_ДОСТУПА"

obfs:
  type: salamander
  salamander:
    password: "ВАШ_ПАРОЛЬ_ОБФУСКАЦИИ"

tls:
  cert: /etc/letsencrypt/live/ваш-домен.ru/fullchain.pem
  key:  /etc/letsencrypt/live/ваш-домен.ru/privkey.pem
  sni: ваш-домен.ru
  alpn:
    - h3
  insecure: false

quic:
  congestion_control: bbr
  max_udp_payload_size: 1350

Важно: формат obfs — именно salamander с вложенной секцией salamander.password, как в официальной документации.


5. Systemd-сервис Hysteria2

Создаём или перезаписываем юнит:

sudo tee /etc/systemd/system/hysteria-server.service >/dev/null << 'EOF'
[Unit]
Description=Hysteria2 Server
After=network.target

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

[Install]
WantedBy=multi-user.target
EOF

Далее:

sudo systemctl daemon-reload
sudo systemctl enable --now hysteria-server
sudo systemctl status hysteria-server

Если статус active (running) — сервер запущен. Логи:

sudo journalctl -u hysteria-server -n 50 --no-pager

6. Firewall: порт 443/UDP

Если используется ufw (Ubuntu 24.04):

sudo ufw allow 443/udp
sudo ufw reload

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


7. Клиентский профиль (v2rayN / ссылка)

Под такой конфиг ссылка для импорта выглядит так (подставьте свой домен и пароли):

hysteria2://ВАШ_ПАРОЛЬ_ДОСТУПА@ваш-домен.ru:443/?obfs=salamander&obfs-password=ВАШ_ПАРОЛЬ_ОБФУСКАЦИИ&alpn=h3&insecure=0&sni=ваш-домен.ru#Метка-профиля

Пароль, домен, obfs и SNI должны совпадать с серверным конфигом.
insecure=0 — так как используется валидный сертификат Let's Encrypt.

В v2rayN:

  1. Скопируйте всю строку hysteria2://...#Метка.
  2. Правый клик → Import from clipboard.
  3. Выберите профиль, включите TUN и режим Global.

8. Быстрая проверка

С клиента (Windows или телефон):

  1. Поднять профиль Hysteria2.
  2. Открыть https://ipinfo.io — должен отображаться IP вашего VPS.
  3. Если соединения нет — смотреть логи на сервере: journalctl -u hysteria-server.

Установка проверена на Ubuntu Server 24.04 LTS, Hysteria2 v2.x, certbot 2.x.

Комментарии

Популярные сообщения