В этом году я, как и многие посетители Хабра, с огромным интересом читал статьи уважаемого @MiraclePtr учился применять озвученные им идеи и рекомендации, на практике знакомясь с протоколами, клиентами и графическими панелями. Для многих протоколов существуют подробные инструкции по установке и настройке, доступные самым неискушенным пользователям, начинающим знакомиться с миром Linux.

Дошли у меня руки и до вкратце описанного в статье Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все протокола Hysteria, который уже добрался до второй версии. Но для него я не нашёл цельной русскоязычной инструкции, что вызвало желание собрать воедино информацию, когда я разобрался с основными вопросами установки, настройки сервера и клиентов для использования этого протокола.

Аяха Хидери, официальный аниме-талисман Hysteria
Аяха Хидери, официальный аниме-талисман Hysteria

Hysteria – это быстрый кроссплатформенный работающий на основе модифицированного протокола QUIC протокол с широким набором режимов (SOCKS5, HTTP-прокси, пересылка TCP/UDP, Linux TProxy), поддержкой пользовательской аутентификации, статистики трафика и контроля доступа, проброс портов, маскирующийся под стандартный трафик HTTP/3, что делает его сложным для обнаружения и блокирования. Несмотря на то, что QUIC почти полностью блокируется в России, в Hysteria возможно использовать обфускацию трафика, что, правда, может привести к его блокировке вместе с другими неопознанными протоколами. Для Hysteria пока нет никаких панелей, но на практике и без них настроить сервер и клиентов довольно просто.

Протокол развивается, хорошо работает и вполне может вам пригодиться наряду с популярными сейчас Shadowsocks, XTLS-Reality и другими протоколами. Мы же не кладём все яйца в одну корзинку ????

Установка

Домашняя страница Hysteria2
Официальный репозиторий Hysteria

В дальнейшем предполагаю, что у вас есть VPS c Debian/Ubuntu и SSH доступ к нему (как и права root на нём). Для других дистрибутивов Linux синтаксис и команды могут отличаться, но общий смысл команд будет аналогичным. Признаюсь сразу, я не великий знаток Linux, поэтому замечания и советы приветствуются.

Также обязательно наличие домена, его можно купить на год за небольшие деньги (например, на regway.com), или получить бесплатно на dynu.com.

Рассмотрим два варианта установки Hysteria на сервер:  в контейнере Docker или установкой на сервер.

Запуск в контейнере Docker

Установить Docker engine можно по официальному руководству.

Загрузите образ командой:

sudo docker pull teddysun/hysteria

Создайте папку для конфигурации:

sudo mkdir -p /etc/hysteria

Создайте файл конфигурации server.yaml (параметры конфигурации рассматриваются ниже), в котором укажите путь к вашим файлам сертификата домена (если используете свои сертификаты, а не скрипт acme.sh) и остальные параметры конфигурации сервера. Вам надо обеспечить доступность файлов для чтения.

sudo nano /etc/hysteria/server.yaml

Запустите контейнер, указав тот же порт, что и в файле конфигурации:

sudo docker run -d -p 443:443/udp --name hysteria --restart=always -e TZ=Europe/Moscow -v /etc/hysteria:/etc/hysteria teddysun/hysteria

Логи контейнера можно посмотреть этой командой:

sudo docker logs hysteria

Установка на сервер

Дальнейшие команды приведены для запуска от обычного пользователя с повышением прав командой sudo. В качестве подготовки к установке для новичков в Linux приведу рекомендуемые команды после разворачивания образа ОС на VPS:

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

После этого я обычно перегружаю VPS для возможной установки обновленного ядра.

Как и для большинства современных протоколов VPN/proxy, у разработчиков существует скрипт для установки/обновления или удаления Hysteria на Linux сервере. Для пользователя root установка/обновление Hysteria выполняется командой:

