Shadowrocket бесшовная работа на iOS и не только

Одновременно сидеть в Инсте и госуслугах без лишних сложностей — легко. Самый подробный мануал на русском, как пользоваться программой Shadowrocket (SR) с выборочным проксированием.

Shadowrocket (рус. Щедоурокет) — это видоизмененный клон программы Surge для устройств Apple, с помощью которой можно удобно и безопасно пользоваться любыми сайтами и приложениями, даже если к ним ограничен доступ. Например, вы сможете одновременно заходить в Инстаграм и госуслуги, не переключая настройки.

Программа позволяет выбрать, какие приложения используют защищённое соединение, а какие работают как обычно. Это особенно удобно, если вы хотите, чтобы одни сайты открывались быстро и без ограничений, а другие — оставались доступными, даже если их заблокировали недружественные страны.

Shadowrocket работает на iPhone, iPad, Mac (Apple Silicon) и Apple TV. Приложение платное и доступно только в App Store. Для Windows, Android и Synology его официально не существует.

Почему стоит выбрать Shadowrocket?

  • Гибкая маршрутизация трафика

  • Поддержка модулей для блокировки рекламы и ускорения YouTube

  • Работа в фоне (Always On)

  • Простая интеграция с экосистемой Apple

Настройка

Для тех у кого уже есть свой сервер или планирует его приобретать. Если у вас нет сервера или вы не знаете что это, то лучше обратиться к специализированным статьям. Без сервера или подписки программа не позволит завернуть трафик на iPhone через прокси и будет бесполезна.

Shadowrocket настройка более, чем стандартная: находим приложение, покупаем за 279₽ (оригинальное приложение Surge стоит 49$ или 4490₽), скачиваем и настраиваем:

На первом скрине настройка на русском, а на втором на английском. Оплатить покупку можно с номера телефона МТС в 2025

  1. На вкладке Главная (Home) с иконкой дома добавляем свой сервер Shadowsocks (например, через 3x-ui) или любой другой через QR-код, если ваше подключение это позволяет. Кнопка в левом верхнем углу.

  2. Заходим в Маршрутизацию (Global Routing (Config)) с иконкой штурвала, оставляем Настройка (Config), если не выбран, то укажите;

  3. Открываем вкладку Настройка (Config) с иконкой папки, жмем в верхнем правом углу на + и добавляем ссылку на готовый конфиг в поле Загрузить с URL (Download from URL). Можете использовать мой для теста:


https://cdn.jsdelivr.net/gh/misha-tgshv/shadowrocket-configuration-file@release/conf/sr_ru_public_lists.conf

Разница с default.conf (содержит правила для Китая) и моим в логике работы. В моем конфиге точечный обход: запрещенка через VPN, а все остальное через мобильного оператора. Этот конфиг не будет конфликтовать, если вы подключитесь к Wi-Fi;

  1. После скачивания нажимаем на ссылку в блоке LOCAL FILES и кликаем

Как пользоваться дальше? Вы можете каждый раз включать приложение, когда нужно зайти в Инсту. Это не самый удобный вариант. Я рекомендую в настройках активировать режим Always On (Settings → On Demand → Always On → Enable). В этом случае приложение будет работать в фоне постоянно и в день расход батарейки может достигать 30%.

Некоторые банковские приложения и не только, будут выдавать оповещения с предложением отключить VPN. Не надо поддаваться на это. Shadowrocket не вмешивается в трафик, если его нет в исключениях.

Базовая настройка сделана. Если вы сейчас включите конфинг — все сработает. Дальше для тех, кто хочет самостоятельно разобраться и понять, как настроить shadowrocket config file под свои нужды.

Диагностика проблем

В некоторых приложениях может происходить неожиданное более долгая загрузка контента. Если вы заметили, что в Алиэкспресс картинки еле-еле грузятся, то самое время пойти в логи приложения. Порядок действий такой: открываете SR → Data → Proxy → Enable Logging и открываете последний лог. Там можно будет понять идут ли например картинки через прокси или на прямую.

Например, у меня был кейс с игрой Асфальт 9. Дело в том, что у нее перестала быть доступна сетевая игра на iPad. Я посмотрел куда она шлет запросы во время подключения в сети и оказалось, что несколько доменов появляются только в сети. После их добавления все заработало.

Мы видим, что в моем конфиге все запросы даже на домены com, которых нет в исключениях идут напрямую

Если вы сомневаетесь в работе вашего сервера или подписки, то рекомендую для теста использовать V2Ray Subscription. С осторожностью относитесь к общедоступным прокси-серверам и подпискам на них, понимая их риск.

