todo/Hysteria/config-client.md
loop-uh e4049ceeac
All checks were successful
Published content check / validate (push) Successful in 3s
TUN-режим: отметить, что это и есть «VPN» из интерфейсов клиентов
В обзоре протоколов, глоссарии Clash и заметках о Hysteria и VLESS явно указано,
что переключатель «VPN», «Режим VPN» или «VPN mode» в приложениях включает
именно TUN — виртуальный сетевой интерфейс. Подпись на кнопке разная, механизм
один; на мобильных он вообще неотделим от подключения.

Отдельно оговорено, что похожесть не равна тождеству: при TUN заворачивается
весь трафик системы, но протокол под ним остаётся прокси — клиент лишь сам
собирает соединения из перехваченных IP-пакетов, поэтому ICMP через туннель
по-прежнему не проходит.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 16:08:43 +03:00

13 KiB
Raw Permalink Blame History

date tags aliases link
2026-07-11
hysteria
конфигурация
клиент
socks5
tun
Конфиг клиента Hysteria 2
Hysteria client config
Hysteria SOCKS5 TUN
https://v2.hysteria.network/docs/getting-started/Client/

🦎 Hysteria 2 — конфиг клиента

[!info] О чём заметка Как настроить клиентскую часть Hysteria 2 на своём устройстве: адрес сервера, пароль, локальный SOCKS5/HTTP-прокси и режим TUN (полноценный VPN-туннель). Серверную часть нужно поднять заранее — см. Hysteria/config-server. Полный справочник по всем полям — в официальной документации Full Client Config.

TL;DR

  • Клиент — тот же бинарник hysteria, запускается в режиме клиента (./hysteria или ./hysteria client). Конфиг — config.yaml рядом с бинарником.
  • Минимум: server (адрес вашего сервера), auth (пароль с сервера) и хотя бы один режим — socks5 или http (локальный прокси).
  • bandwidth включает алгоритм Hysteria/bandwidth-brutal. Ставьте значения ЧУТЬ НИЖЕ реальной скорости канала — завышение только вредит.
  • Для самоподписанного сертификата на сервере — на клиенте tls.insecure: true вместе с tls.pinSHA256 (проверка отпечатка защищает от подмены).
  • Начиная с версии 2.4.1 SOCKS5 и HTTP можно повесить на один порт — просто задайте им одинаковый listen.
  • TUN-режим превращает клиент в системный VPN (заворачивает весь трафик), работает на Windows, Linux, macOS.

Базовый конфиг: SOCKS5 + HTTP прокси

Самый частый сценарий — поднять локальный прокси, который приложения (браузер и т.д.) используют для выхода через ваш сервер.

server: your.domain.net:443

auth: Se7RAuFZ8Lzg

bandwidth:
  up: 20 mbps
  down: 100 mbps

socks5:
  listen: 127.0.0.1:1080

http:
  listen: 127.0.0.1:8080

Поля:

  • server — адрес сервера в формате host:port (порт по умолчанию 443, можно опустить). Вместо этого можно вставить готовый URI hysteria2://... — тогда пароль и часть настроек уже внутри URI, и отдельно их не указывают.
  • auth — пароль, заданный на сервере. Если сервер использует userpass-аутентификацию, формат username:password.
  • bandwidth — заявленная скорость канала, включает Brutal. Подробно — Hysteria/bandwidth-brutal.
  • socks5.listen / http.listen — на каком локальном адресе поднять прокси. 127.0.0.1 — доступ только с этого же устройства.

[!tip] SOCKS5 и HTTP на одном порту С версии 2.4.1 клиент умеет отдавать оба протокола на одном порту: пропишите и socks5, и http, и укажите им одинаковый listen (например, оба 127.0.0.1:1080). Тогда приложение может подключаться к этому порту как по SOCKS5, так и по HTTP.

[!note] IPv6-адрес сервера берите в кавычки Некоторые значения конфликтуют с синтаксисом YAML. Например, IPv6-адрес с портом ([2001:db8::1]:443) сломает разбор файла. Оборачивайте такие значения в кавычки: server: "[2001:db8::1]:443".

Настройка скорости (bandwidth)

Секция bandwidth определяет, использовать ли Brutal — фирменный алгоритм Hysteria, который держит фиксированную скорость и не проседает при потерях пакетов. Если секцию убрать, клиент возьмёт обычный контроль перегрузки (по умолчанию BBR).

[!warning] Больше — не значит лучше Не завышайте bandwidth выше реальной пропускной способности вашего канала. Brutal попытается «выжать» указанную скорость независимо от потерь — если задать больше, чем канал тянет, это ударит по вам же: перегрузка, нестабильность, потеря данных. Ставьте значения чуть НИЖЕ реального максимума. Механика подробно разобрана в Hysteria/bandwidth-brutal.

TLS для самоподписанного сертификата

Если сервер использует валидный сертификат (через Hysteria/config-server), секция tls на клиенте не нужна. Она требуется, только если сертификат самоподписанный.

Лучший вариант — не отключать проверку полностью, а закрепить отпечаток сертификата:

tls:
  insecure: true
  pinSHA256: BA:88:45:17:A1...
  • insecure: true отключает стандартную проверку доверия (иначе самоподписанный сертификат будет отвергнут).
  • pinSHA256 закрепляет SHA-256 отпечаток сертификата сервера. Это возвращает защиту: клиент соединится, только если отпечаток совпал, — так атака «человек посередине» не пройдёт.

Отпечаток можно получить из файла сертификата: openssl x509 -noout -fingerprint -sha256 -in your_cert.crt.

[!danger] Не используйте insecure в одиночку insecure: true без pinSHA256 делает соединение уязвимым к подмене (MITM): клиент примет любой сертификат, в том числе подставленный провайдером или цензором. Если сертификат самоподписанный — всегда добавляйте pinSHA256. А ещё лучше — используйте валидный сертификат через ACME и вообще не трогайте insecure.

Альтернатива — указать доверенный CA-файл вместо отключения проверки: tls: { ca: ca.crt }.

TUN-режим — системный VPN

SOCKS5/HTTP-прокси заворачивают только те приложения, которые настроены на прокси. TUN-режим создаёт виртуальный сетевой интерфейс и перехватывает трафик всей системы — это то, что в интерфейсах других клиентов обычно и подписано как «режим VPN». Работает на Windows, Linux и macOS.

Важно не спутать похожесть с тождеством: заворачивается весь трафик, но сам Hysteria 2 остаётся protocols/00-overview, а не VPN. Он по-прежнему переносит отдельные TCP- и UDP-соединения, просто теперь клиент сам собирает их из перехваченных IP-пакетов. Отсюда и ограничение ниже: ICMP через TUN не проходит.

server: your.domain.net:443
auth: Se7RAuFZ8Lzg

tun:
  name: "hytun"
  address:
    ipv4: 100.100.100.101/30
    ipv6: 2001::ffff:ffff:ffff:fff1/126
  route:
    ipv4: [0.0.0.0/0]
    ipv6: ["2000::/3"]
    ipv4Exclude: [192.0.2.1/32]
    ipv6Exclude: ["2001:db8::1/128"]

[!danger] Обязательно исключите адрес сервера из маршрутов В ipv4Exclude/ipv6Exclude добавьте IP вашего Hysteria-сервера (в примере 192.0.2.1/32 — замените на реальный). Иначе трафик до самого сервера пойдёт в туннель, который идёт через этот же сервер, — получится петля маршрутизации, и соединение не поднимется.

Особенности TUN: он умеет только TCP и UDP (не проксирует ICMP, то есть ping через туннель не пойдёт). На macOS имя интерфейса должно быть вида utunN (например, utun123). На FreeBSD TUN не поддерживается.

[!note] Для Linux-шлюза есть альтернатива — TPROXY TUN — самый простой способ прозрачного проксирования и работает на всех ОС. Но если вы строите шлюз/роутер на Linux, который заворачивает трафик всей локальной сети, традиционный выбор — Hysteria/tproxy: он работает через правила фаервола, а не виртуальный интерфейс.

Запуск клиента

./hysteria          # клиент — режим по умолчанию, config.yaml подхватится сам
./hysteria -c whatever.yaml   # произвольное имя конфига

Windows: можно просто дважды кликнуть по .exe, если рядом лежит config.yaml.

Признак успеха — в логах строка «connected to server» без ошибок. Клиент также выведет строку «use this URI to share your server» с готовым URI hysteria2://...его удобно вставлять в другие клиенты как значение server (пароль и часть настроек уже внутри). При проблемах с подключением — Hysteria/troubleshooting.

[!note] Для новичков в прокси SOCKS5/HTTP-прокси нужно ещё «подключить» в приложении. Для браузера удобно расширение ZeroOmega (Chrome/Firefox): в нём указываете адрес прокси (127.0.0.1:1080) и переключаете профили.

📚 См. также


[!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.