Щоб розгорнути NaiveProxy на власному сервері та обійти DPI, що аналізує TLS-відбитки, вам знадобиться VPS з ОС Ubuntu 22.04 LTS (або аналогічною) та встановлений веб-сервер Caddy з модулем forwardproxy, який обробляє запити протоколу.
У світі, де системи глибокої інспекції пакетів (DPI) стають дедалі витонченішими, стандартні методи обходу блокувань часто виявляються неефективними. Протоколи, які маскують лише вміст трафіку, але залишають помітні "відбитки" на рівні TLS-рукопотиску, легко виявляються та блокуються. Саме тут на сцену виходить NaiveProxy – інноваційне рішення, розроблене для боротьби з найпрогресивнішими системами DPI.
Що таке NaiveProxy та як він обходить DPI?
NaiveProxy — це проксі-протокол, який використовує унікальний підхід до обходу блокувань: він імітує мережевий відбиток звичайного браузера Google Chrome. На відміну від більшості інших протоколів, які фокусуються на шифруванні та обфускації даних, NaiveProxy йде далі. Він не просто маскує вміст трафіку, а копіює весь мережевий стек Chromium, включаючи специфічні параметри TLS-рукопотиску, заголовки HTTP/2 і навіть тимчасові затримки, характерні для реального браузера.
Імітація мережевого стеку Chromium: ключ до непомітності
Основна ідея NaiveProxy полягає в тому, що для DPI він виглядає як звичайний браузер, який запитує легітимний веб-ресурс. Системи DPI, які аналізують TLS-відбитки (наприклад, за допомогою бібліотеки JA3 або подібних методів), бачать у трафіку NaiveProxy щось, невідмінне від звичайного веб-серфінгу через Chrome. Це досягається за рахунок кількох ключових особливостей:
- TLS-відбиток: NaiveProxy точно відтворює TLS-клієнтський Hello, який надсилає браузер Chrome. Це включає порядок шифрів, розширення TLS та їх параметри, а також інші деталі, які формують унікальний "відбиток".
- HTTP/2 заголовки: Протокол використовує HTTP/2 та формує заголовки таким чином, щоб вони повністю відповідали тим, що генерує Chrome.
- Реалістична поведінка: NaiveProxy імітує поведінку браузера при встановленні з'єднання, включаючи затримки та обробку помилок, що робить його ще більш переконливим для систем аналізу трафіку.
Це принципова відмінність від протоколів, які, хоча й шифрують дані, можуть мати унікальні TLS-відбитки, що видають їх як проксі-з'єднання. Для просунутих DPI-систем такі "дивні" відбитки є червоним прапором, що веде до блокування. NaiveProxy ж зливається з масою звичайного веб-трафіку, стаючи практично невидимим.
Чому NaiveProxy кращий за інші протоколи для жорсткого DPI?
Вибір протоколу для обходу DPI залежить від конкретних умов блокування. У той час як багато сучасних рішень пропонують високу продуктивність та захист, NaiveProxy виділяється своєю спеціалізацією на обході систем, що аналізують метадані з'єднання, а не тільки його вміст.
NaiveProxy проти Trojan, Shadowsocks та інших протоколів
Розглянемо, чим NaiveProxy відрізняється від популярних протоколів, таких як Trojan, Shadowsocks або навіть Hysteria2, у контексті жорсткого DPI:
- Shadowsocks: Спочатку розроблений для простого шифрування та обфускації. Хоча існують плагіни (наприклад, v2ray-plugin), які намагаються імітувати TLS, базовий Shadowsocks має свій впізнаваний відбиток і може бути легко виявлений системами, що активно аналізують TLS-рукопотиски.
- Trojan: Протокол, який маскується під звичайний HTTPS-трафік, використовуючи стандартний TLS. Це робить його стійким до базового DPI. Однак, якщо система DPI проводить глибокий аналіз TLS-відбитків (наприклад, JA3, JA4), вона все одно може ідентифікувати Trojan як небраузерний TLS-клієнт, оскільки його TLS-відбиток не ідентичний відбитку реального браузера.
- Hysteria2: Високопродуктивний протокол, заснований на QUIC, призначений для обходу шейпінгу UDP та забезпечення стабільної роботи в умовах високих втрат. Він також використовує TLS, але його основна перевага — швидкість та стійкість до нестабільної мережі, а не імітація браузерного відбитка. Для DPI, що аналізує TLS-відбитки, Hysteria2, як і Trojan, може бути розпізнаний як небраузерний клієнт.
- NaiveProxy: Цілеспрямовано імітує не тільки TLS, але й весь мережевий стек Chromium. Це означає, що для DPI, який шукає аномалії в TLS-відбитках, NaiveProxy виглядає точно так само, як звичайний Google Chrome. Це його головна та унікальна перевага у боротьбі з найпросунутішими системами DPI, які активно використовують такі методи аналізу. Якщо ви хочете дізнатися більше про те, як зрозуміти, що DPI блокує ваш VPS, ознайомтеся з нашою статтею.
Таким чином, якщо ви стикаєтеся з блокуваннями, які, ймовірно, базуються на аналізі TLS-відбитків та метаданих з'єднання, а не тільки на вмісті або IP-адресі, NaiveProxy може виявитися найбільш ефективним рішенням. Він не просто приховує вашу активність, а робить її невідмінною від найпоширенішої та легітимної — веб-серфінгу через Chrome.
Шукаєте надійний сервер для своїх проєктів?
VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.
Переглянути пропозиції →Підготовка VPS для NaiveProxy
Для успішного налаштування NaiveProxy вам знадобиться надійний VPS. Вибір правильної конфігурації сервера та його початкова підготовка — ключовий етап.
Вибір оптимального VPS для NaiveProxy
При виборі VPS для NaiveProxy важливо враховувати кілька факторів:
- Розташування: Вибирайте VPS у країнах з мінімальними обмеженнями на інтернет-трафік та хорошою зв'язністю з вашою локацією. Це забезпечить низьку затримку та високу швидкість.
- Операційна система: Рекомендується використовувати дистрибутиви Linux, такі як Ubuntu Server (20.04 LTS або 22.04 LTS), Debian (11 або 12) або CentOS Stream 9. Ці системи добре задокументовані, стабільні та мають широку підтримку пакетів.
- Ресурси: NaiveProxy не є ресурсоємним протоколом сам по собі, але веб-сервер Caddy, який буде використовуватися, вимагає певних ресурсів.
Для 5-10 одночасних користувачів достатньо 2 vCPU, 2 GB RAM та NVMe-диска на 40 GB.
| Користувачів | vCPU | RAM | Диск | Порт | Ціна (орієнтовно, $/міс) |
|---|---|---|---|---|---|
| 1-5 | 1 | 1 GB | 20 GB NVMe | 1 Gbps | $5-7 |
| 5-10 | 2 | 2 GB | 40 GB NVMe | 1 Gbps | $8-12 |
| 10-25 | 2 | 4 GB | 60 GB NVMe | 1 Gbps | $15-20 |
| 25-50 | 4 | 8 GB | 80 GB NVMe | 1 Gbps | $30-45 |
Початкове налаштування сервера та домену
Перед встановленням NaiveProxy та Caddy необхідно виконати базове налаштування VPS:
- Оновлення системи: Завжди починайте з оновлення пакетної бази та встановлених пакетів.
sudo apt update && sudo apt upgrade -y - Встановлення домену: Для роботи NaiveProxy з Caddy вам знадобиться доменне ім'я. Зареєструйте домен (наприклад,
yourdomain.com) і налаштуйте A-запис, що вказує на IP-адресу вашого VPS. Це критично важливо, оскільки Caddy автоматично видає TLS-сертифікати за допомогою Let's Encrypt, а для цього потрібен діючий домен. - Налаштування файрволу (UFW): Рекомендується налаштувати файрвол для підвищення безпеки. Дозвольте SSH (порт 22), HTTP (порт 80) та HTTPS (порт 443).
sudo ufw allow ssh sudo ufw allow http sudo ufw allow https sudo ufw enable
Встановлення Caddy з forwardproxy для NaiveProxy
Caddy — це потужний веб-сервер з автоматичним налаштуванням HTTPS, який ідеально підходить для налаштування NaiveProxy завдяки своїй простоті та модульній архітектурі. Нам потрібно встановити Caddy разом з модулем forwardproxy.
Встановлення Caddy на Ubuntu/Debian
Caddy можна встановити з офіційного репозиторію. Виконайте наступні команди:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Після встановлення Caddy буде запущено як системну службу.
Компіляція Caddy з модулем forwardproxy (якщо стандартний пакет не містить)
У деяких випадках стандартний пакет Caddy може не включати модуль forwardproxy. У цьому випадку його потрібно скомпілювати вручну. Це складніший процес, але він дає повний контроль над модулями. Для більшості користувачів, однак, достатньо буде встановити Caddy з репозиторію та перевірити наявність модуля.
Щоб перевірити, чи є модуль forwardproxy у вашій установці Caddy, виконайте:
caddy list-modules | grep forwardproxy
Якщо команда нічого не виведе, вам потрібно буде скомпілювати Caddy. Найпростіше це зробити за допомогою xcaddy:
sudo apt install -y build-essential libnss3-dev
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy_v2
Потім замініть стандартний бінарник Caddy скомпільованим:
sudo systemctl stop caddy
sudo cp caddy /usr/bin/caddy
sudo systemctl start caddy
Тепер Caddy готовий до роботи з NaiveProxy.
Налаштування NaiveProxy на сервері: створення користувачів
Основна конфігурація NaiveProxy виконується через Caddyfile. Тут ми визначимо домен, порт, а також облікові дані для користувачів.
Конфігурація Caddyfile для NaiveProxy
Відкрийте файл конфігурації Caddy: sudo nano /etc/caddy/Caddyfile та замініть його вміст наступним:
yourdomain.com {
tls [email protected]
route {
forward_proxy {
basic_auth {
user1 your_password1
user2 your_password2
# Додайте більше користувачів за потреби
}
hide_ip
hide_via
probe_resistance
}
reverse_proxy https://www.google.com {
header_up Host {upstream_host}
header_up X-Forwarded-Host {host}
}
}
}
Пояснення до Caddyfile:
yourdomain.com: Замініть на ваше доменне ім'я.tls [email protected]: Caddy автоматично отримає SSL/TLS сертифікат від Let's Encrypt для вашого домену. Вкажіть реальний email для сповіщень.basic_auth: Тут ви визначаєте парилогін парольдля ваших користувачів. Кожен користувач повинен бути на окремому рядку.hide_ip: Приховує IP-адресу клієнта від кінцевого сервера.hide_via: Видаляє заголовок Via, який може видавати проксі.probe_resistance: Додає стійкість до зондування (probe) з боку DPI. Якщо хтось спробує підключитися до вашого домену без правильних облікових даних NaiveProxy, Caddy виглядатиме як звичайний веб-сервер, що обслуговуєwww.google.com.reverse_proxy https://www.google.com: Це "відволікаючий маневр". Якщо запит не відповідає NaiveProxy, Caddy перенаправить його на Google, щоб виглядати як звичайний веб-сервер. Ви можете замінитиhttps://www.google.comна будь-який інший легітимний сайт.
Застосування змін та перевірка статусу
Після збереження Caddyfile необхідно перевірити його синтаксис та перезавантажити Caddy:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
sudo systemctl status caddy
Переконайтеся, що служба Caddy запущена та працює без помилок. Якщо виникли проблеми, перевірте логи: sudo journalctl -u caddy --no-pager.
Ваш NaiveProxy сервер тепер налаштований та готовий приймати підключення.
Клієнт NaiveProxy: встановлення та підключення на десктопних і мобільних пристроях
Після налаштування сервера NaiveProxy наступним кроком є конфігурація клієнтських пристроїв. NaiveProxy працює як звичайний HTTP/2 проксі з TLS, тому для його використання можна застосовувати як спеціалізовані клієнти, так і стандартні системні налаштування проксі.
Налаштування клієнта на десктопних пристроях (Windows, macOS, Linux)
Для десктопних операційних систем існує кілька способів підключення до NaiveProxy.
Через браузер Chromium (найпростіший спосіб)
Найбільш природний спосіб використання NaiveProxy — через браузери на рушії Chromium (Google Chrome, Microsoft Edge, Brave тощо). Вам знадобиться розширення для керування проксі, наприклад, "SwitchyOmega" або "Proxy Helper".
- Встановіть розширення: Знайдіть "SwitchyOmega" або аналогічне в магазині розширень вашого браузера та встановіть його.
- Налаштуйте новий профіль проксі:
- У налаштуваннях розширення створіть новий профіль (наприклад, "NaiveProxy").
- Тип протоколу:
HTTPS(абоHTTP, деякі клієнти NaiveProxy використовують HTTP, але Caddy завжди обробляє його як HTTPS завдяки директивіtls). - Сервер: Вкажіть ваш домен (наприклад,
yourdomain.com). - Порт: Зазвичай
443(стандартний HTTPS порт). - Увімкніть опцію "Do not prompt for authentication" або "Always authenticate" та введіть логін і пароль, які ви задали в Caddyfile (наприклад,
user1таyour_password1).
- Активуйте профіль: Виберіть створений профіль "NaiveProxy" у розширенні, щоб почати використовувати проксі.
Спеціалізовані клієнти
Існують також спеціалізовані клієнти NaiveProxy, які можуть забезпечити системне проксіювання або більш тонке налаштування. Наприклад, для Windows можна використовувати клієнт, що постачається у складі V2RayN або Clash for Windows, де NaiveProxy підтримується як один із протоколів. У цих випадках ви вказуєте тип протоколу naive, адресу сервера, порт, логін та пароль.
Налаштування клієнта на мобільних пристроях (Android, iOS)
На мобільних платформах використання NaiveProxy також можливе, хоча може вимагати встановлення сторонніх додатків.
Android
Для Android рекомендується використовувати додатки-клієнти, що підтримують NaiveProxy, такі як V2RayNG, Clash for Android або NekoBox. Ці додатки дозволяють гнучко налаштовувати проксі-з'єднання.
- Встановіть додаток: Наприклад, V2RayNG з Google Play Store.
- Додайте конфігурацію NaiveProxy:
- У додатку натисніть на "плюс" для додавання нового профілю.
- Виберіть тип протоколу "NaiveProxy".
- Введіть ваш домен сервера, порт (443), логін та пароль.
- Збережіть конфігурацію.
- Активуйте з'єднання: Виберіть створений профіль та активуйте VPN-з'єднання у додатку.
Додатки типу V2RayNG створюють локальне VPN-з'єднання, яке направляє весь трафік через NaiveProxy. Якщо ви шукаєте інші рішення, Hysteria2 на VPS також є чудовим варіантом для обходу DPI.
iOS
На iOS також доступні клієнти, що підтримують NaiveProxy, наприклад, Shadowrocket, Quantumult X або Stash. Принцип налаштування аналогічний Android:
- Встановіть додаток: Наприклад, Shadowrocket з App Store.
- Додайте конфігурацію NaiveProxy:
- У додатку перейдіть до розділу "Configuration" або "Servers".
- Додайте новий сервер, виберіть тип "NaiveProxy".
- Вкажіть домен сервера, порт (443), логін та пароль.
- Збережіть.
- Активуйте з'єднання: Виберіть створений сервер та увімкніть проксі.
Важливо переконатися, що використовуваний клієнт NaiveProxy на мобільному пристрої також імітує мережевий стек Chromium для максимальної ефективності проти DPI.
Коли NaiveProxy — ваш найкращий вибір?
NaiveProxy не є універсальним рішенням для всіх сценаріїв обходу блокувань, але за певних умов він проявляє себе найкращим чином, перевершуючи багато інших протоколів.
Сценарії з жорстким DPI та аналізом TLS-відбитків
Основна перевага NaiveProxy проявляється там, де системи DPI активно аналізують не тільки вміст трафіку, але й його метадані, зокрема, TLS-відбитки. Якщо ви стикаєтеся з наступними ознаками, NaiveProxy може бути вашим порятунком:
- Блокування популярних VPN/проксі-протоколів: Якщо WireGuard, OpenVPN, Shadowsocks, Trojan, V2Ray або Hysteria2 блокуються швидко, навіть при використанні обфускації. Це може вказувати на те, що DPI ідентифікує їх за унікальними TLS-відбитками або іншими поведінковими патернами, що відрізняються від звичайного браузерного трафіку. Наша стаття про Zapret на VPS і роутері також розглядає схожі проблеми.
- Блокування після закінчення часу: Якщо ваш сервер працює якийсь час, а потім блокується, це може бути результатом поведінкового аналізу, коли DPI накопичує дані та визначає, що трафік не є браузерним.
- Неможливість встановити TLS-з'єднання: Якщо клієнти не можуть встановити TLS-рукопотиск з вашим сервером, навіть якщо порти відкриті, це може бути ознакою активного втручання DPI у процес TLS-сертифікації.
- DPI, що використовує машинне навчання: Сучасні DPI-системи можуть використовувати машинне навчання для виявлення аномалій у трафіку. Імітація мережевого стеку Chromium робить трафік NaiveProxy "нормальним" для таких систем.
У таких умовах, коли DPI "розумний" і здатний розрізняти різні типи TLS-трафіку, NaiveProxy стає одним з небагатьох протоколів, здатних ефективно обходити такі блокування, оскільки він буквально "прикидається" звичайним браузером. Це особливо актуально для регіонів з найбільш жорсткими інтернет-обмеженнями, де використовуються державні системи DPI, наприклад, "Золотий щит" або його аналоги.
Недоліки NaiveProxy: чесний погляд
Незважаючи на свої унікальні переваги в обході просунутих DPI, NaiveProxy має й свої обмеження, які важливо враховувати при виборі протоколу.
Обмеження та потенційні проблеми
- Менше клієнтів та екосистема: У порівнянні з такими протоколами, як Shadowsocks, V2Ray або WireGuard, екосистема NaiveProxy значно менша. Це означає, що вибір клієнтських додатків може бути обмежений, і підтримка може бути менш широкою. Знайти готові, зручні клієнти для всіх платформ може бути складніше.
- Складніше оновлення та підтримка: Оскільки NaiveProxy часто вимагає компіляції Caddy з певним модулем, процес оновлення сервера може бути складнішим, ніж просте
apt upgrade. Це вимагає більше технічних знань та часу для підтримки сервера в актуальному стані. - Потенційно нижча швидкість на втратах: NaiveProxy заснований на HTTP/2 поверх TCP. В умовах нестабільної мережі з високим рівнем втрат пакетів, продуктивність TCP може значно знижуватися. Протоколи, засновані на QUIC (наприклад, Hysteria2), які працюють поверх UDP і мають власні механізми відновлення втрат, часто показують кращу продуктивність у таких умовах. Для максимальної продуктивності при нестабільній мережі варто розглянути Hysteria2 з портхопінгом.
- Залежність від Caddy: NaiveProxy тісно інтегрований з Caddy. Це означає, що ви залежите від оновлень та стабільності Caddy та його модуля
forwardproxy. Будь-які зміни в Caddy можуть вимагати коригування вашої конфігурації NaiveProxy. - Вищі вимоги до ресурсів: Хоча сам NaiveProxy не дуже ресурсоємний, Caddy, особливо з TLS-шифруванням та обробкою HTTP/2, може споживати трохи більше оперативної пам'яті та CPU порівняно з мінімалістичними проксі-серверами. Для невеликих VPS з 512 MB RAM це може бути помітно.
- Потенційні ризики ідентифікації в майбутньому: Хоча NaiveProxy зараз дуже ефективний, системи DPI постійно розвиваються. Якщо DPI почне аналізувати інші поведінкові патерни, крім TLS-відбитків (наприклад, специфічні послідовності запитів або їх частоту), які навіть NaiveProxy не може повністю імітувати, його ефективність може знизитися.
Таким чином, NaiveProxy — це потужний інструмент для специфічних завдань, але його впровадження вимагає усвідомленого підходу до управління та розуміння його компромісів.
Часто задавані питання
Чи можна використовувати NaiveProxy без домену?
Ні, NaiveProxy вимагає дійсного доменного імені. Це пов'язано з тим, що протокол використовує HTTPS, і Caddy автоматично отримує TLS-сертифікати від Let's Encrypt, для чого необхідна наявність домену, що вказує на IP-адресу вашого VPS. Без домену Caddy не зможе отримати сертифікат, і NaiveProxy не працюватиме коректно.
Наскільки NaiveProxy безпечний?
NaiveProxy використовує стандартне TLS-шифрування, що робить його безпечним з точки зору конфіденційності даних. Основна "безпека" NaiveProxy полягає в його здатності маскуватися під звичайний браузерний трафік, обходячи DPI. Однак, як і будь-який проксі, він не забезпечує повної анонімності, і ваша IP-адреса, як і раніше, відома провайдеру VPS.
Чи впливає NaiveProxy на швидкість інтернету?
Як і будь-який проксі-протокол, NaiveProxy може впливати на швидкість інтернету. Продуктивність залежить від пропускної здатності вашого VPS, відстані до сервера та якості мережевого з'єднання. В умовах стабільної мережі NaiveProxy забезпечує хорошу швидкість, але при високих втратах пакетів (понад 5-10%) його TCP-основа може призвести до помітного зниження швидкості в порівнянні з QUIC-протоколами, такими як Hysteria2.
Чи можу я використовувати NaiveProxy на домашньому роутері?
Теоретично так, але це складніше, ніж на VPS. Для роботи на роутері (наприклад, з OpenWrt) вам знадобиться встановити Caddy з модулем forwardproxy, що часто вимагає компіляції під архітектуру роутера та наявності достатніх ресурсів (RAM, CPU, сховище). Простіше налаштувати NaiveProxy на VPS, а потім використовувати його для всієї мережі через клієнт на роутері, який підтримує проксі-з'єднання. Для обходу DPI на роутері можна розглянути Zapret на роутері Keenetic та OpenWrt.
Висновки
NaiveProxy є потужним та ефективним рішенням для обходу найпросунутіших систем DPI, особливо тих, які активно аналізують TLS-відбитки та метадані трафіку. Його унікальна здатність імітувати мережевий стек Chromium робить його практично невідмінним від звичайного браузерного трафіку, забезпечуючи надійний доступ до заблокованих ресурсів. Хоча NaiveProxy має свої недоліки, такі як менша кількість клієнтів та потенційно нижча швидкість в умовах втрат, його переваги у боротьбі з жорсткими блокуваннями роблять його незамінним інструментом для технічно підкованих користувачів, готових до самостійного налаштування на своєму VPS.
NVMe VPS з активацією за 60 секунд: повний root-доступ, 20+ локацій, оплата карткою або криптою.
Обрати тариф