NaiveProxy на iPhone: клиент
NaiveProxy хорош тем, что его трафик неотличим от обычного браузера Chrome, — но именно поэтому под него нет десятка удобных приложений, как под Shadowsocks или VLESS. Сервер поднят, ссылка с конфигом есть, а на iPhone непонятно, куда её вставлять. Разбираемся, какие приложения реально умеют NaiveProxy, как завести сервер руками и почему после «Connected» интернет иногда всё равно не открывается.
Содержание
- Что за протокол и почему клиента не найти с первого раза
- Shadowrocket — основной вариант с нативной поддержкой
- Добавляем сервер вручную: какие поля за что отвечают
- Импорт по ссылке и QR-коду
- Режим маршрутизации: почему коннект есть, а сайтов нет
- NaiveTools — альтернатива, если не хочется Shadowrocket
- Диагностика: типичные ошибки клиента
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что за протокол и почему клиента не найти с первого раза
NaiveProxy использует сетевой стек самого Chromium: TLS-отпечаток, порядок заголовков, поведение HTTP/2 и QUIC — всё как у настоящего браузера, который открыл вкладку и получил страницу через CONNECT. Сервер обычно поднимают на форке Caddy с плагином forwardproxy, который добавляет паддинг (случайную «начинку» заголовков), чтобы длина CONNECT-запроса не выдавала прокси-протокол при активном зондировании. С точки зрения DPI это просто ещё один HTTPS-сайт.
Расплата — узкая экосистема. У VLESS-Reality и Shadowsocks десятки клиентов на все платформы, у NaiveProxy — по сути один массовый мультипротокольный клиент на iOS. Quantumult X, Loon и Stash NaiveProxy не поддерживают: у них нет такого пункта в списке протоколов, и разработчики не анонсировали его добавление. Если вы уже пробовали найти «Naive» в этих приложениях — это не вы не там искали, его там действительно нет.
Shadowrocket — основной вариант с нативной поддержкой
Единственное популярное мультипротокольное приложение с native-полем «Naive» в типе сервера — Shadowrocket. Он же обычно уже стоит у тех, кто настраивал на iPhone VLESS или Trojan, так что NaiveProxy добавляется тем же приложением, без установки ещё одной программы.
Нюанс для тех, кто в России: Shadowrocket отсутствует в российском App Store. Нужен Apple ID с регионом США, Турции или любой другой страны, где приложение доступно, — заводится отдельно, без переключения основного аккаунта, чтобы не потерять покупки и подписки. Стоит приложение около $2.99, разово, без подписки.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверДобавляем сервер вручную: какие поля за что отвечают
В Shadowrocket через «+» в правом верхнем углу выбираете тип Naive и заполняете:
| Поле | Что писать |
|---|---|
| Address | Домен сервера (тот же, что в TLS-сертификате) |
| Port | Обычно 443 |
| Username / Password | Логин и пароль, заданные в Caddyfile на сервере (директива auth) |
| Protocol | https (HTTP/2 поверх TLS) или quic (HTTP/3), если сервер собран с поддержкой QUIC |
| SNI | Как правило совпадает с Address; отдельно указывайте, только если сервер спрятан за камуфляжным доменом с другим сертификатом |
| Allow Insecure | Оставляйте выключенным — включать имеет смысл только на время диагностики с самоподписанным сертификатом |
Путаница «https или http2» в этом поле — частый вопрос в issues проекта, и однозначного ответа разработчик не даёт: это просто выбор транспорта. Если сервер настроен стандартно (Caddy с автоматическим HTTPS, без явного форсирования QUIC), начинайте с https — это HTTP/2, транспорт по умолчанию у большинства инструкций по установке.
Импорт по ссылке и QR-коду
Спецификация NaiveProxy описывает единый формат ссылки:
naive+https://username:password@host:port?padding=true#comment
naive+quic://username:password@host:port?padding=true#comment
Порт 443 можно не указывать — он подставляется по умолчанию. Параметр padding включает тот самый паддинг заголовков; на современных серверах и клиентах его стоит держать включённым — это часть защиты от активного зондирования, ради которой протокол и существует. Многие серверные скрипты для установки NaiveProxy печатают такую ссылку и QR-код сразу после разворачивания сервера — это удобнее, чем переносить логин и пароль руками.
В Shadowrocket ссылку можно вставить через «Add from Clipboard» (скопировав её заранее) или отсканировать QR-код прямо из приложения. А вот обратный путь — экспортировать конфиг из Shadowrocket, чтобы потом импортировать его в другое приложение или даже туда же после переустановки, — не всегда работает предсказуемо: экспортированные Shadowrocket'ом URI не всегда соответствуют стандартному формату. Надёжнее хранить оригинальную ссылку, полученную от серверного скрипта, а не полагаться на экспорт из клиента.
Режим маршрутизации: почему коннект есть, а сайтов нет
Самая частая причина «подключено, но ничего не грузится» — режим маршрутизации, а не сам NaiveProxy. В Shadowrocket есть несколько режимов: Global (весь трафик и DNS идут через прокси), Config/Rule (по правилам) и локальный Direct. Если оставить режим по умолчанию без настроенных правил, DNS-запросы могут продолжать уходить напрямую — VPN-иконка при этом честно показывает «подключено», а сайты не открываются, потому что резолвинг доменов идёт мимо туннеля.
Для первого теста после добавления сервера переключитесь в Global — это гарантированно прогонит весь трафик и DNS через NaiveProxy. Если заработало, дальше можно тонко настроить Rule-режим под свои сценарии и проверить, что DNS действительно не подтекает мимо: как именно это сделать после смены режима, подробно разобрано в статье про проверку DNS-утечек.
NaiveTools — альтернатива, если не хочется Shadowrocket
Если платить за отдельный Apple ID неохота, у NaiveProxy есть открытый проект NaiveTools от разработчика ZonD80 — связка серверного bash-скрипта и iOS/macOS-клиента, построенного на sing-box Libbox с настоящим Packet Tunnel Provider. В отличие от Shadowrocket, это полноценный системный VPN-переключатель, а не локальный HTTP/SOCKS-прокси, — плюс серверный скрипт сам печатает ссылку и QR-код для импорта после установки.
Но здесь придётся принять пару компромиссов, честно указанных самим автором:
- В App Store приложения нет — Apple в своё время отклонила его как «спам». Установка — через сайдлоад (AltStore, appdb) либо сборка из исходников в Xcode на физическом устройстве (в симуляторе Packet Tunnel не работает).
- Проект в режиме поддержки: автор чинит критичные баги и совместимость, но новых функций не добавляет. Держать его как единственный канал для регулярной работы рискованно — лучше как запасной вариант, а не основной.
Для разового теста протокола или как fallback, если Shadowrocket недоступен, вариант рабочий. Для повседневного использования на iPhone стабильнее Shadowrocket с зарубежным Apple ID.
Диагностика: типичные ошибки клиента
- TLS handshake failed — чаще всего SNI в настройках клиента не совпадает с доменом, на который выписан сертификат сервера. Проверьте, что поле SNI (или Address, если SNI отдельно не задан) буква в букву совпадает с доменом из Caddyfile.
- Подключается и сразу рвётся — неверный логин/пароль (опечатка при ручном вводе — частая причина, копируйте, а не перепечатывайте) либо рассинхрон паддинга между старым клиентом и новым сервером (или наоборот). Обновите оба конца до актуальных версий и держите
padding=trueна обеих сторонах. - Первый запрос зависает, повторный проходит — попробуйте переключить Protocol с
httpsнаquicили обратно: иногда конкретная сеть режет QUIC/UDP, и HTTP/2-транспорт заводится стабильнее. - «Connected», но браузер пишет «нет интернета» — почти всегда режим маршрутизации, см. раздел выше, а не проблема самого NaiveProxy.
- Всё работало и вдруг перестало без изменений в конфиге — проверьте срок действия TLS-сертификата на сервере и что домен не улетел в блок-лист у вашего провайдера; для доменов под NaiveProxy стоит держать сервер в юрисдикции, где такие блокировки происходят реже, и иметь запасной домен под рукой.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Можно ли добавить NaiveProxy в iOS без покупки Shadowrocket?
Да, через сайдлоад NaiveTools (AltStore/appdb) или сборку из исходников в Xcode. Но это требует больше возни с сайдлоадом и переподписью приложения раз в несколько дней или через год, в зависимости от способа установки, — для разового теста подходит, для ежедневной работы удобнее один раз завести зарубежный Apple ID и купить Shadowrocket.
В чём разница между https и quic в поле Protocol?
Это выбор транспорта: https — HTTP/2 поверх TLS, стандартный вариант для большинства серверов на Caddy; quic — HTTP/3, доступен только если сервер явно собран и настроен с поддержкой QUIC. Если не уверены, что на сервере — начинайте с https.
Нужно ли включать padding?
Да, если и клиент, и сервер это поддерживают (актуальные версии — поддерживают). Отключать имеет смысл только для совместимости со старыми серверными сборками, которые паддинг ещё не умеют.
В Shadowrocket нет пункта Naive среди типов сервера, что не так?
Скорее всего, стоит старая версия приложения из кэша или устаревший билд — обновите Shadowrocket через App Store того региона, где куплен аккаунт.
Подойдёт ли этот же конфиг для другого протокола, если NaiveProxy не приживётся?
Нет — NaiveProxy на сервере поднимается отдельно от Shadowsocks, VLESS или WireGuard, у него свой Caddyfile и порт. Если хотите сравнить протоколы на одном сервере, посмотрите гид по выбору протокола VPN под сценарий — часто проще держать два протокола параллельно, чем гадать заранее.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →