Протоколы и обфускация
DPI ловит по трём признакам: рукопожатие/SNI, поведение трафика, IP. Транспорт закрывает первые два.
Что выбрать
| Протокол | Когда | Плюсы | Минусы |
|---|---|---|---|
| VLESS + Reality | базовый выбор для TCP/443 | без своего домена/сертификата, маскируется под чужой реальный TLS | нужен «донор»-сайт со свежим TLS 1.3 |
| Hysteria2 | мобильные сети, потери, where TCP режут | QUIC/UDP, быстрый на плохих каналах | UDP иногда режут — держите как второй |
| VLESS+gRPC/WS за CDN | когда блокируют по IP | прячется за CDN-домен | чуть выше задержка |
Практика: на ноду ставим Reality (443/TCP) + Hysteria2 (UDP). Клиент сам выберет рабочий.
📂 Детальный разбор всех профилей (VLESS-TCP-Reality, Self-steal, TCP-TLS, XHTTP-TLS/Reality/Self-steal, Hysteria2, Trojan, Shadowsocks-2022, WARP native) — с командами и готовыми конфигами — в статье «Профили подключений (inbounds)».
VLESS + Reality (xray inbound)
Сгенерируйте ключи и id:
# x25519 ключи (privateKey → на сервер, publicKey → клиенту)
xray x25519
# короткий shortId
openssl rand -hex 8
# uuid пользователя
xray uuid
Inbound на ноде (dest — реальный «донор» с TLS 1.3, напр. микрософт/гугл-домен):
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [{ "id": "UUID_КЛИЕНТА", "flow": "xtls-rprx-vision" }],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.microsoft.com:443",
"serverNames": ["www.microsoft.com"],
"privateKey": "PRIVATE_KEY_X25519",
"shortIds": ["SHORT_ID_HEX"]
}
}
}
Правила выбора dest/serverNames:
- домен с TLS 1.3 + HTTP/2, не за CDN, не ваш;
- не самый «палевный» — лучше нейтральные сервисы;
- разные serverNames на разных нодах, не один на всех.
Hysteria2 (config.yaml)
listen: ":443"
tls:
cert: /etc/hysteria/fullchain.pem
key: /etc/hysteria/privkey.pem
auth:
type: password
password: СИЛЬНЫЙ_ПАРОЛЬ
masquerade: # маскировка под обычный сайт при «тыке» браузером
type: proxy
proxy:
url: https://news.ycombinator.com
rewriteHost: true
bandwidth:
up: 200 mbps
down: 200 mbps
Hysteria2 любит, когда сервер не лимитирует UDP. Для TLS подойдёт обычный Let's Encrypt сертификат вашего домена ноды.
Trojan
Trojan прикидывается обычным HTTPS-сайтом: при «тыке» браузером отдаёт настоящий сайт (fallback), а проксирует только клиентов с верным паролем. Нужен домен + TLS-сертификат (Let's Encrypt) ИЛИ можно поднять Trojan поверх Reality (без своего домена/серта).
Trojan + TLS (свой домен, есть fallback на сайт)
{
"tag":"trojan-tls","listen":"0.0.0.0","port":443,"protocol":"trojan",
"settings":{
"clients":[{"password":"СИЛЬНЫЙ_ПАРОЛЬ"}],
"fallbacks":[{"dest":"8080"}] // сюда уходит «левый» трафик (реальный сайт/nginx)
},
"streamSettings":{"network":"tcp","security":"tls",
"tlsSettings":{"serverName":"your.domain",
"certificates":[{"certificateFile":"/etc/letsencrypt/live/your.domain/fullchain.pem",
"keyFile":"/etc/letsencrypt/live/your.domain/privkey.pem"}]}}
}
Получить сертификат:
apt -y install certbot
certbot certonly --standalone -d your.domain
Trojan + Reality (без своего домена/серта)
{
"tag":"trojan-reality","listen":"0.0.0.0","port":443,"protocol":"trojan",
"settings":{"clients":[{"password":"СИЛЬНЫЙ_ПАРОЛЬ"}]},
"streamSettings":{"network":"tcp","security":"reality",
"realitySettings":{"dest":"www.microsoft.com:443","serverNames":["www.microsoft.com"],
"privateKey":"PRIV","shortIds":["a1b2c3d4"]}}
}
Когда Trojan: как альтернатива/резерв к VLESS — другой протокол на случай, если VLESS-паттерн начнут фингерпринтить. Trojan+gRPC за CDN — ещё один вариант обхода по IP.
Shadowsocks-2022 (резерв)
SS-2022 (2022-blake3-aes-128-gcm) — лёгкий протокол без TLS-рукопожатия; полезен как запасной канал и для слабых устройств. Минус — нет TLS-маскировки, под жёстким DPI заметнее; держите как дополнение, не как основной для РФ.
{
"tag":"ss2022","listen":"0.0.0.0","port":8388,"protocol":"shadowsocks",
"settings":{"method":"2022-blake3-aes-128-gcm","password":"BASE64_16BYTE_KEY","network":"tcp,udp"}
}
Ключ: openssl rand -base64 16.
Несколько протоколов/транспортов на одной ноде и как отдать их хостами — в статье «Хосты — несколько нод и транспортов».
Гигиена протоколов
- Не светите один
SNI/донор на всех нодах — ротируйте. - Держите два транспорта на ноде (Reality + Hysteria2): один режут — работает второй.
- Меняйте порты/доноры после волны блокировок.
- Клиентам отдавайте подписку с несколькими конфигами (панель умеет) — авто-фейловер.
Дальше — что делать, когда IP/подсеть всё-таки заблокировали.