Новости
4 мин чтения

Cloak обфускация: настройка и подключение в 2026

Cloak обфускация: настройка и подключение в 2026 Если провайдер режет WireGuard или OpenVPN по DPI — обычная история для российских сетей 2026 года — Cloak обфускация: настройка и подключение становя...

Cloak обфускация: настройка и подключение в 2026

Если провайдер режет WireGuard или OpenVPN по DPI — обычная история для российских сетей 2026 года — Cloak обфускация: настройка и подключение становятся не опциональной темой, а необходимостью. Эта статья — технический разбор без воды: как работает Cloak, как поднять сервер, подключить клиент на Android/iOS/Windows и разобраться, почему соединение не устанавливается.

Что такое Cloak и зачем нужна обфускация трафика

Cloak — это pluggable transport, то есть транспортная обёртка. Он не заменяет VPN и не является прокси сам по себе. Его задача — взять трафик Shadowsocks или OpenVPN и упаковать его так, чтобы снаружи это выглядело как обычный TLS-запрос к какому-нибудь сайту.

Без обфускации DPI-оборудование видит характерные паттерны WireGuard или OpenVPN-рукопожатия и режет соединение. С Cloak трафик выглядит как HTTPS к условному example.com. Провайдер видит легитимный TLS, пропускает — а внутри едет ваш VPN-туннель.

Как DPI распознаёт VPN-трафик

Deep Packet Inspection работает по нескольким признакам сразу. Во-первых, сигнатуры протоколов: у WireGuard есть специфичный формат хэндшейка, у OpenVPN — характерный TLS-ClientHello с нестандартными cipher suites. Во-вторых, энтропия пакетов: зашифрованный VPN-трафик имеет очень высокую энтропию, что отличает его от реального HTTPS, где часть данных предсказуема.

Роскомнадзор с 2023 года активно использует ТСПУ — технические средства противодействия угрозам. Эти системы умеют не просто смотреть на порт, но и анализировать поведение соединения, тайминги, длины пакетов. Именно поэтому "смена порта" уже не помогает, а нужна полноценная маскировка.

Принцип работы Cloak: маскировка под обычный HTTPS/TLS

Cloak устанавливает TLS-сессию, в которой ClientHello выглядит как запрос браузера. ServerName (SNI) указывает на реальный существующий сайт. При этом сервер Cloak (ck-server) умеет перенаправлять "посторонних" — тех, кто подключается без правильного UID — на настоящий сайт-прикрытие. Это называется RedirAddr, и это важная часть маскировки, которую многие игнорируют.

Внутри TLS-сессии идёт ваш Shadowsocks или OpenVPN. Снаружи — обычный веб-трафик. DPI-системы видят корректный TLS к известному домену и не трогают соединение.

Чем Cloak отличается от Shadowsocks, VLESS/XRay и Amnezia (AmneziaWG)

Это честное сравнение, без объявления победителя.

Cloak — универсальная обёртка поверх Shadowsocks или OpenVPN. Требует своего домена и VPS. Хорошо работает там, где Reality недоступен. Поддерживается на большинстве платформ через плагины.

VLESS+Reality (XRay) — имитирует TLS-рукопожатие чужого сайта, вашего домена не нужно. Встроено в ядро XRay/Sing-box. Против активного зондирования (active probing) защищён лучше, чем базовый Shadowsocks, но настройка сложнее.

AmneziaWG — модифицированный WireGuard с рандомизацией заголовков. Проще в настройке, быстрее на уровне скорости, но менее универсален против глубокого DPI, потому что поведение трафика всё ещё отличается от HTTPS.

Что выбрать — зависит от вашего провайдера, оборудования и технической подготовки. Cloak выигрывает там, где уже есть работающий Shadowsocks-сервер и нужна быстрая надстройка.

Что нужно перед настройкой: сервер, ключи и клиент

Прежде чем переходить к командам, нужно убедиться, что у вас есть всё необходимое. Пропуск любого пункта — самая частая причина, почему подключение не устанавливается с первого раза.