Примеры конфигов

КонфигОписаниеСпискиСтатус
sr_ru_public_lists.confБазовый конфиг для всех в России с маршрутизацией для определённых сайтов. Трафик идет напрямую, кроме доменов из подключаемых списков. Они через прокси.Community, Antifilter Domain, Re:filter Domain, Youtube Domain и Antifilter IP-адресаОбновляется
template-ios-ru-geoip.confМаксимум защиты. Трафик идет через прокси, кроме ГЕО РФ или доменов РФ — они идут через провайдера. Может работать некорректно с приложениями, где используется геолокация. Также потребуется аккаунт Maxmind или добавление их базы данных из открытых источниковProxy, Youtube, AntifilterАрхивный, не обновляется
template-ios-ru-domain.confВсе в одном. Трафик идет напрямую, кроме доменов указанных в конфигеДомены и IP-адреса из списков Proxy, Youtube, AntifilterАрхивный, не обновляется

Ускорение Youtube

Если вы хотите смотреть YouTube на iPhone без рекламы и с премиум-функциями (например, картинка-в-картинке), достаточно установить специальный модуль и сертификат в приложении Shadowrocket. Эта пошаговая инструкция с картинками поможет даже новичкам и школьникам: вы научитесь быстро выпускать и устанавливать сертификат, чтобы Shadowrocket мог блокировать рекламу и включать дополнительные возможности на YouTube. Просто следуйте каждому шагу — всё делается прямо на телефоне и занимает всего несколько минут. Текущая версия для iOS 18.3.1:

Скачайте и установите модуль YT-Premium-V1-RU

  1. Перейдите в раздел Config → Modules;

  2. Нажмите + (плюс) для добавления нового модуля;

  3. Вставьте ссылку на модуль: https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/refs/heads/release/modules/YT-Premium-V1-RU.module

  4. Нажмите Download (Скачать);

  5. Убедитесь, что модуль появился в списке и активирован;

Включение HTTPS Decryption, выпуск и установка сертификата

  1. Откройте нужный конфиг

  2. В приложении Shadowrocket найдите свой конфиг (например, sr_ru_public_lists.conf);

  3. Нажмите на букву i справа от названия;

  4. Перейдите в раздел HTTPS Decryption;

  5. Включите переключатель HTTPS Decryption (он должен стать синим);

  6. Пролистайте вниз, найдите раздел Certificate;

  7. Нажмите Generate A New CA Certificate;

  8. Подтвердите действие, снова выбрав Generate A New CA Certificate;

  9. После генерации выберите Install CA Certificate to System;

  10. В появившемся окне выберите Allow (Разрешить);

  11. Появится сообщение Profile Downloaded (Профиль загружен);

Установка профиля сертификата

  1. Установите профиль сертификата через настройки iPhone

  2. Откройте приложение Настройки;

  3. В самом верху появится пункт Profile Downloaded (Загружен профиль) — нажмите на него;

  4. Нажмите Install (Установить), введите пароль от устройства;

  5. Снова нажмите Install (ещё раз подтвердите);

  6. Сертификат будет установлен (Profile Installed);

Сделайте сертификат доверенным

  1. Откройте Настройки → Основные → Об этом устройстве → в самом низу выберите Certificate Trust Settings (Настройки доверия сертификатам);

  2. Включите переключатель напротив вашего сертификата Shadowrocket;

  3. Подтвердите действие, нажав Continue (Продолжить);

Теперь всё готово! Shadowrocket сможет расшифровывать трафик Ютуба, чтобы блокировать рекламу и включать премиум-функции. В моей версии модуля отключены китайские субтитры, где за это отвечают два параметра captionLang:off и lyricLang:off. Исходный модуль YT-Premium-V1 от @YanbingJiang сделал его на базе другого существующего модуля для Surge и из него взят скрипт youtube.response.preview.js от @Maasea.

По какой-то причине при первом запуске может не работать из-за проблем с сертификатом. Попробуйте его выпустить и запустить заново.

Если вы ищете решения для Apple TV (ATV), то на уровне квартиры лучше воспользоваться пакетом nfqws-keenetic для роутеров Кинетик/Netcraze или с поддержкой OpenWRT. У вас будет 4к даже на канале с шириной 100 Мбит/с и никакой рекламы. Причем можно также подключаться с телефона к своему роутеру через Wireguard и смотреть Ютуб без рекламы.

Автообновление

Все делается в настройках: Settings → Config → Auto Background Update → активировать ползунок. Обратите внимание, что если в него были добавлены ваши правила, то они будут полностью удалены. В этом случае лучше использовать второй конфиг sr_ru_extended.conf.

Отключение рекламы

Несколько вариантов:

  • Использовать публичные DNS Adguard (см. базовый конфиг), который показывает на «Сайте с рекламой» 68 баллов;

  • Бесплатно завести учетку на AdGuard DNS, но там 300к запросов в месяц и один список доменов с рекламой. Есть также платная подписка 1252₽/год на 10 устройств;

  • Бесплатно развернуть AdguardHome на вашем роутере, VPS или NAS-сервере. Его списки могут резать до 90% рекламы. Обязательно используйте шифрование.

Настроить свои DNS легко! Идем в основные настройки конфига в раздел DNS OVERRIDE и добавляем туда свои днсы. Проверить их работу можно на Сайте с рекламой.

«Сайт с рекламой» дает 78 баллов личному AGH

Как добавить сайт или список которого нет в конфиге?

В приложении идем во вкладку Config. Напротив названия конфига жмем на иконку i. Жмем вверху на иконку +, выбираем Add Rule. В Type выбираете DOMAIN-SUFFIX например spotify.com, если важно, чтобы обход работал по ключевому слову, то лучше выбрать DOMAIN-KEYWORD. Тогда независимо от того, как набрать spotify.com или spotify.tr будет срабатывать конфиг. После чего указываете Policy: Proxy — через VPN, Direct — трафик напрямую. В DOMAIN указываете название домена.

Чтобы новые правила не удалялись после добавления лучше создать отдельный конфиг с названием sr_ru_extended.conf. Добавьте туда свои списки и правила, тогда основной конфиг будет обновляться, а ваши правила будут не тронуты.

Для некоторых доменов, которых нет в списке может потребоваться добавление отдельных правил. Если у вас есть конфиг, то вы можете назвать его sr_ru_extended.conf и тогда этот будет подключаться дополнительно.

Использование на Apple TV

Если есть iPhone, то самый быстрый вариант подключиться к одной сети: Data → Apple TV. Далее синхронизируете сервера и конфиги. Если iPhone нет, то придется все добавлять вручную.

Использование на macOS

Да если у вас проц Apple silicon и куплена версия на iOS: App Store → Профиль → iPhone & iPad Apps. Там найдите среди доступных Shadowrocket. Добавляете сервер и ссылку на ваш конфиг. Удивительно, но он работает стабильнее, чем ShadowsocksX-NG. Особенно актуально для тех, кто раздает с Айфона на мак в поездках. В этом случае приложение нужно запускать именно на маке.

Доступ к банкам из-за границы

Подключаете сервер в РФ, а в конфиге добавляете строку:


RULE-SET,https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/main/proxy-finance-ru.list proxy-finance-ru.list,PROXY

Конфликты

Приложения, которые некорректно работают с SR: Парковки России.

Подготовка конфига

Просмотрев с десяток разных файлов, оказалось, что есть изящное решение, когда конфиг выглядит не портянкой на 200 строчек, а занимает всего с пару десятков и будет понятен даже школьнику:


# Общие настройки

[General]

# Настройка обхода включена

bypass-system = true

# Пропуск специфических ip-адресов и доменов в зоне ru. Они будут идти без VPN

skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local, captive.apple.com

# Исключение диапазонов для обхода

bypass-tun = 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.88.99.0/24, 192.168.0.0/16, 198.18.0.0/15, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/4, 255.255.255.255/32

# ДНС сервера гугловые, но при этом если они не будут отвечать, то запрос будет идти через системные, через вашего провайдера

dns-server = 8.8.8.8, 8.8.4.4, https://dns.adguard.com/dns-query

fallback-dns-server = system

# Адрес ручного обновления конфига. Автоматическое обновление не поддерживается

update-url = https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/main/template-ios-ru.conf

# Правила для работы трафика

[Rule]

# Массовое правило, где подключаются список доменов, для которых будет работать VPN

RULE-SET,https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/main/proxy.list,PROXY

# Опционально. Если домен в базе Geolite2 из РФ, то трафик идет напрямую

GEOIP,RU,DIRECT

# Последнее правило. Оно определяет политику по умолчанию для запросов, которые не соответствуют каким-либо другим правилам. В данном случае трафик идет напрямую без VPN

FINAL,DIRECT

# Локальный хост

[Host]

localhost = 127.0.0.1

