Бесшовная работа Shadowrocket на iOS
Ниже, как сделать так, чтобы все российские ресурсы в РФ открывались без VPN, а «плохие», как Instagram или Twitter, через VPN. Из-за текущей ситуации рекомендуется для мобильного трафика использовать любой другой VPN кроме Wireguard.
Цель этого поста была в том, чтобы сделать shadowrocket config file с бесшовной работой, но получилось чуть больше. С одной стороны моя конфигурации позволяет одновременно заходить в госуслуги и читать соцсеть X. Трафик для заблоченных ресурсов идет через VPN, а для всех остальных напрямую. Если в рамках квартиры можно запустить Квас с тем же алгоритмом работы, то с мобильным телефоном на iOS оказалось чуть проще.
Инструкция
Процедура стандартная: находим приложение Shadowrocket, покупаем за 279₽, скачиваем и настраиваем:
- На вкладке Home добавляем сервер Wireguard или любой другой через QR-код. Если у вас его еще нет, то в этом посте рассказал, как его поставить с веб-интерфейсом;
- Заходим в Global Routing (Config) и оставляем Config, если не выбран, то укажите;
- Открываем вкладку Config, жмем на + и добавляем ссылку на готовый конфиг в поле Download from URL. Можете использовать мой для теста:
https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/main/template-ios-ru.conf
Разница с default.conf и моим в логике работы. В моем конфиге выборочный обход: запрещенка через VPN, а все остальное через мобильного оператора. Этот конфиг не будет конфликтовать, если вы подключитесь к Wi-Fi;
- После скачивания нажимаем на ссылку в блоке 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 гораздо лучше.
Список доменов, который подключается к домену для обхода блокировок.
А как можно добавить ещё своих сайтов?
Владимир, варианта, как минимум два:
Бонус. Третий — не использовать мой конфиг и просто указать свой список сайтов, как в п.1.
спасибо за тутор. подскажите пожалуйста, можно ли добавить в исключения торрент клиент transmission? использую shadowrocket на маке, он стабильнее остальных утилит
Велком) Transmission запущен на роутере?
нет, просто клиент на маке
Дополнительных разрешений не нужно
Встречали ли вы перечень рекламных доменов? На гитхабе полно списков от китайской аудитории, но для РФ ничего внятного найти не смог.
Попробуйте поиск через оператор в Гугле list ads-block russian site:github.com after:2023-01-01, но обратите внимание, что под Shadowrocket придется все равно собирать руками.
В общем попробовал я фильтр доменов, но он убирает максимум 20 процентов рекламы. Если кому интересно, ниже ссылка. Соответственно нужно немного переделать в нужный формат (удобно через Excel).
https://raw.githubusercontent.com/deathbybandaid/piholeparser/master/Subscribable-Lists/CountryCodesLists/Russia.txt
На форуме посвященного роутерам Кинетик пишут, что этот список отлично работает https://easylist-downloads.adblockplus.org/ruadlist.txt. Понадобится его адаптация
Почему-то Яндекс перестал с этим профилем работать, не грузит ничего, отключаю впн – все ок((
Решил путем добавления в настройках правила днс Яндекса – заработало
Не решил((
Можете дать подробностей:
1) что за профиль?
2) какой конфиг используете (их два варианта тексте)?
3) какой сервис используете для конфиденциальности в сети?
https://raw.githubusercontent.com/misha-tgshv/shadowrocket-configuration-file/main/template-ios-ru.conf
Настройки брал эти, нахожусь в рф)
От вайфая когда например из дома захожу в Яндекс такси – все ок)
От сети 4g не грузит, отрубаю впн – все ок опять
Профиль впн брал из сервиса https://atelecom.pro/vpn
Попробовал щас другой профиль впн – такая же история((
Приветствую, а можно как-то по простому просто добавить в автопроксирование по доменной зоне *.ru?
Исключить доменную зону понятно как сделать, а вот как сделать на оборот, чтобы только определённая доменная зона проксировалась ?
Привет! Я бы сделал так:
При использовании конфига почему то ловлю постоянные фризы при просмотре видео в инстаграме, причем если использовать клиент outline, никаких проблем не наблюдается. В чем может быть проблема?
Сложно сказать. Вариантов масса: какой внп сервис, личный ли сервер или готовый, хостер, настройки конфига.
Сервер свой, поднят там outline shadowsocks. С родным клиентом все шикарно.
Из вашего комментария не понятно, как у вас идет трафик. Если весь трафик идет через Аутлайн, то логично, что задержка будет минимальная для инсты, а для отечественных сервисов будут проблемы. Смотрите то, что описал выше. Если конфиг настроен корректно, то все будет работать без задержек.
Конфиг ваш. Geoip подключил. Все работает, кроме тормозов инсты.
Попробуйте ДНС сменить в настройках DNS OVERRIDE на собственные. Желательно поднять свой AdguardHome и не использовать.
Хотя я вот попробовал связку с 1.1.1.1 и 8.8.8.8 + Shadowsocks + мобильный трафик Yota — все работает чуть-чуть медленнее по ощущениям. Или методом тыка еще попробовать другой сервис вместо Аутлайна.
На маке хорошо сработала связка Proxy SwitchyOmega плагина и SSH-туннеля. Туннель запускаю на стартапе этой командой:
```
/usr/local/bin/autossh -f -M 20000 -Nn -D 1080 ubuntu@x.x.x.x
```
Спасибо за дополнение!
А для андройда нашел классное приложение Surfboard (getsurfboard.com).
П.С. У Эгеи комменты просто ужасные. Нет уведомления об ответе, нет возможности редактировать и не понятно как форматировать текст. Потому идея для автора — сделать тг канал, куда можно было бы зайти и оставить коммент. В тг постить просто ссылку на статью, а под ней обсуждение в комментариях. И уже в самой статье указать ссылку на пост в тг канале (типа “Обсудить статью в Телеграме →”).