Shadowsocks: що це, як працює, порівняння з VPN, Wireguard, UDP
- Feb 9, 2024, 9:58 AM
- 12 хвилини
Що таке Shadowsocks?
Shadowsocks – це безкоштовний інструмент для тих, хто хоче обійти блокування простим, але непопулярним способом. Це мережевий протокол із шифруванням даних. Він також допомагає захистити трафік та особисті дані. Він базується на технологіях SOCKS5, а вихідний код доступний на GitHub.
Проєкт розпочався у 2012 році. Китайський розробник Clowwindy випустив перші розробки Shadowsocks на GitHub. Протокол допоміг обійти обмеження "Великого китайського фаєрволу". Проєкт став популярним у всьому світі після його видалення з GitHub, що привернуло увагу ЗМІ. Журналісти припустили зв'язок між видаленням та атакою на GitHub, що сталася за кілька днів.
Clowwindy припинив розробку у 2015 році на прохання китайської влади. З того часу спільнота Shadowsocks продовжує розвивати проєкт.

Мапа з вебсайту Freedom House демонструє, в яких країнах Shadowsocks точно буде корисним.
Shadowsocks потрібен для подібних завдань, як і VPN:
- Обхід блокувань. Протоколи використовуються для доступу до заблокованих ресурсів як у країні, так і провайдерами та операторами.
- Захист особистих даних. Складніше отримати доступ до трафіку та особистих даних.
- Безпечне з'єднання з незахищених точок – наприклад, через безкоштовний Wi-Fi.
Як працює Shadowsocks. Пояснення протоколу
При стандартному мережевому з'єднанні користувач підключається до Інтернету безпосередньо через свого провайдера. Наприклад, якщо він хоче відвідати певний вебсайт, він спочатку підключається до маршрутизатора провайдера, а потім до самого вебсайту. Якщо держава хоче заблокувати цей вебсайт, вона просить провайдера заблокувати доступ до його IP-адреси.
Щоб обійти це обмеження, використовуються проксі. У цьому випадку між провайдером та вебсайтом утворюється "посередник" - проксі-сервер. З'єднання все ще проходить через провайдера, але він знає лише, що запит йде до проксі. Тому з'єднання з вебсайтом є необмеженим, а трафік повертається на пристрій користувача. Але тут є кілька проблем, наприклад:
- Сайти та провайдери можуть виявити, що ви використовуєте інструменти обходу.
- З'єднання не є безпечним. Однак ви можете використовувати проксі з шифруванням або VPN, який найчастіше шифрує трафік.
Shadowsocks потрібен для вирішення цих проблем. Shadowsocks шифрує корисне навантаження TCP/UDP через тунель, схожий на SOCKS5. Щоб справді імітувати заголовки HTTPS або HTTP, потрібен додатковий плагін обфускації (наприклад, simple-obfs, cloak). Він шифрує дані та представляє їх як звичайний HTML-трафік. Протокол базується на SOCKS5, про який є стаття в нашому блозі. Він допомагає захистити з'єднання за допомогою алгоритму AEAD.
AEAD використовує той же принцип, що й SSH-тунелювання, але у випадку AEAD зашифровані дані також включають інформацію про джерело та одержувача. Це ускладнює життя хакерам. Навіть якщо вони перехоплять повідомлення, вони не зможуть підробити передачу даних.
Чи безпечний Shadowsocks?
Shadowsocks безпечний для базового обходу цензури і зазвичай швидший/легший порівняно з VPN. Але він не є заміною повністю перевіреному VPN, коли вам потрібна гарантована анонімність, стійкість до DPI або безпека корпоративного рівня. Shadowsocks, як правило, вважається безпечним для обходу цензури, але він має важливі обмеження, коли йдеться про високий рівень безпеки та стійкість до виявлення.
Загалом, режими AEAD ("Автентифіковане шифрування з асоційованими даними"), такі як AES-GCM та ChaCha20-Poly1305, є галузевими стандартами і зазвичай вважаються дуже безпечними. Немає широкого консенсусу, що сама AEAD "не така вже й безпечна". Але згідно з обговореннями на Stack Exchange, шифри AEAD вважаються не такими вже й безпечними. У будь-якому випадку, вони є достатніми для надійного з'єднання та захисту даних.
Метод шифрування Shadowsocks
Shadowsocks використовує Автентифіковане шифрування з асоційованими даними (AEAD) як основний метод шифрування, який забезпечує конфіденційність, цілісність та автентичність в одній операції. Найпоширеніші шифри AEAD, що підтримуються:
ChaCha20-Poly1305
AES-128-GCM
AES-256-GCM
Огляд протоколу Shadowsocks. Як працює Shadowsocks
Принцип роботи Shadowsocks: для програм SS він організований як звичайний SOCKS5, тільки з IP-адресою 127.0.0.1. Цей IP називається Localhost, і з'єднання відбувається локально. Тобто, будь-яка програма, наприклад, браузер, підключається до того ж пристрою, де вона працює. Потім встановлюється з'єднання між локальним компонентом Shadowsocks та сервером, у цьому пакеті трафік вже зашифрований.
Детальніше можна дізнатися з відео про обхід Великого китайського фаєрволу.
Ви можете підключити інші програми до Shadowsocks, і проксі працюватиме лише для вибраних програм. Якщо одна з них не підтримує проксі, ви можете використовувати, наприклад, Proxifier.