Если мы хотим сделать небольшой с минимум ресурсов, то он будет таким:

Конфинг Мини

Если вы стремитесь к минимальному количеству правил роутинга для экономии заряда батареи, обратите внимание: использование голосовых и видеоприложений, а также некоторых сетевых протоколов, может существенно увеличить энергопотребление — в некоторых случаях до 30% от общего заряда аккумулятора. Чем проще ваш конфиг и меньше активных сетевых функций (например, udp), тем дольше проработает устройство без подзарядки.


[General]

# Системные процессы через провайдера

bypass-system = true

# Включить поддержку IPv6, отключено

ipv6 = false

# Переопределение DNS

dns-server = https://dns.google/dns-query, https://dns.adguard-dns.com/dns-query

# Альтернативный DNS при сбое предыдущего, указан провайдера

fallback-dns-server = system

# Пропустить прокси. Эта опция заставляет диапазоны подключений для этих доменных

# имен или IP-адресов обрабатываться интерфейсом Shadowrocket TUN, а не прокси-сервером

# Shadowrocket. Эта опция используется для решения некоторых проблем совместимости с некоторыми приложениями.

skip-proxy = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,localhost,*.local,captive.apple.com

# Маршрутизация обхода TUN. Интерфейс Shadowrocket TUN поддерживает только протокол TCP.

# Используйте эту опцию, чтобы обойти указанный диапазон IP-адресов,

# позволяя другим протоколам проходить через него.

tun-excluded-routes = 10.0.0.0/8,100.64.0.0/10,127.0.0.0/8,169.254.0.0/16,172.16.0.0/12,192.0.0.0/24,192.0.2.0/24,192.88.99.0/24,192.168.0.0/16,198.51.100.0/24,203.0.113.0/24,224.0.0.0/4,255.255.255.255/32,239.255.255.250/32

# Всегда используйте реальный IP-адрес, эта опция требует, чтобы Shadowrocket

# обрабатывал DNS-запросы в TUN и возвращал реальный IP-адрес вместо поддельного IP-адреса.

always-real-ip=time.*.com,ntp.*.com,*.cloudflareclient.com

# Содержит конфигурацию. Например, `include=a.conf` означает, что текущая

# конфигурация содержит содержимое другой конфигурации a.conf, и текущая конфигурация имеет

# более высокий приоритет, чем a.conf. Эта опция предназначена для установления связи

# включения между конфигурациями для удовлетворения потребностей одновременного использования нескольких конфигураций.

# include = sr_ru_extended.conf

# URL-адрес обновления файла конфигурации

# update-url = # https://cdn.jsdelivr.net/gh/misha-tgshv/shadowrocket-configuration-file@release/conf/sr_ru_public_lists.conf

# Опционально. Добавьте эти адреса в настройках программы Settings → GeoLite2 Database

# Если у вас нет аккаунта на Maxmind и вы испольузуете финальное правило Proxy или Auto

# country: https://git.io/GeoLite2-Country.mmdb

# asn: https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-ASN.mmdb

# Правила исключения, эти ресурсы для защиты трафика

[Rule]

DOMAIN-KEYWORD,instagram,Proxy

DOMAIN-KEYWORD,facebook,Proxy

DOMAIN-KEYWORD,twitter,Proxy

DOMAIN-KEYWORD,4pda,Proxy

DOMAIN-SUFFIX,meta.com,Proxy

DOMAIN-SUFFIX,twimg.com,Proxy

DOMAIN-SUFFIX,fbcdn.net,Proxy

DOMAIN-SUFFIX,fbsbx.com,Proxy

DOMAIN-SUFFIX,x.com,Proxy

DOMAIN-SUFFIX,notion,Proxy

DOMAIN-SUFFIX,apple-relay.apple.com,Proxy

DOMAIN-SUFFIX,copilot.microsoft.com,Proxy

DOMAIN-SUFFIX,elevenlabs.io,Proxy

DOMAIN-SUFFIX,grok.com,Proxy

DOMAIN-SUFFIX,x.ai,Proxy

DOMAIN-SUFFIX,sora.com,Proxy

DOMAIN-KEYWORD,proactivebackend-pa.googleapis.com,Proxy

DOMAIN-SUFFIX,composer.opera-api.com,Proxy

DOMAIN-SUFFIX,user.auth.xboxlive.com,Proxy

DOMAIN-SUFFIX,xsts.auth.xboxlive.com,Proxy

# Основное правило, весь трафик через провайдера

FINAL,DIRECT

Правила роутинга

