Блог

Shadowsocks: что это, как работает, сравнение с VPN

  • Jun 23, 2023, 12:43 AM
  • 8 минуты

Рассказываем про протокол, его механику работы, плюсы, минусы, а заодно сравниваем его с VPN.

Что такое Shadowsocks

Shadowsocks – это бесплатный инструмент для тех, кому хочется обойти блокировки простым, но непопулярным способом. Это сетевой протокол с шифрованием данных. Он также помогает с защитой трафика и персональных данных. Основан на технологиях SOCKS5, исходный код есть на GitHub.

Проект стартовал в 2012 году. Китайский разработчик под ником Clowwindy выложил первые наработки Shadowsocks на GitHub. Протокол помогал обходить ограничения «Золотого щита», того самого великого китайского файрвола. Проект стал популярен во всем мире после удаления с GitHub, что привлекло внимание СМИ. Журналисты предположили связь между удалением и атакой на GitHub, которая произошла несколько дней спустя.

Clowwindy прекратил разработку в 2015 году по требованию правоохранительных органов КНР. С тех пор Shadowsocks развивает сообщество.


Карта с сайта Freedom House хорошо демонстрирует в каких странах точно пригодится Shadowsocks.

Shadowsocks нужен для сходных с VPN задач:

  • Обход блокировок. Протоколы применяют для доступа к заблокированным ресурсам как в стране, так и провайдерами и операторами.
  • Защита личных данных. Сложнее получить доступ к трафику и персональным данным.
  • Безопасное подключение из незащищенных точек – например, через бесплатный Wi-Fi.

Как работает

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

Чтобы обойти это ограничение, используют прокси. В этом случае между провайдером и сайтом образуется «посредник» – прокси-сервер. Соединение происходит так же через провайдера, но он лишь знает, что запрос идёт на прокси. Поэтому подключение к сайту происходит без ограничений, и трафик идёт обратно на устройство пользователя. Но здесь есть несколько проблем, например:

  • Сайты и провайдеры могут определить, что вы используете обходные инструменты
  • Соединение не защищено. Хотя, вы можете использовать прокси с шифрованием или VPN, который чаще всего шифрует трафик.

Shadowsocks нужен для решения этих проблем. Он шифрует данные и выдает их за обычный HTML-трафик. Основан протокол на SOCKS5, о котором есть статья в нашем блоге. И помогает с защитой соединения через AEAD-алгоритм.

В AEAD используется тот же принцип, что и при SSH-туннелировании, только в зашифрованные данные в случае AEAD входит ещё информация об источнике и получателе. Это усложняет жизнь злоумышленникам. Даже если он перехватит, сообщение, то не сможет подделать передачу данных.

Вообще шифры AEAD считают не столь безопасными, судя по обсуждениям на Stack Exchange. Но их вполне достаточно для надежного подключения и защиты данных.

Принцип работы Shadowsocks: для программ SS устроен как обычный SOCKS5, только с IP-адресом 127.0.0.1. Такой IP называют Localhost, а подключение происходит локально. То есть, любая программа, например браузер, подключается к тому же устройству, где запущена. Далее же идёт подключение между локальным компонентом Shadowsocks и серверным, в этой связке трафик уже шифруется.

Подробности можно узнать из видео про обход китайского брандмауэра.

Вы можете подключать другие приложения к Shadowsocks, и прокси будет работать только для выбранных приложений. Если же какое-то из них не поддерживает прокси, то используйте, например Proxifier.


Чтобы установить и настроить Shadowsocks, нужно немного разбираться в соединениях. Что нужно для начала:

  • Купить и настроить VPS-сервер в той стране, где не заблокирован нужный контент, или воспользоваться готовым прокси-сервером, найти их можно на сайтах с Shadowsocks-прокси.
  • Клиент-сервер. Мобильное приложение есть на Google Play, программу для ПК можно загрузить для Windows и Linux.


Затем достаточно провести установку и запустить клиент, затем настроить соединение с сервером: добавить IP-адрес сервера, порт, пароль и метод шифрования.

Shadowsocks предлагает три режима подключения.

  1. Режим прямого подключения не перенаправляет ваш трафик через прокси-сервер. Предустановленные настройки для некоторых приложений работают в этом режиме.
  2. Режим PAC: трафик будет проходить через прокси-сервер при доступе к заблокированным веб-сайтам.
  3. В глобальном режиме весь трафик перенаправляется через прокси-сервер.

