Shadowsocks — это протокол прокси с шифрованием: трафик от клиента до сервера закрыт и внешне не похож на узнаваемый протокол. В отличие от VPN он обслуживает не всё устройство, а те приложения, которые настроены на прокси.

Появился он в 2012 году и задал направление, по которому пошли все последующие обфусцированные протоколы. Его автор исходил из наблюдения: анализаторы трафика ищут известные сигнатуры, а значит поток без единого узнаваемого признака проходит незамеченным.

Идея: отсутствие структуры как маскировка

Обычный протокол начинается с заголовка — так системы анализа его и опознают. Shadowsocks не отправляет ничего похожего на заголовок: с первого байта соединение выглядит как поток случайных данных.

Технически это прокси на основе SOCKS5, где всё содержимое, включая адрес назначения, шифруется симметричным ключом, полученным из пароля. Наблюдатель видит TCP-соединение с непонятной полезной нагрузкой без опознавательных признаков.

Такой подход называют «маскировкой через отсутствие сигнатуры» — в отличие от «маскировки под другой протокол», которую применяют Reality и Fake TLS в MTProto.

AEAD: почему старые шифры больше не используются

Ранние версии применяли потоковые шифры вроде RC4 и AES-CFB. У них обнаружился серьёзный недостаток: они шифровали данные, но не проверяли их целостность. Атакующий мог изменять зашифрованный трафик и по реакции сервера постепенно извлекать информацию — класс атак на основе оракула.

Современный Shadowsocks использует исключительно AEAD-шифры, которые шифруют и аутентифицируют данные одновременно:

  • chacha20-ietf-poly1305 — быстрый на устройствах без аппаратного AES;
  • aes-256-gcm — быстрый там, где есть AES-NI;
  • 2022-blake3-aes-256-gcm — из обновлённой спецификации Shadowsocks 2022 с защитой от повторного воспроизведения пакетов.

Если конфигурация предлагает aes-256-cfb или rc4-md5 — это устаревшая и небезопасная сборка.

Плагины: когда «случайный поток» перестал проходить

Со временем анализаторы научились находить Shadowsocks не по сигнатуре, а по статистике. Признаки: высокая энтропия с первого байта, отсутствие рукопожатия, характерное распределение размеров пакетов. Подключился дополнительный приём — активная проверка: подозрительному серверу отправляют произвольные данные и смотрят на реакцию, которая у Shadowsocks отличается от реакции обычного веб-сервера.

Ответом стали плагины:

  • simple-obfs — заворачивает трафик в подобие HTTP или TLS-заголовка. Простой, но давно распознаваемый; поддержка прекращена.
  • v2ray-plugin — оборачивает соединение в настоящий WebSocket поверх TLS, что позволяет пропускать трафик через CDN.
  • shadow-tls — выполняет полноценное TLS-рукопожатие с реальным сайтом, а затем передаёт по соединению данные Shadowsocks. Идейно близко к Reality.

Здесь и проявилась основная проблема: базовый протокол перестал быть самодостаточным, и вокруг него выросла обвязка. А если всё равно нужен слой TLS с маскировкой, логичнее взять стек, где это спроектировано изначально.

Почему его вытеснил VLESS

К 2026 году Shadowsocks заметно уступил позиции стеку Xray. Причины:

Одна точка отказа. Безопасность держится на общем пароле. Утечка пароля компрометирует всех пользователей сервера. В VLESS каждому выдаётся отдельный UUID.

Слабость против активной проверки. Даже с плагинами Shadowsocks отвечает на посторонние соединения иначе, чем настоящий веб-сервер. Reality проксирует их на реальный сайт и проверку выдерживает.

Скромнее маршрутизация. Xray умеет направлять трафик по правилам: домены, регионы, приложения. У Shadowsocks это делается внешними средствами.

Разработка замедлилась. Основная активность сместилась в экосистему Xray/sing-box.

Где он всё ещё уместен

Списывать протокол рано:

  • Простота. Настройка — четыре параметра: адрес, порт, пароль, шифр. Для сравнения, конфигурация VLESS + Reality занимает страницу.
  • Клиенты везде. Shadowsocks поддерживают почти все прокси-приложения и многие прошивки роутеров.
  • Нетребовательность к ресурсам. Работает на самом дешёвом VPS и на слабом роутере.
  • Достаточность для многих сетей. Если трафик не анализируется агрессивно, базового Shadowsocks с AEAD-шифром хватает.

Как соотносится с VPN

Важное различие: Shadowsocks — прокси, а не VPN. Он не создаёт сетевой интерфейс и не заворачивает весь трафик устройства автоматически. Приложение либо настраивается на использование прокси, либо трафик перенаправляется системными средствами.

Практические следствия: DNS-запросы могут уходить мимо прокси (утечка DNS), а приложения без поддержки прокси идут напрямую. У WireGuard и OpenVPN таких вопросов не возникает — они работают на уровне сетевого интерфейса.

Коротко

Shadowsocks — важный этап в развитии обфусцированных протоколов и до сих пор рабочий инструмент для несложных сценариев. Но его архитектура — общий пароль, отсутствие устойчивости к активной проверке, внешние плагины для маскировки — уступает современным решениям. Если выбираете сегодня с нуля, VLESS с Reality даст больше при сопоставимых усилиях.