docs(mediaserver): подробная документация по настройке Hysteria2

- URL-формат (Shadowrocket/NekoBox/Hiddify) с разбором всех параметров
- JSON-формат конфига и маппинг полей → Ansible переменные
- Таблица: адрес, порт, пароль, TLS insecure, obfuscation salamander
- UDP port hopping (transport.udp.hopInterval)
- Готовые примеры для всех сценариев (без prxy, self-signed, salamander)
This commit is contained in:
Sergey Antropoff
2026-04-26 00:44:18 +03:00
parent 5d7b32023e
commit 6176fb0e0e

View File

@@ -63,6 +63,173 @@ Init-контейнер автоматически прописывает в `co
<ProxyBypassLocalAddresses>True</ProxyBypassLocalAddresses>
```
### Настройка Hysteria2 сервера
#### Способ 1 — URL (Shadowrocket / Clash / NekoBox / hyst2 import)
Hysteria2 поддерживает стандартный URL-формат — его можно скопировать прямо из Shadowrocket, NekoBox, Hiddify и любого другого клиента:
```
hysteria2://PASSWORD@HOST:PORT?insecure=0&obfs=salamander&obfs-password=OBFS_PASS#MyProxy
```
Части URL:
| Часть | Значение |
|---|---|
| `PASSWORD` | Пароль аутентификации (`auth`) |
| `HOST:PORT` | Адрес и порт сервера |
| `insecure=1` | Отключить проверку TLS-сертификата (self-signed) |
| `insecure=0` | Проверять сертификат (Let's Encrypt / доверенный CA) |
| `obfs=salamander` | Включить obfuscation типа salamander |
| `obfs-password=...` | Пароль для obfuscation |
| `#MyProxy` | Имя (метка — игнорируется, только для отображения) |
Примеры URL:
```
# Без obfuscation, с проверкой TLS
hysteria2://mypassword@vps.example.com:443
# Без obfuscation, самоподписанный сертификат
hysteria2://mypassword@1.2.3.4:443?insecure=1
# С salamander obfuscation
hysteria2://mypassword@vps.example.com:443?obfs=salamander&obfs-password=obfsecret
# Полный вариант с именем
hysteria2://mypassword@vps.example.com:443?insecure=0&obfs=salamander&obfs-password=obfsecret#MyVPS
```
Чтобы использовать URL в vault — просто разбери его на части:
```yaml
# Из URL: hysteria2://mypassword@vps.example.com:443?obfs=salamander&obfs-password=obfsecret
vault_hysteria2_server: "vps.example.com:443"
vault_hysteria2_auth: "mypassword"
```
Obfuscation и TLS задаются отдельными переменными — см. ниже.
---
#### Способ 2 — JSON / inline конфиг
Если у тебя есть конфиг в JSON-формате (экспорт из Hiddify, XRay-клиентов и т.д.):
```json
{
"server": "vps.example.com:443",
"auth": "mypassword",
"tls": {
"insecure": false,
"sni": "vps.example.com"
},
"obfs": {
"type": "salamander",
"salamander": {
"password": "obfsecret"
}
},
"socks5": {
"listen": "127.0.0.1:1080"
}
}
```
Маппинг JSON → переменные Ansible:
| JSON поле | Ansible переменная |
|---|---|
| `server` | `vault_hysteria2_server` |
| `auth` | `vault_hysteria2_auth` |
| `tls.insecure: true` | `mediaserver_hysteria2_insecure: true` |
| `obfs.type` | `mediaserver_hysteria2_obfs_type` |
| `obfs.salamander.password` | `mediaserver_hysteria2_obfs_password` |
---
#### Параметры в `group_vars/all/main.yml`
```yaml
# Адрес и порт сервера (из vault)
vault_hysteria2_server: "vps.example.com:443"
vault_hysteria2_auth: "mypassword"
# TLS — пропустить проверку сертификата (self-signed)
mediaserver_hysteria2_insecure: false # true если сервер с самоподписанным сертом
# Obfuscation (salamander) — скрыть протокол от DPI
mediaserver_hysteria2_obfs_type: "salamander" # "" — без obfuscation
mediaserver_hysteria2_obfs_password: "obfsecret"
# UDP переадресация включена по умолчанию в Hysteria2
# Интервал смены UDP портов (hop) — защита от блокировки по порту
# Задаётся в конфиге: transport.udp.hopInterval: 30s
```
Итоговый конфиг, который попадёт в Secret (`hysteria2-secret.yaml.j2`):
```yaml
server: vps.example.com:443
auth: mypassword
tls:
insecure: false # true = игнорировать самоподписанный сертификат
obfs:
type: salamander
salamander:
password: obfsecret
socks5:
listen: 127.0.0.1:1080 # Prowlarr подключается сюда
transport:
udp:
hopInterval: 30s # UDP port hopping каждые 30 сек
```
---
#### Быстрый старт без obfuscation (минимальный пример)
```yaml
# vault.yml
vault_hysteria2_server: "1.2.3.4:443"
vault_hysteria2_auth: "supersecretpassword"
```
```bash
make addon-mediaserver
```
#### С obfuscation salamander
```yaml
# vault.yml
vault_hysteria2_server: "vps.example.com:443"
vault_hysteria2_auth: "supersecretpassword"
```
```yaml
# group_vars/all/main.yml или через ARGS
mediaserver_hysteria2_obfs_type: "salamander"
mediaserver_hysteria2_obfs_password: "obfs-secret-phrase"
```
```bash
make addon-mediaserver ARGS="-e mediaserver_hysteria2_obfs_type=salamander -e mediaserver_hysteria2_obfs_password=obfs-secret-phrase"
```
#### Self-signed сертификат на сервере
```bash
make addon-mediaserver ARGS="-e mediaserver_hysteria2_insecure=true"
```
#### Без прокси (если не нужен)
```bash
make addon-mediaserver ARGS="-e mediaserver_hysteria2_enabled=false"
```
## Установка
### 1. Vault секреты