Требования к серверу и домену

Вам нужен VPS за пределами России с чистым IPv4-адресом. Минимальные требования — 512 МБ RAM, Ubuntu 22.04 или Debian 12. Порт 443 должен быть открыт и не занят другими сервисами.

Домен или редирект-адрес для маскировки — желательно, но не строго обязательно. Без него Cloak работает, но активное зондирование провайдера обнаружит, что за "HTTPS" нет реального сайта. Для RedirAddr подойдёт любой крупный сайт на TLS — главное, чтобы он не был заблокирован Роскомнадзором. Например, www.bing.com:443 или www.kernel.org:443.

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

Генерация публичного и приватного ключей (ck-server, ck-client)

Cloak использует собственную схему на Curve25519. Ключи генерируются утилитой ck-server:

ck-server -key

Вывод будет примерно таким:

Your public key is: AAAA...BBBB=
Your private key is: CCCC...DDDD=

Публичный ключ вписывается в конфиг клиента (поле PublicKey). Приватный — только на сервере, никуда не публикуется и не передаётся. Потеряли приватный ключ — генерируете пару заново.

UID — это отдельный идентификатор пользователя. Генерируется командой:

ck-server -uid

Каждому пользователю — свой UID. Это позволяет отзывать доступ конкретному клиенту без смены ключей.

Выбор транспорта: Cloak + Shadowsocks или Cloak + OpenVPN

Cloak + Shadowsocks — рекомендуемая комбинация. Она нативно поддерживается в приложениях на Android (Shadowsocks + плагин Cloak из F-Droid), проще в настройке и имеет меньше накладных расходов.

Cloak + OpenVPN работает, но конфигурация сложнее: нужно запустить OpenVPN на локальном порту, а Cloak перенаправляет трафик к нему. На Windows это реализуемо, но на мобильных платформах — уже с ограничениями.

Пошаговая настройка сервера Cloak (ck-server)

Установка ck-server на Linux VPS

Заходите на сервер по SSH. Скачиваете последний релиз с GitHub (на момент написания это v2.7.0):

wget https://github.com/cbeuw/Cloak/releases/download/v2.7.0/ck-server-linux-amd64-v2.7.0
chmod +x ck-server-linux-amd64-v2.7.0
mv ck-server-linux-amd64-v2.7.0 /usr/local/bin/ck-server

Перед установкой убедитесь, что 443 порт свободен:

ss -tlnp | grep :443

Если там висит nginx или Apache — либо переносите их на другой порт, либо настраиваете проброс через них (сложнее). Самый чистый вариант — 443 только для Cloak.

Настройка config-файла и ProxyBook

Создаёте директорию и конфиг-файл:

mkdir /etc/cloak
nano /etc/cloak/ckserver.json

Пример конфига (плейсхолдеры вместо реальных значений):

{
  "ProxyBook": {
    "shadowsocks": ["tcp", "127.0.0.1:8388"]
  },
  "BindAddr": [":443"],
  "BypassUID": [],
  "RedirAddr": "www.kernel.org:443",
  "PrivateKey": "ВАШ_ПРИВАТНЫЙ_КЛЮЧ_ЗДЕСЬ",
  "AdminUID": "ВАШ_ADMIN_UID_ЗДЕСЬ",
  "DatabasePath": "/etc/cloak/userinfo.db",
  "StreamTimeout": 300
}

ProxyBook говорит Cloak, куда передавать трафик — в данном случае к Shadowsocks на локальном порту 8388. RedirAddr — адрес, куда отправляются все "посторонние" подключения без правильного UID. Это критичная настройка для маскировки.

Файл пользователей создаётся отдельно:

ck-server -u -dbPath /etc/cloak/userinfo.db -uid ВАШ_UID -bandwidth 0 -bypass false -expiry 0

Запуск как systemd-сервиса и проверка порта 443

Создаёте юнит-файл:

