Перейти к содержанию

Сервер

Это руководство содержит краткое описание развёртывания сервера Hysteria с рекомендуемыми настройками. Обратите внимание, что Hysteria очень гибок, и представленные здесь параметры — лишь часть доступных возможностей. Для более тонкой настройки обратитесь к Полной конфигурации сервера.

Действия выполнялись в среде Linux, но на других платформах они аналогичны.

Предварительные требования

  • Сервер с публичным IP-адресом (подходят как IPv4, так и IPv6)
  • Доменное имя, направленное на IP-адрес сервера (подходят как домены верхнего уровня, так и поддомены)

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

Предположим, что вы уже скачали исполняемый файл для вашей платформы в директорию, например hysteria-linux-amd64-avx. Создайте файл config.yaml в той же директории.

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

Обязательно замените значения (особенно пароль) на свои.

# listen: :443 (1)

acme:
  domains:
    - your.domain.net # (2)!
  email: [email protected] # (3)!

auth:
  type: password
  password: Se7RAuFZ8Lzg # (4)!

masquerade: # (5)!
  type: proxy
  proxy:
    url: https://news.ycombinator.com/ # (6)!
    rewriteHost: true
  1. По умолчанию сервер слушает порт 443. Раскомментируйте эту строку, если хотите изменить порт. Если указан только номер порта (без адреса), как в примере, сервер будет слушать на IPv4 и IPv6. Для прослушивания только IPv4 используйте 0.0.0.0:443. Для только IPv6 — [::]:443.
  2. Замените на ваше доменное имя
  3. Замените на ваш email
  4. Замените на надёжный пароль по вашему выбору
  5. Подробнее о маскировке см. ниже
  6. Замените на URL сайта, под который хотите маскироваться
# listen: :443 (1)

tls:
  cert: your_cert.crt # (2)!
  key: your_key.key # (3)!

auth:
  type: password
  password: Se7RAuFZ8Lzg # (4)!

masquerade: # (5)!
  type: proxy
  proxy:
    url: https://news.ycombinator.com/ # (6)!
    rewriteHost: true
  1. По умолчанию сервер слушает порт 443. Раскомментируйте эту строку, если хотите изменить порт. Если указан только номер порта (без адреса), как в примере, сервер будет слушать на IPv4 и IPv6. Для прослушивания только IPv4 используйте 0.0.0.0:443. Для только IPv6 — [::]:443.
  2. Замените на путь к вашему файлу сертификата
  3. Замените на путь к вашему файлу ключа
  4. Замените на надёжный пароль по вашему выбору
  5. Подробнее о маскировке см. ниже
  6. Замените на URL сайта, под который хотите маскироваться

Маскировка

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

Для этого в нашем примере используется режим обратного прокси для «заимствования» контента с другого сайта. Обязательно замените URL на сайт, который хотите эмулировать. Hysteria также предлагает несколько других режимов отдачи контента; подробности см. в разделе Маскировка в Полной конфигурации сервера.

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

Запуск сервера

Поскольку Hysteria по умолчанию слушает порт 443, может потребоваться запуск с возможностью cap_net_bind_service или от имени root.

Следующая команда предоставляет необходимую возможность исполняемому файлу:

sudo setcap cap_net_bind_service=+ep ./hysteria-linux-amd64-avx

Запустите сервер следующей командой:

./hysteria-linux-amd64-avx server
./hysteria-linux-amd64-avx server -c whatever.yaml

Если вы видите в логах сообщение «server up and running» без ошибок — поздравляем 🎉! Вы успешно развернули сервер Hysteria.

Далее вы можете перейти к руководству по клиенту для настройки клиента.