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 даст больше при сопоставимых усилиях.