Для каждого домена или диапазона ip-адресов мы можем задавать разные политики: Direct (Прямой запрос) — через вашего мобильного провайдера, Proxy (Прокси запрос) — через защищенный сервер, а также Reject — блокировка запроса. Далее рассмотрим связку правил роутинга и политики:

DOMAIN,www.tiktok.com,ProxyПравило срабатывает, если домен запроса совпадает точно.
DOMAIN-SUFFIX,tiktok.com,ProxyПравило срабатывает, если домен запроса соответствует суффиксу. Например: tiktok.com соответствует www.tiktok.com, ads.tiktok.com и tiktok.com, но не соответствует content-tiktok.com.
DOMAIN-KEYWORD,youtube,ProxyПравило срабатывает, если домен запроса содержит ключевое слово.
DOMAIN-SET,youtube.list,ProxyРаботает для больших список, где больше 1000 записей доменов или IP-адресов
IP-CIDR,10.0.0.0/8,DIRECTПравило срабатывает, если IP-адрес запроса соответствует указанному диапазону.
GEOIP,RU,DIRECTПравило срабатывает, если результат теста GEOIP соответствует указанному коду страны.
IP-CIDR,172.16.0.0/12,DIRECT,no-resolveПри обнаружении правила GEOIP или IP-CIDR SR отправит DNS-запрос, чтобы проверить, является ли имя хоста запроса доменом. Вы можете выбрать опцию no-resolve, чтобы пропустить это правило для запроса с доменом.

Модули

SR поддерживает модули. Это скрипты, которые могут отключать рекламу в отдельных приложениях и не только.

Например, некоторые модули блокируют рекламу на Ютубе почти на 90%. Из минусов длительная загрузке контента в приложении.

Также можно настроить модуль, который будет редиректитить домены. Например, если вводите yandex.ruya.ru.

Предотвращение утечки IP-адреса

Переходите Settings → UDP и включаете Enable Relay и Disable STUN. В Allow Ports оставляем пустым. Если хотите закрыть все порты, то укажите 0. Проверяем на Browserleaks. Также проверить геолокацию вашего ip-адреса можно через сервис ipinfo.io

Раздельное туннелирование

Предполагается несколько несколько вариантов работы:

  • Через правила. Например, разные урлы можно разделить через разные прокси. Например, как это описано в абзаце выше.

  • При подключении к разным сетям. Можно настроить, что для Wi-Fi будет использоваться один сервер, а для мобильного оператора другой.

  • Диапазон. Пока такой вариант только на уровне теории. Хотя на мой взгляд с помощью правил можно задать варианты когда для подключения к корпоративному VPN будет использоваться конкретный сервер.

Поддержка разных серверов для доменов

В некоторых случаях можно для разных доменов выбирать разные сервера. Например, для сайта NBA будем отправлять запросы через американский VPS, а для грузинский сайтов можно использовать другой впс этой же страны. Настраивается так: открываем конфиг → Rule → выбираем правило с нужным доменом → Policy Roxy → в самом низу выбираем подходящий сервер.

Включение GEOIP

Актуально для тех, кто использует конфиг template-ios-ru-geoip.conf. Сайт проверяется в базе MaxMind Geolite2. Это популярная настройка в Китае, но в текущих реалиях она мне кажется избыточной.

Регистрируемся на MaxMind Geolite2. Идем Account → Manage License Keys → Generate new license key. Сохраняем Account ID и License key. Затем в Settings добавляем Account ID и License key, жмем строку Update. Обратите внимание, что под VPN регистрация не проходит, а только под ip реальной страны.

Первая настройка через аккаунт Maxmind, вторая — из Github.

Впечатления

Настроил и забыл. Shadowrocket не нужно открывать/закрывать каждый раз, как программу с VPN, чтобы зайти в Инсту и Тви.

Цена. 279₽ единоразово за такой функционал — отлично.

Отсутствует документация. Базовый роутинг понятен, но, к сожалению, какие-то частные решения придется изучать и пробовать методом тыка.

Дизайн. Выглядит как типичное китайское приложение, где все выкинуто, кроме основ работы с трафиком.

Роутинг для приложений. В отличии от большинства программ на Android в SR нельзя добавить исключения для конкретных приложений.

Использование батареи. В среднем в день 30% в фоновом режиме с 8:00 утра до 00:00 уходит на использование SR. На мой взгляд данные сложно проверить так, как зачастую они необъективны.


Информация:

Источник материала: Информация адаптирована из блога mishatugushev.ru