← Назад

hysteria2-install

🔐 Войти для редактирования

Установка Hysteria2 на Ubuntu 24.04

Что такое Hysteria2

Hysteria2 — этоproxy-протокол на базе QUIC (UDP), разработанный для обхода блокировок и цензуры. Обеспечивает высокую скорость даже при потере пакетов, маскируется под обычный HTTPS-трафик.

Требования


Шаг 1 — Настройка DNS

  1. Зайди в панель управления DNS своего домена (Cloudflare, Reg.ru и т.д.)
  2. Создай A-запись:
    - Имя: vpn (или любое)
    - Значение: IP твоего сервера
    - Cloudflare: DNS-only (серое облако, НЕ проксировать — Hysteria2 работает по UDP, Cloudflare прокси только TCP)

  3. Проверь что DNS работает:

dig vpn.example.com +short
# должен вернуть IP сервера

Шаг 2 — Установка Hysteria2

# Официальный скрипт установки
bash <(curl -fsSL https://get.hy2.sh/)

Проверь что установилось:

hysteria version

Шаг 3 — Получение SSL-сертификата

Вариант A — Let's Encrypt (рекомендуется)

# Установка certbot
apt update && apt install -y certbot

# Получение сертификата (порт 80 должен быть свободен!)
certbot certonly --standalone -d vpn.example.com

# Сертификаты будут здесь:
# /etc/letsencrypt/live/vpn.example.com/fullchain.pem
# /etc/letsencrypt/live/vpn.example.com/privkey.pem

Вариант B — Self-signed (быстро, без домена)

mkdir -p /etc/hysteria
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout /etc/hysteria/server.key \
  -out /etc/hysteria/server.crt \
  -subj "/CN=vpn.example.com"

⚠️ С self-signed сертификатом клиент должен использовать insecure=1


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

Создай файл /etc/hysteria/config.yaml:

listen: :443

# TLS сертификаты
tls:
  cert: /etc/letsencrypt/live/vpn.example.com/fullchain.pem
  key: /etc/letsencrypt/live/vpn.example.com/privkey.pem

# Пароль (сгенерируй свой)
obfs:
  type: salamander
  salamander:
    password: ТВОЙ_ПАРОЛЬ_ОБФУСКАЦИИ

# Авторизация
auth:
  type: password
  password: ТВОЙ_ПАРОЛЬ_ДОСТУПА

# Маскировка под обычный сайт
masquerade:
  type: proxy
  proxy:
    url: https://bing.com
    rewriteHost: true

# Логи
log:
  level: info

Генерация паролей

# Пароль для auth (доступ клиента)
openssl rand -base64 16

# Пароль для obfs (обфускация)
openssl rand -base64 16

Шаг 5 — Настройка firewall

# UDP порт 443 — основной для Hysteria2
ufw allow 443/udp

# TCP 80 — для обновления Let's Encrypt
ufw allow 80/tcp

# Проверка
ufw status

⚠️ Hysteria2 работает по UDP, не TCP! Убедись что VPS-провайдер не блокирует UDP-трафик.


Шаг 6 — Запуск

# Запуск
systemctl start hysteria-server

# Автозапуск
systemctl enable hysteria-server

# Проверка статуса
systemctl status hysteria-server

# Логи (если ошибки)
journalctl -u hysteria-server -f --no-pager

Шаг 7 — Настройка клиента

Строка подключения

hysteria2://ПАРОЛЬ_ДОСТУПА@vpn.example.com:443?sni=vpn.example.com&insecure=0&obfs=salamander&obfs-password=ПАРОЛЬ_ОБФУСКАЦИИ#Hysteria2-MyVPN

Если self-signed сертификат: insecure=1 вместо insecure=0

Клиенты

Android:
- Hysteria2 (Google Play / GitHub)
- NekoBox (поддерживает Hysteria2)
- v2rayNG (с плагином)

iOS:
- Shadowrocket (платный, $2.99)
- Streisand (бесплатный)
- Stash

Windows / macOS:
- Hysteria2 (CLI: hysteria client)
- v2rayN / NekoRay
- Clash Verge (с hysteria-провайдером)

Пример конфига клиента (CLI)

Создай ~/config.yaml:

server: vpn.example.com:443

auth: ПАРОЛЬ_ДОСТУПА

tls:
  sni: vpn.example.com
  insecure: false  # true если self-signed

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

socks5:
  listen: 127.0.0.1:1080

http:
  listen: 127.0.0.1:8080

Запуск:

hysteria client -c ~/config.yaml

Шаг 8 — Автообновление сертификатов

# Тест обновления
certbot renew --dry-run

# Cron для автообновления (уже добавляется автоматически)
# Проверь:
systemctl list-timers | grep certbot

Hysteria2 автоматически подхватит новые сертификаты — перезапуск не нужен.


Шаг 9 — Проверка подключения

На сервере:

# Проверь что слушает порт 443 UDP
ss -ulnp | grep 443

# Логи в реальном времени
journalctl -u hysteria-server -f

На клиенте:

# Проверка через SOCKS5
curl --socks5 127.0.0.1:1080 https://ifconfig.me
# должен вернуть IP сервера, а не твой

Частые проблемы

Не подключается

Медленно

Сертификат истёк

certbot renew
systemctl restart hysteria-server

Ошибка "address already in use"

# Что занимает порт 443?
ss -ulnp | grep 443
ss -tlnp | grep 443

# Если Nginx/Apache — останови или перевеси на другой порт

Полезные команды

# Перезапуск
systemctl restart hysteria-server

# Стоп
systemctl stop hysteria-server

# Конфиг
nano /etc/hysteria/config.yaml

# Логи
journalctl -u hysteria-server -f --no-pager

# Версия
hysteria version

# Проверка конфига
hysteria server -c /etc/hysteria/config.yaml --check

Ссылка для импорта на телефон

hysteria2://ПАРОЛЬ@vpn.example.com:443?insecure=0&sni=vpn.example.com&obfs=salamander&obfs-password=ПАРОЛЬ_ОБФ#Hysteria2-MyVPN

Заменить:
- ПАРОЛЬ — пароль из auth
- vpn.example.com — твой домен
- ПАРОЛЬ_ОБФ — пароль из obfs
- insecure=0 → insecure=1 если self-signed