Shadowsocks умеет имитировать HTTPS-подключение к удалённому серверу. Это необходимо для маскировки трафика. Так провайдер не поймет, что просматривает пользователь и что обходит блокировки. Такой приём возможен после установки на сервер плагина обфускации трафика simple-obfs.

Обфускация — это маскировка и запутывание трафика. С ее помощью можно защитить его от обнаружения: провайдер не сможет узнать, что вы используете Shadowsocks. Обычно для этого применяют шифрование кода, переименование переменных в бессмыслицу, добавление лишнего кода, или попросту используют решения вроде Cloak, Stunnel, OpenVPN Scramble и другие.

Китайцы умудряются отслеживать работу Shadowsocks с помощью пассивного анализа трафика и активного «прощупывания», а затем блокировать соединения, несмотря на обфускацию. Сначала фаервол ищет возможные соединения Shadowsocks; а на втором этапе подключается к серверам-участникам этих подключений, со своих IP-адресов, как будто он клиент Shadowsocks, и наблюдает за ответами сервера.

На GitHub можно прочесть подробности и механики решения проблемы, но в любом случае Shadowsocks всё равно работает лучше VPN.

Плюсы

1) Выборочная маскировка трафика. Можно указать, какой трафик отправлять через провайдера, а какой через Shadowsocks. Это поможет одновременно обойти блокировку и сохранить доступ к некоторым сервисам.

Пример: одновременная работа сайтов вроде Instagram и государственных онлайн-сервисов. Первый может быть недоступен для вашей страны, а остальные работают только с местными IP-адресами. Если использовать VPN, то сможете сидеть в Instagram, но не получится запустить местные сервисы. Правда, некоторые VPN поддерживают раздельное туннелирование. С Shadowsocks получится решить эту проблему: можно замаскировать трафик с Instagram и параллельно использовать иные службы.

2) Защита от DPI. DPI — это технология проверки трафика для отслеживания работы с конкретными приложениями. Shadowsocks почти невозможно отследить и заблокировать, потому что он имитирует обычное подключение по HTTPS. Поэтому провайдер не сможет выявить «нестандартное» поведение пользователя.

3) Надежность. Shadowsocks никуда не денется даже при обрыве связи, если настроить соединение только через него. При потере соединения с VPN-сервером трафик пойдет напрямую, и провайдер увидит всю информацию. Частично эту проблему решает KillSwitch: аварийная кнопка обрывает соединение с интернетом. Но иногда он не срабатывает или его вовсе нет.

4) Хорошая пропускная способность. Shadowsocks при грамотной настройке работает быстрее других методов шифрования, например, SSH-туннелирования и VPN. Примерные потери скорости – не более 3-5%.

5) Универсальность. Есть клиентские программы для любых операционных систем – Windows, MacOS, Linux (разных дистрибутивов), Android и iOS.

6) Сниженная вычислительная нагрузка при шифровании. С точки зрения клиента – экономия заряда батареи (актуально для мобильных устройств), с точки зрения сервера – экономия на хостинге VPS/VDS для Shadowsocks.

7) Экономия. Для Shadowsocks подойдет самый дешевый VPS-сервер. Идеально, если хостинг-провайдер предоставляет безлимитный трафик с использованием VPS/VDS. Это намного выгоднее, чем платный VPN-сервис. Также можете использовать и чужие прокси, но варианты от WannaFlix, 12VPN куда дороже собственного сервера, около 10$ в месяц.

Для сравнения: можно арендовать VPS с 5 ГБ памяти, 0,5 ГБ RAM и безлимитным трафиком за $0.87/ Этого вполне достаточно для Shadowsocks. А самые дешевые VPN-сервисы обычно обходятся около $2 в месяц, то есть вдвое дороже, при этом нужно сразу оплатить подписку на 2-3 года. Бесплатные VPN не рассматриваем – они передают данные, ограничивают скорость и трафик.

Минусы

1) Сложность в использовании. Нужно понимать, как работают ПК и соединения, но конфигурация умещается в 5 строк. VPN намного проще.

2) Риск снижения скорости соединения.В зависимости от используемых обфускаторов, есть вероятность, что Shadowsocks сильно снизит скорость интернета.

3) Ограниченность в применении.Shadowsocks можно пробовать для смены региона Netflix, но проработает такая схема недолго: сервис следит за разными системами обхода. Для торрент-файлов тоже не самое разумное решение: если арендуете сервер, то легко вычислять ваше имя и карту, а затем обвинить в нарушении авторских прав.

4) Ограниченная доступность..Несмотря на популярность Shadowsocks, в некоторых регионах сложно приобрести или подключиться к надёжным VPS-серверам.

5) Нет официального аудита. Открытый исходный код Shadowsocks изучило множество специалистов.. Но официальную проверку он не проходил, в отличие от того же OpenVPN. Официальный аудит мог бы сделать фонд OSTIF (Open Source Technology Improvement Fund), который как раз и создавали для усиления защиты подобных проектов. При этом код Shadowsocks довольно простой – это создает риск распространения поддельных пакетов ПО.

VPN vs Shadowsocks

VPN и Shadowsocks – это разные инструменты. Первый – это виртуальная частная сеть, а второй – прокси-протокол. Технически, они оба:

  • Шифруют трафик
  • Помогают обходить блокировки

Но Shadowsocks предполагает более простое шифрование и не позволяет добиться анонимности в интернете. Проект изначально разрабатывали не столько для безопасности, сколько для обхода китайского фаервола. Но в ShadowsocksR проблему частично поправили, о нём расскажем в конце статьи. В VPN же обычно применяют сложный алгоритм AES-256.

Еще у VPN-сервисов часто бывает много дополнительных функций. Например, KillSwitch. VPN – это «прокладка», поэтому если он перестанет работать, то трафик пойдет напрямую. В этом случае легко скомпрометировать реальный IP-адрес. KillSwitch защищает от этого: он мгновенно обрывает интернет-соединение, если потерян доступ к VPN-серверу.

Наконец, у VPN огромная сеть серверов. Можно выходить в интернет из разных стран – каждый раз IP-адрес меняется на страну выбранного сервера.

Вывод: VPN удобнее, безопаснее и проще. Если у вас есть к нему доступ и он справляется с задачами, используйте его. Если есть сложности, то Shadowsocks должен решить проблему: он намного лучше в странах, где блокируют VPN и где сложно обойти ограничения. С ним данные похожи на HTTPS-трафик и не вызывают подозрений. Использование нескольких TCP-подключений помогает добиться высокой скорости. Для простого обхода блокировок он и выгоднее.

Shadowsocks vs VPN


Shadowsocks
VPN
Шифрование
Шифрование слабее, чем у большинства VPN
Более надежное шифрование только между вашим устройством и сервером
Доступ к контенту
Обходит интернет-цензуру и открывает доступ к заблокированному контенту
Также обходит цензуру, но легче обнаружить факт использования
Скорость работы
Быстрее за счёт меньшего шифрования и меньшего пути до пункта назначения
Медленнее из-за шифрования и лишнего расстояния до VPN-сервера
Сложность настройки
Сложнее настроить и использовать для обычных пользователей
Относительно легко настроить и использовать
Стоимость
Низкая стоимость или даже бесплатные варианты
Дороже, особенно за качественный

сервис

Для чего подойдёт
Для обхода сложных фаерволов, например в Китае, и доступа к заблокированному контенту
Для тех, кто одновременно заботится о конфиденциальности и доступе к заблокированному контенту

SSR (ShadowsocksR)

Сейчас у Shadowsocks есть сообщество и свой сайт. Поэтому энтузиасты могут запустить свои решения на его основе. Например, после закрытия Shadowsocks в 2015 году другой разработчик breakwa11 заявил, что SS легко обнаружить. Он создал ShadowsocksR на основе Shadowsocks с поддержкой обфускации. Таким образом, ShadowsocksR – это ответвление оригинального протокола, написанное на Python, с обфускацией трафика.

Но чаще пользователи рекомендуют использовать актуальную версию Shadowsocks-Rust на основе языка Rust.

Вывод

Shadowsocks – это доступный по цене и удобный инструмент для обхода блокировок. Возможно, кому-то пригодится и для защиты соединения. Конечно, он включает меньше функций, чем VPN-сервис, зато чуть быстрее. Но для решения простых задач – например, восстановления доступа к заблокированным сайтам – он оптимален. Он прост в использовании и настройке: в сети есть много инструкций, как все сделать.

Попробуйте наши мобильные прокси

В OnlineProxy вы найдете мобильные прокси со всего мира с посуточной тарификацией от 0.7$ и ротацией IP. Прокси отлично подходят для рабочих задач. Мы гарантируем качество или возвращаем деньги.

Зарегистрироваться