nano /etc/systemd/system/cloak-server.service
[Unit]
Description=Cloak Server
After=network.target

[Service]
ExecStart=/usr/local/bin/ck-server -c /etc/cloak/ckserver.json
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable cloak-server
systemctl start cloak-server
systemctl status cloak-server

Если статус active (running) — сервис поднялся. Проверяете порт:

ss -tlnp | grep :443

Должен быть ck-server на 0.0.0.0:443. Если его нет — смотрите journalctl -u cloak-server -n 50.

Настройка RedirAddr для маскировки под реальный сайт

Это место, где большинство мануалов молчат, а потом удивляются, что DPI всё равно палит трафик. Без корректного RedirAddr Cloak при подключении без UID просто вешается или отдаёт пустой ответ. Активное зондирование со стороны провайдера это сразу заметит.

RedirAddr должен указывать на живой HTTPS-сайт, который не заблокирован в России. Проверьте перед настройкой: curl -I https://www.kernel.org — должен вернуть 200 или 301, не таймаут.

Корпоративные и школьные сети с MITM-перехватом TLS ломают эту маскировку полностью — там Cloak не поможет, потому что сеть сама расшифровывает TLS и видит содержимое. Это не баг Cloak, а ограничение самого подхода.

Подключение клиента: Android, iPhone/iOS, Windows, Mac и роутеры

Android: Shadowsocks + плагин Cloak

На Android это работает чище всего. Устанавливаете два приложения: Shadowsocks из F-Droid или Google Play, и плагин Cloak Plugin for Android (также есть на F-Droid, пакет com.github.shadowsocks.plugin.ck).

В настройках профиля Shadowsocks:

  • Сервер: IP вашего VPS
  • Порт: 443
  • Пароль: пароль Shadowsocks
  • Метод шифрования: aes-256-gcm или chacha20-ietf-poly1305
  • Плагин: выбираете Cloak

В параметрах плагина (Plugin Options) вписываете строку вида:

UID=ВАШ_UID;PublicKey=ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ;ServerName=www.kernel.org;BrowserSig=chrome;NumConn=4

NumConn=4 — количество параллельных TLS-соединений. На мобильных лучше не ставить больше 4, иначе батарея садится быстрее без заметного прироста скорости.

iPhone/iOS: клиенты с поддержкой obfs/Cloak

На iOS выбор клиентов заметно уже. App Store в России периодически чистится, поэтому ситуация меняется. На момент написания работают варианты через Shadowrocket (платный, $2.99, аккаунт App Store другой страны) или Sing-Box.

В Shadowrocket добавляете сервер типа Shadowsocks, в поле Plugin выбираете cloak, вписываете те же параметры. Интерфейс менее удобный, чем на Android, но работает.

На Apple TV напрямую Cloak не ставится — там нет поддержки сторонних приложений с VPN-расширениями. Единственный вариант — раздавать уже обфусцированное соединение с роутера.

Windows и Mac: ck-client и связка с Shadowsocks

Скачиваете бинарник ck-client для своей платформы с того же GitHub-репозитория. Конфиг клиента (ckclient.json):

{
  "Transport": "direct",
  "ProxyMethod": "shadowsocks",
  "EncryptionMethod": "aes-256-gcm",
  "UID": "ВАШ_UID",
  "PublicKey": "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ",
  "ServerName": "www.kernel.org",
  "NumConn": 4,
  "BrowserSig": "chrome",
  "StreamTimeout": 300
}

Запускаете:

ck-client -c ckclient.json -s IP_ВАШЕГО_VPS -p 443 -l 1984 -i

Это поднимает локальный SOCKS5 на порту 1984, через который Shadowsocks-клиент (например, Shadowsocks-Windows или Outline в ручном режиме) подключается к серверу.

Конфликт с уже активным системным VPN — частая проблема на Windows. Если у вас запущен WireGuard или другой VPN, ck-client может не поднять SOCKS5 или не достучаться до сервера. Отключайте другой VPN перед запуском.