Щоб встановити та налаштувати Shadowsocks, потрібно мати певне розуміння з'єднань. З чого потрібно почати:
- Купіть та налаштуйте VPS-сервер у країні, де бажаний контент не заблокований, або скористайтеся готовим проксі-сервером, який можна знайти на сайтах з проксі Shadowsocks.
- Клієнт-сервер. Є мобільний додаток на Google Play, програму для ПК можна завантажити для Windows та Linux.

Потім просто встановіть і запустіть клієнт, а потім налаштуйте з'єднання з сервером: додайте IP-адресу сервера, порт, пароль і метод шифрування.
Shadowsocks пропонує три режими підключення.
- Режим прямого підключення не перенаправляє ваш трафік через проксі-сервер. Попередньо налаштовані параметри для деяких програм працюють у цьому режимі.
- Режим PAC: трафік проходитиме через проксі-сервер при доступі до заблокованих вебсайтів.
- У глобальному режимі весь трафік перенаправляється через проксі-сервер.
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-з'єднання. Тому провайдер не може виявити "нестандартну" поведінку користувача. Тим не менш, Shadowsocks вразливий до активного зондування та виявлення за аналізом шаблонів. На відміну від більш досконалих підключаємих транспортів (наприклад, Obfs4), він може бути – і був – ідентифікований та заблокований складними фаєрволами.
3) Надійність. Shadowsocks не зникає навіть у випадку збою з'єднання, якщо з'єднання налаштоване лише через нього. У випадку втрати з'єднання з VPN-сервером, трафік йтиме безпосередньо, і провайдер побачить всю інформацію. KillSwitch частково вирішує цю проблему: екстрена кнопка відключає інтернет. Але іноді вона не працює або такої функції немає.
4) Хороша пропускна здатність. При правильному налаштуванні Shadowsocks працює швидше, ніж інші методи шифрування, такі як SSH-тунелювання та VPN. Приблизна втрата швидкості становить не більше 3-5%.
5) Універсальність. Існують клієнтські програми для будь-якої операційної системи - Windows, MacOS, Linux (різні дистрибутиви), Android та iOS.
6) Знижене обчислювальне навантаження під час шифрування. З точки зору клієнта, це економить заряд батареї (актуально для мобільних пристроїв), а з точки зору сервера – економить на хостингу VPS/VDS для Shadowsocks.
7) Економія коштів. Найдешевший VPS-сервер підходить для Shadowsocks. В ідеалі, якщо хостинг-провайдер надає необмежений трафік за допомогою VPS/VDS. Це набагато вигідніше, ніж платний VPN-сервіс. Ви також можете використовувати чужі проксі, але варіанти від WannaFlix, 12VPN набагато дорожчі за ваш власний сервер, близько 10 доларів на місяць.
Для порівняння: ви можете орендувати VPS з 5 ГБ пам'яті, 0,5 ГБ оперативної пам'яті та необмеженим трафіком за 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 досить простий, що створює ризик розповсюдження підроблених програмних пакетів.
Shadowsocks проти Wireguard
Що таке Wireguard?
WireGuard – це сучасний інструмент VPN (віртуальної приватної мережі), який допомагає захистити ваше інтернет-з'єднання. Уявіть його як приватний тунель між вашим пристроєм (наприклад, ноутбуком чи телефоном) та Інтернетом. Все, що ви надсилаєте чи отримуєте, проходить через цей тунель, тому хакери чи шпигуни у публічному Wi-Fi не можуть побачити, що ви робите. Він розроблений бути:
Швидким: Мінімальне уповільнення порівняно з традиційними VPN.
Простим: Просто встановіть, додайте "сервер" або "пір", і натисніть кнопку для підключення.
Безпечним: Використовує актуальне шифрування для захисту ваших даних.
Ви можете використовувати WireGuard, коли ви перебуваєте у публічному Wi-Fi, хочете виглядати так, ніби ви переглядаєте з іншої країни, або просто бажаєте зберегти свою онлайн-активність приватною.
Криптографічний пакет Wireguard
- Обмін ключами: Curve25519
- Шифрування та автентифікація: ChaCha20-Poly1305 AEAD
- Гешування: BLAKE2s для цілісності даних та HMAC
Архітектура Wireguard
- Один UDP-порт на інтерфейс, що мінімізує поверхню атаки та спрощує проходження фаєрволу.
- Безстатеве рукостискання з використанням ефемерних ключів: вузли генерують нові сесійні ключі кожні 120 секунд (за замовчуванням), не підтримуючи стан з'єднання.
Різниця між Shadowsocks та Wireguard
Shadowsocks ідеально підходить, якщо вам потрібне швидке рішення для окремих програм, щоб обійти цензуру (наприклад, розблокувати вебсайт або потоковий сервіс), не зачіпаючи налаштування VPN вашої системи. WireGuard краще підходить для повного захисту пристрою, безпечних тунелів між сайтами або коли вам потрібен надійний, перевірений VPN з мінімальною затримкою та сильними криптографічними гарантіями в усьому вашому мережевому стеку.
Характеристика | Shadowsocks | WireGuard |
---|---|---|
Тип | Зашифрований проксі у стилі SOCKS5 | Тунель VPN рівня 3 |
Основний варіант використання | Обхід цензури та проксі для окремих програм | |
Рівень протоколу | Прикладний рівень | Мережевий (IP) рівень |
Шифрування | Шифри AEAD (наприклад, ChaCha20-Poly1305, AES-GCM) | Noise Protocol Framework (ChaCha20-Poly1305, Curve25519, BLAKE2s) |
Автентифікація | Спільний секрет; без вбудованого обміну ключами | Криптографія з відкритим ключем та вбудованим обміном ключами |
Продуктивність | Легкий, простір користувача; помірні накладні витрати | Надзвичайно швидка, реалізація ядра (або оптимізована) |
Стійкість до виявлення | Може бути виявлений за допомогою DPI, якщо не обфускований | Статичний UDP-порт/протокол; може бути заблокований, але важче виявити за допомогою DPI, ніж загальний VPN |
Налаштування та розгортання | Просто: встановіть клієнт, вкажіть на проксі-сервер | Потребує модуля ядра або підтримуваного клієнта, root-прав та конфігурації маршрутизації |
Область маршрутизації | На рівні програми (браузер, конкретна програма) | Весь мережевий стек (весь трафік) |
Розділене тунелювання | Нативне: тільки налаштовані програми проходять через проксі | Потребує явних правил маршрутизації; всі або визначені діапазони IP |
Обробка DNS | Використовує DNS-резолвер клієнта | Налаштування DNS, що конфігуруються для кожного інтерфейсу |
Shadowsocks проти OpenVPN
Що таке OpenVPN?
OpenVPN – це популярна та надійна технологія VPN (віртуальної приватної мережі), яка створює безпечне, зашифроване з'єднання (часто зване "тунелем") між вашим пристроєм та іншою мережею через Інтернет. Цей тунель захищає ваші дані від прослуховування, дозволяє вам переглядати вебсторінки приватно, а також може створювати враження, що ви отримуєте доступ до Інтернету з іншого місця. OpenVPN – це протокол та програмне забезпечення VPN з відкритим вихідним кодом, що реалізує безпечні з'єднання типу "точка-точка" або "сайт-сайт" за допомогою SSL/TLS для обміну ключами.
Люди використовують OpenVPN, щоб:
Захистити свою конфіденційність у публічному Wi-Fi
Отримати доступ до контенту з регіональними обмеженнями
Безпечно підключатися до своєї робочої мережі віддалено
Шифрування OpenVPN: Підтримує надійні криптографічні алгоритми, такі як AES (Advanced Encryption Standard), для конфіденційності даних.
Автентифікація OpenVPN: Використовує сертифікати X.509 для взаємної автентифікації, а також опціональні ім'я користувача/пароль та попередньо узгоджені ключі.
Транспортні протоколи OpenVPN: Працює через UDP або TCP, що забезпечує гнучкість для різних мережевих середовищ та проходження через фаєрволи.
Тунелювання OpenVPN: Працює на мережевому рівні (Рівень 3), створюючи віртуальний мережевий інтерфейс (TUN) або мостуючи фрейми Ethernet (TAP).
Різниця між Shadowsocks та OpenVPN
Shadowsocks чудово підходить для легкого, специфічного для додатків обходу цензури з мінімальною затримкою, особливо в обмежувальних середовищах. OpenVPN – це надійне, добре перевірене VPN-рішення для тунелювання всього пристрою або мережі, що пропонує сильнішу безпеку та ширші варіанти використання, але з більшою складністю налаштування та використанням ресурсів.
Shadowsocks | VPN | |
---|---|---|
Шифрування | Слабше шифрування порівняно з більшістю VPN | Надійніше шифрування лише між вашим пристроєм і сервером |
Доступ до контенту | Обходить інтернет-цензуру та надає доступ до заблокованого контенту | Також обходить цензуру, але легше виявляється |
Продуктивність | Швидше завдяки меншому шифруванню та коротшому шляху до пункту призначення | Повільніше через шифрування та додаткову відстань до VPN-сервера |
Складність конфігурації | Складніше налаштовувати та використовувати для звичайних користувачів | Відносно легко налаштовувати та використовувати |
Вартість | Низька вартість або навіть безкоштовні варіанти | Дорожче, особливо для якісного сервісу |
Варіанти використання | Для обходу складних фаєрволів, таких як у Китаї, та доступу до заблокованого контенту | Для тих, хто дбає як про конфіденційність, так і про доступ до заблокованого контенту |
Shadowsocks проти Мобільних проксі
Що таке Мобільні проксі?
Мобільні проксі – це фактичні IP-адреси мобільних мереж, що надаються операторами стільникового зв'язку через спеціальні пристрої, оснащені SIM-картами, пропонуючи highly trusted, dynamic, та location-specific IP-адреси, які значно складніше виявити або заблокувати.
Порівняльна таблиця між Мобільними проксі та Shadowsocks
Аспект | Shadowsocks | Мобільні проксі |
---|---|---|
Що це | Зашифрований проксі-протокол (на базі SOCKS5), розроблений для обходу цензури шляхом шифрування та пересилання трафіку через віддалений сервер | |
Технологія | Програмний проксі з шифруванням, працює на VPS або сервері | Апаратний проксі, прив'язаний до мобільних операторів, використовує реальні мобільні IP-адреси, призначені операторами стільникового зв'язку |
Тип IP-адреси | Зазвичай IP-адреси центрів обробки даних, які легко позначити або заблокувати | Справжні IP-адреси мобільних операторів, дуже надійні та динамічні, прив'язані до певних географічних місць |
Ризик виявлення | Помірний — може бути виявлений глибокою інспекцією пакетів, якщо не застосовується обфускація | Низький — трафік виглядає як законне використання мобільної мережі, значно складніше заблокувати або позначити |
Продуктивність | Залежить від розташування сервера та мережі; зазвичай швидко, але змінюється | Зазвичай швидко зі стабільними з'єднаннями LTE/4G/5G; IP-адреси змінюються природним шляхом |
Варіанти використання | Обхід цензури, захист конфіденційності, розблокування сайтів та сервісів | SEO, SMM, перевірка реклами, створення облікових записів, тестування мобільних додатків та будь-яке використання, що вимагає високодовірених мобільних IP-адрес |
Налаштування | Вимагає встановлення клієнтського програмного забезпечення та налаштування параметрів проксі | Зазвичай доступ через маркетплейс або API; програмне забезпечення клієнта не потрібне, лише облікові дані проксі |
Рівень анонімності | Хороше шифрування, але IP може бути з діапазонів центрів обробки даних | Дуже високий рівень довіри та анонімності, оскільки IP-адреси належать мобільним операторам і динамічно змінюються |
Що мені використовувати: Shadowsocks чи Мобільні проксі?
Для обходу цензури та зашифрованого проксі-з'єднання – Shadowsocks
Для автентичних мобільних IP-адрес, довіреного доступу на основі місцезнаходження та низького ризику виявлення, мобільні проксі є кращими – особливо для бізнесу та автоматизації.
Висновок
Shadowsocks – це доступний та зручний інструмент для обходу блокувань. Він також може бути корисним для захисту з'єднань. Звісно, він включає менше функцій, ніж сервіс VPN, але він трохи швидший. Однак для вирішення простих завдань, таких як відновлення доступу до заблокованих сайтів, він є оптимальним. Він простий у використанні та налаштуванні: в інтернеті є багато інструкцій, як це зробити.
У OnlineProxy ви знайдете мобільні проксі з усього світу з добовою тарифікацією від 0.7 $ та ротацією IP. Проксі чудово підходять для робочих завдань. Ми гарантуємо якість чи повертаємо гроші.