Shadowsocks на Android: настройка клиента
Если сервер с Shadowsocks уже поднят, а вы застряли на моменте «а как это теперь завести на телефоне» — это самая частая точка провала во всей цепочке. Сервер работает, конфиг сгенерирован, а приложение либо не подключается, либо подключается, но трафик всё равно идёт напрямую. Разберём установку официального клиента, импорт конфига через QR-код и ручной ввод, а заодно — зачем клиенту локальный SOCKS5 и как не наступить на грабли с раздельным туннелированием.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что понадобится до установки
Прежде чем ставить приложение, у вас должны быть на руках параметры сервера — либо в виде ссылки ss://, либо построчно:
- адрес сервера (IP или домен);
- порт;
- пароль;
- метод шифрования (сейчас практический смысл имеют только AEAD-шифры:
aes-256-gcm,aes-128-gcm,chacha20-ietf-poly1305); - опционально — плагин обфускации (
v2ray-plugin,obfs-local), если сервер настроен с маскировкой трафика.
Если сервер вы поднимали сами, эти данные должны были остаться в конфиге /etc/shadowsocks-libev/config.json или в выводе скрипта установки. Сам процесс развёртывания сервера подробно разобран в статье про установку Shadowsocks на VPS — если сервера ещё нет, начните оттуда.
Отдельный момент — метод шифрования должен совпадать на сервере и клиенте буквально посимвольно. Разница между aes-256-gcm и aes-256-cfb для приложения не «почти одно и то же», а повод молча не подключиться.
Установка приложения Shadowsocks для Android
Официальный клиент — открытый проект shadowsocks-android (репозиторий на GitHub, разработчик Max Lv). У него два практических пути установки:
- Google Play — ищите приложение «Shadowsocks». Доступность в конкретном регионе может отличаться и меняться со временем, поэтому не полагайтесь на неё как на единственный вариант.
- APK с GitHub Releases — надёжнее в плане предсказуемости: заходите в раздел Releases репозитория проекта, скачиваете последний
.apk. Для установки из внешнего источника Android попросит разрешить установку приложений из этого источника (браузера или файлового менеджера) — это разовая настройка в системных параметрах.
После установки при первом запуске приложение запросит два разрешения:
- создание VPN-профиля — системный диалог Android «Приложению разрешено создавать VPN-подключение»; без него не заработает основной режим маршрутизации трафика;
- уведомления — на Android 13+ приложение попросит разрешение на показ уведомления о статусе подключения (обычно оно и висит в шторке, пока туннель активен).
Оба разрешения нужно подтвердить — без первого приложение физически не сможет перехватывать трафик системы.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверИмпорт конфигурации через QR-код
Самый быстрый и наименее подверженный опечаткам способ — сканирование QR-кода. Если конфиг сервера у вас представлен строкой вида:
ss://YWVzLTI1Ni1nY206cGFzc3dvcmQ@203.0.113.10:8388#my-server
его можно сконвертировать в QR-код любым генератором (или сервер/панель управления уже показывает готовый QR при выдаче конфига).
Порядок действий в приложении:
- Откройте Shadowsocks на Android.
- Нажмите на иконку сканирования QR-кода (обычно в правом верхнем углу главного экрана или в меню добавления профиля — значок камеры рядом с «+»).
- Наведите камеру на QR-код — конфиг с сервером, портом, паролем и методом шифрования подставится автоматически, профиль появится в списке.
Если QR-код содержит несколько профилей (панель-агрегатор иногда выдаёт «пачку» серверов одним изображением), приложение либо предложит выбрать нужный, либо импортирует все разом — тогда лишние профили можно удалить свайпом или через долгое нажатие.
Этот способ полезен ещё и потому, что убирает человеческий фактор: пароль Shadowsocks — это, по сути, случайная строка, и вбить её вручную без опечатки с телефонной клавиатуры получается не с первого раза.
Ручное добавление сервера
Если QR недоступен — например, конфиг пришёл текстом в мессенджере, — профиль добавляется вручную:
- На главном экране нажмите «+» → «Добавить профиль вручную» (Manual Settings).
- Заполните поля:
| Поле | Значение |
|---|---|
| Имя профиля | любое, для себя (например, RU-server) |
| Адрес сервера | IP или домен |
| Порт сервера | обычно 8388 или тот, что задан в конфиге |
| Пароль | из конфига сервера |
| Метод шифрования | выбрать из списка, должен совпадать с сервером |
| Плагин (опционально) | v2ray-plugin / obfs-local, если используется |
- Сохраните профиль и выберите его как активный (тап по строке в списке профилей).
Отдельно про плагины: если на сервере включена обфускация через v2ray-plugin, в приложении нужно не только выбрать плагин, но и вписать те же аргументы (opts), что заданы на сервере — режим (server/client меняется автоматически на стороне клиента), путь, host для TLS-маскировки и так далее. Несовпадение аргументов плагина — вторая по частоте причина «профиль есть, а подключения нет» после ошибки в пароле.
Если стоит выбор между Shadowsocks и другим протоколом для нового сервера, разница в устойчивости к блокировкам и в накладных расходах разобрана в статье Shadowsocks или VLESS — что выбрать.
Локальный SOCKS5: что это и как его использовать
Важный момент, который часто ускользает: приложение Shadowsocks на Android — это не просто «VPN-кнопка». Внутри оно поднимает локальный SOCKS5-прокси на 127.0.0.1 (порт настраивается в разделе Настройки → Порт локального прокси, по умолчанию что-то вроде 1080), а уже поверх этого прокси работает системный VPN-интерфейс, который на лету заворачивает трафик через tun2socks.
Зачем это знать рядовому пользователю:
- Режим VPN (по умолчанию) — приложение создаёт виртуальный сетевой интерфейс и прозрачно маршрутизирует через него весь (или выбранный) трафик системы. Не требует настройки прокси в других приложениях.
- Режим только локального прокси — если по какой-то причине системный VPN-профиль недоступен (например, устройство под MDM-политикой, которая запрещает сторонние VPN-профили), можно оставить включённым только локальный SOCKS5 и вручную указать
127.0.0.1:<порт>как прокси в конкретном приложении, которое это умеет (некоторые браузеры, Telegram, торрент-клиенты).
В настройках Telegram для Android, например, есть отдельный пункт «Прокси» с типом SOCKS5 — туда можно вписать именно локальный адрес и порт, который поднимает Shadowsocks, и тогда через туннель пойдёт трафик только этого приложения, без общесистемного VPN.
Это же объясняет типичную путаницу с DNS: в чистом SOCKS5-режиме DNS-запросы конкретного приложения зависят от того, поддерживает ли оно резолвинг доменов через прокси (SOCKS5 это умеет, но не все клиенты это используют по умолчанию) — в режиме VPN за DNS отвечает уже сам Shadowsocks-клиент, и это надёжнее.
Раздельное туннелирование и типичные проблемы
В настройках приложения есть раздел «Проксируемые приложения» (Proxied Apps) — список, где можно выбрать один из двух режимов:
- проксировать только выбранные приложения (остальные ходят в интернет напрямую);
- проксировать все, кроме выбранных (удобно, если нужно исключить, например, банковский клиент или приложение с геопривязкой, которое иначе будет ругаться на смену региона).
Этот список активен только пока включён режим VPN — на чистом локальном SOCKS5 он не работает, там маршрутизация зависит от настроек каждого приложения по отдельности.
Частые проблемы и что с ними делать:
- Подключение обрывается через 1–2 минуты после сворачивания приложения. Почти всегда — агрессивная оптимизация батареи производителя (MIUI, ColorOS, EMUI и подобные). В системных настройках нужно добавить Shadowsocks в исключения энергосбережения / автозапуска вручную, стандартного диалога Android для этого обычно недостаточно.
- Подключается, но интернета нет ни в одном приложении. Проверьте метод шифрования и версию сервера — если сервер обновлялся и на нём отключили устаревший протокол (например, старые не-AEAD шифры), старый профиль в приложении перестанет работать молча, без внятной ошибки.
- Медленно работает или рвётся именно UDP-трафик (голосовые звонки, некоторые игры). Убедитесь, что в приложении включена опция UDP over TCP только если сервер её реально требует — в норме современный Shadowsocks поддерживает UDP relay нативно, и лишнее включение TCP-туннелирования UDP только добавляет задержку.
- Второй VPN на устройстве конфликтует с Shadowsocks. Android разрешает активным только один VPN-профиль системного уровня одновременно — если параллельно уже запущен корпоративный VPN или другой туннель, они будут выключать друг друга при подключении. Этот сценарий и обходные варианты подробно разобраны в статье про конфликт двух VPN-туннелей на телефоне.
Если параллельно настраиваете доступ и с компьютера, логика клиента там почти идентична — отличия по интерфейсу разобраны в статье про Shadowsocks-клиент на Windows.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Приложение просит разрешение на VPN-профиль — это безопасно?
Это стандартный системный механизм Android для любого VPN-клиента (WireGuard, OpenVPN и так далее ведут себя так же). Разрешение даёт приложению право перехватывать сетевой трафик устройства — именно поэтому его стоит выдавать только клиентам из проверенного источника (официальный репозиторий или Google Play), а не первому найденному APK.
Можно ли использовать несколько профилей серверов одновременно?
Активным в режиме VPN может быть только один профиль за раз — переключение между серверами происходит выбором нужной строки в списке, предыдущее соединение при этом закрывается.
Почему после смены пароля на сервере приложение перестало подключаться?
Профиль в приложении хранит копию пароля на момент импорта и не обновляется автоматически. После смены пароля на сервере нужно либо отредактировать существующий профиль вручную, либо удалить его и импортировать заново — через новый QR-код или вручную.
Расходует ли приложение заметно больше батареи, чем обычный интернет?
Дополнительный расход есть — шифрование и постоянно активный VPN-интерфейс это накладные расходы, но на современных устройствах он обычно не критичен. Ощутимая просадка чаще указывает на проблему с реконнектами (нестабильный сервер или сеть), а не на сам факт работы Shadowsocks.
Нужен ли root для работы приложения?
Нет, официальный клиент работает через стандартный Android VPN API и root не требует. Root иногда используют для более тонкой настройки маршрутизации через iptables, но для базового сценария это не нужно.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →