Бесшовная работа Shadowrocket на iOS

Ниже, как сделать так, чтобы все российские ресурсы в РФ открывались без VPN, а «плохие», как Instagram или Twitter, через VPN. Из-за текущей ситуации рекомендуется для мобильного трафика использовать любой другой VPN кроме Wireguard.

Цель этого поста была в том, чтобы сделать shadowrocket config file с бесшовной работой, но получилось чуть больше. С одной стороны моя конфигурации позволяет одновременно заходить в госуслуги и читать соцсеть X. Трафик для заблоченных ресурсов идет через VPN, а для всех остальных напрямую. Если в рамках квартиры можно запустить Квас с тем же алгоритмом работы, то с мобильным телефоном на iOS оказалось чуть проще.

Инструкция

Процедура стандартная: находим приложение Shadowrocket, покупаем за 279₽, скачиваем и настраиваем:

Скриншот настройки Shadowrocket с сервером Wireguard
Оплатить покупку можно с номера телефона МТС или Билайн.
  1. На вкладке Home добавляем сервер Wireguard или любой другой через QR-код. Если у вас его еще нет, то в этом посте рассказал, как его поставить с веб-интерфейсом;
  2. Заходим в Global Routing (Config) и оставляем Config, если не выбран, то укажите;
  3. Открываем вкладку Config, жмем на + и добавляем ссылку на готовый конфиг в поле Download from URL. Можете использовать мой для теста:
https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/main/template-ios-ru.conf

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

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

Файл конфигурации

Список доменов автора для которых будет работать VPN

Для тех, кто хочет самостоятельно разобраться и понять, как все работает. Если вам не нужно, то можно пропустить. Просмотрев с десяток разных файлов, оказалось, что есть изящное решение, когда конфиг выглядит не портянкой на 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, *.ru

# Исключение диапазонов для обхода
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 
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

# Автоматическое изменение адреса с yandex.ru на ya.ru 
[URL Rewrite]
^http://(www.)?yandex.ru https://www.ya.ru 302

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

https://github.com/misha-tgshv/shadowrocket-configuration-file/blob/main/template-ios-ru-domain.conf

Описание настроек

Настройка Где искать Описание Параметры
Global Routing Вкладка Home Определяет глобальные правила работы трафика Proxy (через VPN), Direct (напрямую), Scene (кастомная настройка для подключения по Wi-Fi или сотовой связи)
Connectivity Test Вкладка Home Проверяет работу подключенных серверов через которые будет идти трафик. Если на вкладке Settings в разделе ADVANCED в строке Test Method поменять на Connect, то при нажатии на кнопку Connectivity Test будет показываться задержка до сервера и его статус работы.
Statistic Вкладка Data В реальном времени показывает пропускную способность Archives — при необходимости можно сохранить данные в архив
Home + и Add Server Какие протоколы и типы поддерживает приложение Shadowsocks, ShadowsocksR, Subscribe (subscribe URL or Clash YAML URL), Vmess, V2ray VMess Protocol, VLESS, V2ray (4.27.0+) VLESS Protocol, Relay, GOST (2.11+) Relay Protocol, Socks5, Socks5 Over TLS, HITP, HTTPS, HTTP2, Trojan, Hysteria, TUIC, WireGuard, Snell, Brook, Lua

Популярные вопросы

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

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

Включение GEOIP

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

Если нужен доступ к российским банкам из-за границы

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

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

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

Самый эффективный — использовать собственный сервер AdguardHome с шифрованием, развернутый на VPS или роутере. Около 4-5 баз режут примерно 77% рекламы, кроме попапов. Кроме того ваш ДНС не сможет перехватить провайдер. При этом в настройках ДНС нужно обязательно удалить строку system, чтобы все работало.

Впечатления

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

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

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

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

Еще по теме

Как нескомпромитировать личный VPS и заодно настроить 3x-ui

Установка Shadowsocks с v2ray в Докере

Проверить геолокацию вашего ip-адреса через сервис ipinfo.io

Приложение Shadowrocket для iOS в Апсторе.

Документация Surge (цена 49.99$), где описана большая часть правил и функционала, которая подходит Shadowrocket. При беглом изучении обеих программ оказалось, что китайцы скопировали функционал Surge и адаптировали на сколько смогли. Ибо дизайн Surge гораздо лучше.

Список доменов, который подключается к домену для обхода блокировок.

Send
Share
Pin
16 comments
Владимир 4 mo

А как можно добавить ещё своих сайтов?

Блог Миши Тугушева 4 mo

Владимир, варианта, как минимум два:

  1. Зайти в Shadowrocket → выбрать нужный конфиг → i → Rule → + → Domain-Keyword → указываем свой домен.
  1. Либо скопировать себе файл https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/main/proxy.list и отредачить под себя. Потом в настройках конфига указать новый путь

Бонус. Третий — не использовать мой конфиг и просто указать свой список сайтов, как в п.1.

Rais Gall 3 mo

спасибо за тутор. подскажите пожалуйста, можно ли добавить в исключения торрент клиент transmission? использую shadowrocket на маке, он стабильнее остальных утилит

Блог Миши Тугушева 3 mo

Велком) Transmission запущен на роутере?

Rais Gall 3 mo

нет, просто клиент на маке

Блог Миши Тугушева 3 mo

Дополнительных разрешений не нужно

Павел Анохин 3 mo

Встречали ли вы перечень рекламных доменов? На гитхабе полно списков от китайской аудитории, но для РФ ничего внятного найти не смог.

Блог Миши Тугушева 3 mo

Попробуйте поиск через оператор в Гугле list ads-block  russian site:github.com  after:2023-01-01, но обратите внимание, что под Shadowrocket придется все равно собирать руками.

Павел Анохин 3 mo

В общем попробовал я фильтр доменов, но он убирает максимум 20 процентов рекламы. Если кому интересно, ниже ссылка. Соответственно нужно немного переделать в нужный формат (удобно через Excel).
https://raw.githubusercontent.com/deathbybandaid/piholeparser/master/Subscribable-Lists/CountryCodesLists/Russia.txt

Блог Миши Тугушева 3 mo

На форуме посвященного роутерам Кинетик пишут, что этот список отлично работает https://easylist-downloads.adblockplus.org/ruadlist.txt. Понадобится его адаптация

Павел Маслов 3 mo

Почему-то Яндекс перестал с этим профилем работать, не грузит ничего, отключаю впн – все ок((

Павел Маслов 3 mo

Решил путем добавления в настройках правила днс Яндекса – заработало

Павел Маслов 3 mo

Не решил((

Блог Миши Тугушева 3 mo

Можете дать подробностей:
1) что за профиль?
2) какой конфиг используете (их два варианта тексте)?
3) какой сервис используете для конфиденциальности в сети?

Павел Маслов 3 mo

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

Настройки брал эти, нахожусь в рф)
От вайфая когда например из дома захожу в Яндекс такси – все ок)
От сети 4g не грузит, отрубаю впн – все ок опять
Профиль впн брал из сервиса https://atelecom.pro/vpn

Павел Маслов 3 mo

Попробовал щас другой профиль впн – такая же история((

Денис Горбов 2 mo

Приветствую, а можно как-то по простому просто добавить в автопроксирование по доменной зоне *.ru?
Исключить доменную зону понятно как сделать, а вот как сделать на оборот, чтобы только определённая доменная зона проксировалась ?

Блог Миши Тугушева 2 mo

Привет! Я бы сделал так:


# Опционально. Если домен в базе Geolite2 из <НУЖНАЯ СТРАНА>, то трафик проксируется
GEOIP,<НУЖНОЕ ГЕО>,PROXY

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

При использовании конфига почему то ловлю постоянные фризы при просмотре видео в инстаграме, причем если использовать клиент outline, никаких проблем не наблюдается. В чем может быть проблема?

Блог Миши Тугушева 1 mo

Сложно сказать. Вариантов масса: какой внп сервис, личный ли сервер или готовый, хостер, настройки конфига.

Саша Дробязко 1 mo

Сервер свой, поднят там outline shadowsocks. С родным клиентом все шикарно.

Блог Миши Тугушева 1 mo

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

Саша Дробязко 1 mo

Конфиг ваш. Geoip подключил. Все работает, кроме тормозов инсты.

Блог Миши Тугушева 1 mo

Попробуйте ДНС сменить в настройках DNS OVERRIDE на собственные. Желательно поднять свой AdguardHome и не использовать.

Хотя я вот попробовал связку с 1.1.1.1 и 8.8.8.8 + Shadowsocks + мобильный трафик Yota — все работает чуть-чуть медленнее по ощущениям. Или методом тыка еще попробовать другой сервис вместо Аутлайна.

Гриша Пушков 1 mo

На маке хорошо сработала связка Proxy SwitchyOmega плагина и SSH-туннеля. Туннель запускаю на стартапе этой командой:

```
/usr/local/bin/autossh -f -M 20000 -Nn -D 1080 ubuntu@x.x.x.x
```

Блог Миши Тугушева 1 mo

Спасибо за дополнение!

Гриша Пушков 28 d

А для андройда нашел классное приложение Surfboard (getsurfboard.com).

П.С. У Эгеи комменты просто ужасные. Нет уведомления об ответе, нет возможности редактировать и не понятно как форматировать текст. Потому идея для автора — сделать тг канал, куда можно было бы зайти и оставить коммент. В тг постить просто ссылку на статью, а под ней обсуждение в комментариях. И уже в самой статье указать ссылку на пост в тг канале (типа “Обсудить статью в Телеграме →”).