Shadowsocks (SS)
Что это
Shadowsocks (SS) — прокси-протокол для обхода GFW. Придуман китайским разработчиком clowwindy в 2012 году. Долгие годы был главным инструментом обхода Великого Файрвола Китая. Простой, быстрый, минималистичный. Сегодня — почти умер из-за детекта по behavioral-анализу.
Как работает
По сути это SOCKS5, но с шифрованием:
- Клиент шифрует запрос AEAD-шифром (обычно ChaCha20-IETF-Poly1305 или AES-256-GCM)
- Отправляет на сервер
- Сервер расшифровывает, делает запрос от своего имени, возвращает
Простой пароль (не сертификат) в качестве секрета. Никакого TLS в самом протоколе.
Почему умирает
Основная проблема — entropy analysis:
- После AEAD-шифрования каждый байт трафика выглядит как случайный шум
- Обычный HTTPS-трафик тоже шифрован, но у него есть TLS-handshake в начале и предсказуемая структура record-ов
- Голый SS — максимальная энтропия с первого байта, никаких TLS-полей. Это уникальная сигнатура
- Китайский GFW научился находить SS ещё в 2019. ТСПУ в РФ переняли метод
Обфускация (плагины)
Чтобы SS выжил, поверх него навешивают обфускацию:
- simple-obfs — маскирует под HTTP/TLS-handshake. Deprecated автором в 2020, но ещё жив
- xray-plugin (форк v2ray-plugin) — оборачивает SS в WebSocket/HTTP-транспорт с настоящим TLS
- cloak — маскирует под настоящий сайт с fallback
- obfs4 — из Tor, тоже подходит
С плагинами SS ещё жив, но:
- Двойная обвязка → двойной overhead
- Проще сразу взять VLESS + Reality или Trojan — их дизайн изначально маскировочный
Транспорты для SS в современных ядрах
SS в Xray/Sing-box поддерживает те же транспорты, что VLESS: TCP, WebSocket, gRPC, HTTPUpgrade. Но по факту это уже не «настоящий Shadowsocks», а VLESS с shadowsocks-совместимым payload-ом.
В РФ
Голый SS не работает — ТСПУ дропает соединение через 5-10 секунд после старта передачи данных (шейпит до нуля). Только с плагинами или в обвязке современных транспортов — но тогда проще взять протокол, изначально подходящий для маскировки.
История clowwindy
В августе 2015 года clowwindy был вызван китайской полицией. После этого удалил все репозитории Shadowsocks и написал только: «Я больше не могу разрабатывать этот проект. Спасибо всем». Проект продолжило сообщество — форки на GitHub (shadowsocks-libev, shadowsocks-rust, shadowsocks-android, ShadowsocksX-NG и др.).