bash <(curl -fsSL https://get.hy2.sh/)

Запуск этого скрипта от обычного пользователя с повышением прав командой sudo у меня выдаёт ошибку об отсутствии доступа curl к специальным файлам /dev/fd/хх. Это решается обычным скачиванием скрипта в папку пользователя и последующим запуском с повышением прав командой sudo:

wget https://get.hy2.sh/install_server.sh && chmod 755 install_server.sh && sudo ./install_server.sh

После установки вам надо определиться со способом указания сертификата и приватного ключа домена: вы можете указать путь к уже имеющимся у вас файлам сертификата или позволить Hysteria автоматически получить (и продлевать) сертификат с помощью встренного скрипта acme.sh, указав домен и почту в файле конфигурации сервера.

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

После этого надо отредактировать конфигурацию сервера. Описание всех параметров файла конфигурации сервера доступно здесь. В YAML отступы из пробелов (символы табуляции не допускаются) используются для обозначения структуры, поэтому убирать и добавлять лишние пробелы не рекомендуется. Часть непонятных ошибок в процессе настройки и тестирования разных режимов у меня было из-за лишнего/отсутствующего пробела.

sudo nano /etc/hysteria/config.yaml

Конфигурация по умолчанию выглядит так:

# listen: :443

acme:
  domains:
    - your.domain.net
  email: your@email.com

auth:
  type: password
  password: RZhuNfVtgQgQuPInznsiygIq

masquerade:
  type: proxy
  proxy:
    url: https://news.ycombinator.com/
    rewriteHost: true

Это набор необходимых параметров файла конфигурации.  Разберём эти параметры.

# listen: :443

По умолчанию Hysteria слушает 443 порт, но если вы хотите использовать другой порт - надо убрать комментарий с этого параметра и указать нужный вам порт.

acme:
  domains:
    - your.domain.net
  email: your@email.com

Здесь нужно указать ваш домен и email для получения сертификата с помощью скрипта acme.sh. Сертификаты будут автоматически получены и сохранены в подпапку использованного центра сертификации по пути /var/lib/hysteria/acme/certificates

Вместо этого можно указать уже имеющиеся у вас файлы сертификата:

tls:
  cert: your_cert.crt
  key: your_key.key

В этом случае вам надо обеспечить доступность к чтению файлов сертификата для Hysteria, для этого достаточно команды

sudo chmod 644 -Rf путь_к_файлам_сертификата

Например, если файлы сертификата лежат в /etc/ssl/private, то этот параметр принимает такой вид:

tls:
  cert: /etc/ssl/private/fullchain.cer
  key: /etc/ssl/private/private.key

Аутентификация

Эта секция задаёт аутентификацию. Возможна аутентификация по паролю, HTTP и командная аутентификация.

При выборе аутентификации по паролю можно использовать единый пароль или использовать многопользовательскую конфигурацию:

auth:
  type: password
  password: RZhuNfVtgQgQuPInznsiygIq
auth:
  type: userpass
  userpass:
    user1: pass1
    user2: pass2
    user3: pass3

HTTP-аутентификация задаётся так:

auth:
  type: http
  http:
    url: http://your.backend.com/auth
    insecure: false
  command: /etc/some_command

При использовании HTTP-аутентификации при попытке подключения клиента сервер будет отправлять на внутренний сервер POST-запрос со следующим JSON:

{
  "addr": "123.123.123.123:44556", 
  "auth": "something_something", 
  "tx": 123456 
}

Ваша конечная точка должна ответить объектом JSON со следующими полями:

{
  "ok": true, 
  "id": "john_doe" 
}

При использовании командной аутентификации при попытке подключения клиента сервер будет выполнять указанную команду со следующими аргументами:

/etc/some_command addr auth tx

Команда отправляет уникальный идентификатор клиента в stdout и возвращает код 0, если соединение с клиентом разрешено, или ненулевым кодом, если клиент отвергнут.

Если команда не выполняется, то клиент также будет отвергнут.

Маскарад

Секция “маскарад” определяет используемую маскировку. Одним из ключевых моментов противодействия цензуре в Hysteria является его способность маскироваться под стандартный трафик HTTP/3. Это означает, что пакеты не только отображаются как HTTP/3 для промежуточных узлов, но и сервер отвечает на HTTP-запросы как обычный веб-сервер.

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

Если цензура не вызывает опасений, можно полностью отказаться от секции masquerade. В этом случае Hysteria всегда будет возвращать "404 Not Found" для всех HTTP-запросов.

В настоящее время Hysteria предоставляет следующие режимы "маскарада":

  • file: Действует как статический файловый сервер, отображая файлы из каталога.

  • proxy: Действует как обратный прокси-сервер, передавая содержимое с другого сайта.

  • string (строка): Действует как сервер, который всегда возвращает строку, заданную пользователем.

  type: file
  file:
    dir: /www/masq
  type: proxy
  proxy:
	url: https://news.ycombinator.com/
	rewriteHost: true
  type: string
  string:
    content: hello stupid world
    headers:
      content-type: text/plain
      custom-stuff: ice cream so good
    statusCode: 200 

Я обычно выбираю действующий сайт, расположенный в подсети моего VPS (в этом мне помогает BGP Toolkit)

Обфускация трафика

По умолчанию протокол Hysteria имитирует HTTP/3. Если ваша сеть специально блокирует трафик QUIC или HTTP/3 (но не UDP в целом), то для обхода этого можно использовать обфускацию. В настоящее в Hysteria реализована обфускация под названием "Salamander", которая преобразует пакеты в случайные байты без шаблона. Для работы этой функции требуется пароль, который должен быть одинаковым как на стороне клиента, так и на стороне сервера (Включение обфускации сделает ваш сервер несовместимым со стандартными QUIC-соединениями, и он больше не будет функционировать как действительный HTTP/3-сервер)

Для включения обфускации трафика в конфигурацию надо добавить следующий раздел

obfs:
  type: salamander
  salamander:
    password: cry_me_a_r1ver

Проброс портов

Пользователи в Китае иногда сообщают, что их провайдеры блокируют или ограничивают постоянные UDP-соединения. Однако эти ограничения часто распространяются только на конкретный используемый порт. В качестве обходного пути в этой ситуации можно использовать проброс портов.

Конфигурация клиента

Клиент Hysteria поддерживает специальный формат многопортовых адресов:

example.com:1234,5678,9012
example.com:20000-50000
example.com:1234,5000-6000,7044,8000-9000

Количество портов, которые можно указать, не ограничено.
Клиент будет случайным образом выбирать один из указанных портов для первоначального соединения и периодически переключаться на другой порт. Опция для управления интервалом - hopInterval в транспортной секции:

transport:
  udp:
    hopInterval: 30s

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

Сервер Hysteria не имеет встроенной поддержки прослушивания нескольких портов, поэтому вы не можете использовать приведенный выше формат в качестве адреса прослушивания на стороне сервера. Разработчики рекомендуют использовать iptables DNAT для перенаправления портов на прослушивающий порт сервера.

# IPv4
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :443
# IPv6
ip6tables -t nat -A PREROUTING -i eth0 -p udp --dport 20000:50000 -j DNAT --to-destination :443

В этом примере сервер прослушивает порт 443, но клиент может подключиться к любому порту в диапазоне 20000-50000.

Как подсказал уважаемый @Renaissance, Для port hopping при использовании nftables можно использовать redirect в таблице NAT (при условии что hysteria2 запущена на дефолтном 443 порту и нет разделения на ip4/ip6):

udp dport 20000-50000 redirect to 443

Полезные пункты конфигурации сервера

Вы можете указать, какой DNS-сервер использовать для разрешения доменных имен в клиентских запросах.

resolver:
  type: udp
  tcp:
	addr: 8.8.8.8:53
	timeout: 4s
  udp:
	addr: 8.8.4.4:53
	timeout: 4s
  tls:
	addr: 1.1.1.1:853
	timeout: 10s
	sni: cloudflare-dns.com
	insecure: false
  https:
	addr: 1.1.1.1:443
	timeout: 10s
	sni: cloudflare-dns.com
	insecure: false

Правила ACL, часто используемые в сочетании с outbounds, являются мощной функцией сервера Hysteria, позволяющей настраивать способ обработки запросов клиентов. C помощью ACL можно блокировать определенные адреса или использовать разные outbounds для разных сайтов. Можно использовать либо файловый, либо инлайн вариант указания правил обработки. Подробно доступные правила  ACL приведены здесь.

Как напомнил уважаемый @Renaissance, разработчики не рекомендуют использовать Hysteria для проксирования трафика HTTP/3 (когда можно использовать HTTP/2 или ниже):

"В настоящее время все сайты и приложения используют QUIC только в качестве "апгрейда". Если сеть его не поддерживает (например, UDP заблокирован), то происходит переход на HTTP/2 или более низкий уровень (который использует TCP).
Если вы используете Chrome или Firefox с прокси-сервером HTTP/SOCKS5 на ПК, то браузер сам по себе фактически отключил HTTP/3, поскольку прокси-сервер HTTP не может поддерживать пересылку UDP. Что касается SOCKS5, то, хотя теоретически он поддерживает UDP, в Chrome и Firefox он не реализован.
Если вы используете VPN-клиент типа Shadowrocket, SagerNet на телефоне (или TUN на ПК), рекомендуется вручную отключить HTTP/3 одним из следующих способов":

  • Chrome: Откройте страницу chrome://flags/, найдите параметр Experimental QUIC protocol и переключите его значение в Disabled

  • Firefox: Откройте страницу about:config, найдите параметр network.http.http3.enable и переключите его значение в false

  • Блокируйте UDP порт 443 правилом ACL (inline):
    - reject(all, udp/443)

В настоящее время Hysteria поддерживает следующие типы исходящих соединений outbounds:

  • direct: Прямое соединение через локальный интерфейс.

  • socks5: SOCKS5-прокси.

  • http: HTTP/HTTPS‑прокси.

В частности, я использую на сервере WARP прокси и некоторые сайты пускаю через него, что позволяет без проблем пользоваться сервисами OpenAI.com, например. Также я отключил доступ на российские ресурсы (вдруг в клиенте шаловливые ручки отключат для них обход прокси).

outbounds:
  - name: warp_proxy
	type: socks5
	socks5:
  	addr: 127.0.0.1:40000
acl:
  inline:
# WARP proxy
  - warp_proxy(suffix:google.com)
  - warp_proxy(suffix:openai.com)
# Block RU
  - reject(geoip:ru)
# Block Google Ads
  - reject(geosite:google@ads)
# Block UDP port 443
  - reject(all, udp/443)
# Direct all other connections
  - direct(all)

Скрипт установки WARP прокси я использовал этот: https://github.com/P3TERX/warp.sh, установка происходит командой

cd && bash <(curl -fsSL git.io/warp.sh) proxy

Правда, с Debian 12 скрипт не работает, надо добавить в 164 строку кодовое имя этой ОС bookworm. Автору я тикет отправил, он пока не отреагировал:

Для себя я пока сделал форк и запускаю на Debian 12 установку WARP прокси командой

cd && bash <(curl -fsSL https://raw.githubusercontent.com/Rennats/warp.sh/main/warp.sh) proxy

Завершение установки

После редактирования файла конфигурации остаётся только запустить сервис и добавить его в запускаемые при старте сервера сервисы:

sudo systemctl start hysteria-server.service
sudo systemctl enable hysteria-server.service

Посмотреть журнал сервиса можно этой командой:

sudo journalctl -u hysteria-server.service

Настройка клиентов

Вы можете использовать официальный клиент под нужную ОС, который можно скачать с Github, или сторонние клиенты, список которых доступен здесь.

Официальный клиент под Windows x64 (https://download.hysteria.network/app/latest/hysteria-windows-amd64.exe) запускается с расположенным с ним в одном каталоге файлом  config такого содержания, параметры которого должны совпадать с файлом конфигурации сервера:

server: your.domain.net:443
auth: RZhuNfVtgQgQuPInznsiygIq
obfs:
  type: salamander
  salamander:
	password: cry_me_a_r1ver
http:
  listen: 127.0.0.1:8080
socks5:
  listen: 127.0.0.1:1080

В случай многопользовательской конфигурации секция auth: выглядит так:

auth: user:pass

Описание всех параметров файла конфигурации клиента доступно здесь.

Из сторонних клиентов я использую NekoBox for Android и Nekoray для Windows.

В обеих программах при добавлении конфигурации необходимо выбрать тип Hysteria, в пунктах Сервер и SNI прописать имя домена, указать удаленный порт на сервере, пароль подключения и пароль обфускации.

NekoBox for Android
NekoBox for Windows
NekoBox for Windows


Комментарии (13)


  1. Renaissance
    26.11.2023 08:36
    +4

    После установки вам надо определиться со способом указания сертификата и приватного ключа домена: вы можете указать путь к уже имеющимся у вас файлам сертификата или позволить Hysteria автоматически получить (и продлевать) сертификат с помощью установленного скрипта acme.sh, указав домен и почту в файле конфигурации сервера.

    не нужны никакие дополнительные acme.sh, hysteria2 уже имеет в своем составе встроенный ACME клиент (о его конфигурации ниже же и написано), абсолютно нет смысла дублировать функционал.

    Все что нужно для получения сертификата, это секция "acme" в конфигурации и открытый порт 443/tcp (дефолтный, изменяемый). Для российских доменов нужно изменить параметр ca на letsencrypt, т.к. zerossl отказывается выдавать сертификаты на российские домены (RU точно).

    HTTP-аутентификация задаётся так:

    в этом блоке 2 типа аутентификации вообще указаны. command это отдельный 3 тип.

    Для port hopping при использовании nftables можно использовать redirect в таблице nat, типа такого (при условии что hysteria2 запущена на дефолтном 443 порту и нет разделения на ip4/ip6):

    udp dport 20000-50000 redirect to 443

    Вы можете указать, какой DNS-сервер использовать для разрешения доменных имен в клиентских запросах.

    судя по вопросам на GitHub, указать можно несколько, но использоваться будет только первый, а в случае его недоступности будет использован системный DNS (также он будет использоваться если не задавать dns в конфигурации вообще).

    Ну в итоге Hysteria2 выглядит неплохо, работает тоже неплохо.

    Но нужен незаблокированный провайдером QUIC (обходится использованием obfs) и лучше всего свой домен на который можно получать сертификат LE, иначе будут пляски с добавлением самоподписанных в доверенные.

    РКН баловался блокировкой QUIC точно, блокировал все по белым спискам (vk.com в нем), дают ли еще где-то бесплатно домены - вопрос открытый.


  1. quakin
    26.11.2023 08:36
    +4

    Для Hysteria пока нет никаких панелей...

    Иранская панель Hiddify-manager вроде как поддерживает Hysteria2.
    (по крайней мере тег `hysteria2` стоит у них на гитхабе)


  1. GolyshkinAlexey
    26.11.2023 08:36
    -1

    Интересно


  1. Renaissance
    26.11.2023 08:36
    +4

    После установки вам надо определиться со способом указания сертификата и приватного ключа домена: вы можете указать путь к уже имеющимся у вас файлам сертификата или позволить Hysteria автоматически получить (и продлевать) сертификат с помощью установленного скрипта acme.sh, указав домен и почту в файле конфигурации сервера.

    не нужны никакие дополнительные acme.sh, hysteria2 уже имеет в своем составе встроенный ACME клиент (о его конфигурации ниже же и написано), абсолютно нет смысла дублировать функционал.

    Все что нужно для получения сертификата, это секция "acme" в конфигурации и открытый порт 443/tcp (дефолтный, изменяемый). Для российских доменов нужно изменить параметр ca на letsencrypt, т.к. zerossl отказывается выдавать сертификаты на российские домены (RU точно).

    HTTP-аутентификация задаётся так:

    в этом блоке 2 типа аутентификации вообще указаны. command это отдельный 3 тип.

    Для port hopping при использовании nftables можно использовать redirect в таблице nat, типа такого (при условии что hysteria2 запущена на дефолтном 443 порту и нет разделения на ip4/ip6):

    udp dport 20000-50000 redirect to 443

    Вы можете указать, какой DNS-сервер использовать для разрешения доменных имен в клиентских запросах.

    судя по вопросам на GitHub, указать можно несколько, но использоваться будет только первый, а в случае его недоступности будет использован системный DNS (также он будет использоваться если не задавать dns в конфигурации вообще).

    Ну в итоге Hysteria2 выглядит неплохо, работает тоже неплохо.

    Но нужен незаблокированный провайдером QUIC (обходится использованием obfs) и лучше всего свой домен на который можно получать сертификат LE, иначе будут пляски с добавлением самоподписанных в доверенные.

    РКН баловался блокировкой QUIC точно, блокировал все по белым спискам (vk.com в нем), дают ли еще где-то бесплатно домены - вопрос открытый.


    1. MiraclePtr
      26.11.2023 08:36

      А встроенный acme нормально работает при включенном obfs?


      1. Renaissance
        26.11.2023 08:36

        Да, только что проверил, работает.

        Используется challenge tls-alpn-01.


        1. Stanner Автор
          26.11.2023 08:36

          Спасибо, внес ваши замечания и предложения.
          А встроенный клиент поддерживает смену CA?


          1. Renaissance
            26.11.2023 08:36

            Да, zerossl или letsencrypt.


  1. Renaissance
    26.11.2023 08:36
    +3

    Еще одно дополнение в конфигурацию:

    разработчики рекомендуют запрещать QUIC/HTTP3 внутри прокси, в конфигурации это как раз пример использования ACL:

    acl:
      inline:
        - reject(all, udp/443)


  1. Renaissance
    26.11.2023 08:36
    +1

    Из интересного: разработчики собирают бинарники под довольно большой круг архитектур, в т.ч. и arm, поэтому hysteria2 можно запускать даже на роутерах (на примере OpenWRT):

    root@AC2100:/opt/hysteria# ./hysteria-linux-mipsle version
    
    ░█░█░█░█░█▀▀░▀█▀░█▀▀░█▀▄░▀█▀░█▀█░░░▀▀▄
    ░█▀█░░█░░▀▀█░░█░░█▀▀░█▀▄░░█░░█▀█░░░▄▀░
    ░▀░▀░░▀░░▀▀▀░░▀░░▀▀▀░▀░▀░▀▀▀░▀░▀░░░▀▀▀
    
    a powerful, lightning fast and censorship resistant proxy
    Aperture Internet Laboratory <https://github.com/apernet>
    
    Version:        v2.2.2
    BuildDate:      2023-11-23T04:58:09Z
    BuildType:      release
    CommitHash:     f48a5edd39433f51647c3739e8fed3adae21525c
    Platform:       linux
    Architecture:   mipsle-sf

    Но вот как там с QUIC, TLS последних версий, это надо пробовать. В теории должно работать, в моем роутере mbedtls quic не умеет, надо собирать отдельно с явной поддержкой.


    1. Stanner Автор
      26.11.2023 08:36

      Да, надо попробовать на моем кинетике, там только через Entware, правда, это возможно


  1. RoundRobin
    26.11.2023 08:36
    +1

    Спасибо за статью, как раз в дополнение с 3X-UI c Shadowsocks-2022 и VLESS-Realty (боевая система) и X-UI/Marzban (там все остальное для тестов всякие Trojan, VMESS и пр. с gRPC / Websockets / mKCP транспортами) хотел поиграться c Hiddify-Manager и Hysteria2.

    Но какие плюсы по сравнению с SS-2022 в РФ?
    QUIC массово блокируется, а с доп. обфускацией OBFS теряется сам смысл - выглядит так же, шифрованный поток данных, непохожий ни на что.


    И недавние события в Дагестане, показали, что такое полностью блокируют (там блокировали только TCP, но и с UDP провернуть это несложно).

    По скорости / загрузке на слабом железе есть приемущества?

    Пока остановился на XRay с SS-2022 и Realty для боевого применения, в планах еще вебсокеты через CDN добавить.

    UPD. С сертификатами у них очень удобно сделано из коробки, в 3X-UI хотели подобное сделать, но там свой путь.

    А домены можно по 0.55 в regway брать в неограниченных количествах (и крипту и карты РФ и ЯД принимают), дешевле нигде не видел.


    1. RoundRobin
      26.11.2023 08:36

      @Stanner это тонкий намек, что странно бороться с блокировками в РФ, но советовать покупать домены в РегРу.

      В компании, которая:

      1. с некоторых пор принадлежит специально назначенному порулить доменами Рунета самизнаетекем человеку;

      2. всячески поддерживает "суверенитезацию" интернета, обязательный СОРМ для РФ хостеров с 1 декабря (а другой рукой рассылает им предложения купить их бизнес за копейки, пока не поздно) и пр.;

      3. успех бизнеса которой и при старых владельцах напрямую был связан с ЕР и которая использовала админресурс в бизнесе.


      1. Stanner Автор
        26.11.2023 08:36

        QUICK у меня cейчас чаще всего работает (проверяю на https://quic.nginx.org/quic.html, например)
        Будут блокировки QUICK - включим обфускацию и проброс портов (port hopping) с большим диапазоном.
        Ну и другие протоколы нам в помощь, не будем держать все яйца в одной корзине ;)

        По регистрации - подправил, когда разбираться начал с Hysteria - зарегистрировал по быстрому просто для тестов. Если делать по правильному - то нужно и VPS, и домен офорлять анонимно на зарубежных сайтах.