Роутеры (OpenWrt) и Smart TV / Apple TV: ограничения и обходные пути

На OpenWrt можно поставить ck-client напрямую — есть сборки под MIPS и ARM. Конфиг тот же, запуск через init.d или procd. Трафик с роутера проходит через Cloak прозрачно для всех подключённых устройств, включая Smart TV и консоли.

Но: если роутер от провайдера и вы не можете поставить прошивку — вариантов нет. Нужен отдельный роутер с OpenWrt или аналог типа GL.iNet с уже встроенной поддержкой плагинов.

Мобильные операторы с прозрачным прокси иногда режут соединения на 443 порту, если замечают нестандартное поведение TLS-сессии. В этом случае попробуйте BrowserSig: "firefox" вместо "chrome" — имитация немного другая.

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

Как убедиться, что трафик действительно маскируется

Базовая проверка: открываете 2ip.ru или whoer.net — должен показывать IP вашего VPS, а не домашний. Проверяете доступ к заблокированным ресурсам: Instagram, Twitter/X, YouTube (если ограничен у вашего провайдера), Telegram.

Более технически: запускаете Wireshark на своей машине и смотрите на трафик к серверу. Должны видеть TLS-соединения на порт 443 с SNI вашего ServerName. Никакого OpenVPN-хэндшейка, никаких WireGuard UDP-пакетов — всё выглядит как браузерный HTTPS.

Против активного зондирования: провайдер может сам подключиться к вашему серверу на 443 и проверить, что там. Если RedirAddr настроен правильно — провайдер получит редирект на настоящий сайт и ничего подозрительного не увидит.

Реальное падение скорости из-за обфускации

Честно: Cloak медленнее чистого WireGuard. Это факт, и не стоит этого скрывать.

Накладные расходы от TLS-обёртки, от нескольких параллельных соединений (NumConn), от дополнительного шифрования Shadowsocks поверх TLS — всё это съедает часть пропускной способности и увеличивает задержку. Насколько именно — зависит от вашего сервера, его нагрузки, расстояния до него и провайдера. Выдумывать конкретные цифры не стану.

Методика самостоятельного замера: идёте на speedtest.net или fast.com, делаете тест без VPN, записываете результат. Потом подключаете Cloak и делаете тест снова. Разница — это ваши реальные накладные расходы именно на вашем маршруте.

Что делать при замедлении со стороны провайдера

Если провайдер применяет шейпинг — намеренное замедление — попробуйте уменьшить NumConn до 2. Иногда слишком много параллельных TLS-соединений с одного адреса выглядит подозрительно.

Также стоит проверить, не применяет ли провайдер блокировку по SNI. Если ваш ServerName (например, www.bing.com) сам попал под блокировку Роскомнадзора — Cloak будет работать некорректно, потому что соединение с заблокированным доменом само по себе подозрительно. Меняете ServerName на незаблокированный домен.

Типичные ошибки подключения и их решение

Ошибка рукопожатия TLS и несовпадение ключей

Симптом: подключение зависает на стадии установки сессии, клиент выдаёт TLS handshake failed или просто таймаут.

Первый кандидат — неправильный PublicKey в конфиге клиента. Проверяете побайтово: ключи Cloak — это base64-строки, любая лишняя буква или пробел ломает всё. Копируйте ключ напрямую из вывода ck-server -key, не перепечатывайте вручную.

Второй кандидат — неправильный UID. Убеждаетесь, что UID в клиентском конфиге совпадает с тем, что добавлен в базу пользователей сервера (userinfo.db).

Рассинхрон системного времени

Это одна из самых недооценённых причин ошибок, которую большинство мануалов не упоминают. Cloak проверяет временну́ю метку в рукопожатии. Если разница между временем на клиенте и сервере больше нескольких минут — сессия отвергается.

На сервере проверяете:

timedatectl status

NTP должен быть синхронизирован. Если нет:

systemctl enable --now systemd-timesyncd
timedatectl set-ntp true

На Android часы обычно синхронизированы автоматически. На Windows — проверяете через w32tm /query /status.

Провайдер блокирует по SNI / ServerName

Если ServerName в вашем конфиге указывает на заблокированный домен — DPI режет TLS-соединение до установки сессии. Cloak это не поможет, потому что SNI передаётся в открытом виде в ClientHello.

Решение: меняете ServerName на домен, который точно не заблокирован в России. Проверяете через curl -I https://ваш-domain.com с российского IP (можно через мобильный оператор без VPN).

Подключение есть, но нет доступа в интернет

Cloak-туннель установился, IP-адрес сменился, но сайты не открываются. Это проблема не Cloak, а транспорта внутри — Shadowsocks или OpenVPN.

Проверяете: работает ли Shadowsocks-сервер на порту 8388 локально:

ss -tlnp | grep 8388

Проверяете DNS: иногда при туннелировании DNS-запросы уходят не через VPN. В Shadowsocks-клиенте включаете Remote DNS или прописываете явно 8.8.8.8 в настройках.

Если двойной VPN — уже активный WireGuard или корпоративный VPN — конфликт с маршрутизацией. Нельзя одновременно держать два туннеля с дефолтным маршрутом. Отключаете один или настраиваете split tunneling.

Частые вопросы

Чем Cloak отличается от VLESS+Reality и AmneziaWG?

Cloak — обёртка поверх Shadowsocks или OpenVPN, маскирует трафик под TLS и требует своего домена. Reality встроен в XRay/Sing-box и имитирует TLS чужого домена без необходимости его контролировать — технически элегантнее, но настройка сложнее. AmneziaWG модифицирует сам WireGuard-хэндшейк, рандомизируя заголовки, что проще в настройке, но менее эффективно против глубокого анализа поведения трафика. У каждого свои сильные стороны против конкретных методов DPI — универсального победителя нет.

Нужен ли собственный сервер для Cloak?

Для полного контроля — да, нужен VPS с установленным ck-server и желательно домен для RedirAddr. Это даёт максимальную гибкость, но требует технической грамотности и времени. Альтернатива — готовые сервисы с поддержкой обфускации, где всё уже настроено на стороне провайдера, а вы получаете только параметры подключения.

Cloak замедляет интернет?

Да, замедляет. TLS-обёртка, несколько параллельных соединений и двойное шифрование добавляют накладные расходы. Насколько именно — зависит от сервера, расстояния до него и вашего провайдера. Лучший способ узнать свои реальные цифры — сравнить Speedtest до и после подключения самостоятельно.

Почему подключение к Cloak не устанавливается?

Самые частые причины: неверный PublicKey или UID (проверяете побайтово, без пробелов), рассинхрон системного времени между клиентом и сервером (разница больше нескольких минут — сессия отвергается), заблокированный ServerName по SNI (меняете на незаблокированный домен), неправильный порт или конфликт с другим активным VPN. Подробный разбор — в разделе про ошибки выше.

Работает ли Cloak на iPhone и Apple TV?

На iOS — через Shadowrocket или Sing-Box, оба поддерживают плагин Cloak, но выбор приложений меньше, чем на Android. На Apple TV напрямую установить Cloak нельзя — там нет поддержки VPN-плагинов. Единственный вариант — роутер с OpenWrt и настроенным Cloak, который раздаёт уже обфусцированное соединение на все подключённые устройства.

Обходит ли Cloak блокировки YouTube, Instagram и Telegram?

Cloak сам по себе не обходит блокировки конкретных сайтов — он маскирует VPN-канал от DPI провайдера, чтобы тот не резал сам VPN-протокол. Доступ к YouTube, Instagram, TikTok, Twitter/X и Telegram обеспечивает VPN-туннель (Shadowsocks или OpenVPN), который идёт поверх Cloak. Схема работает так: провайдер видит обычный HTTPS и не режет соединение, а внутри туннеля вы получаете полный доступ к заблокированным ресурсам.

Похожие новости

Возможно, вам будет интересно