Обновить

Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 105K

Статья опубликована под лицензией Creative Commons BY-NC-SA.

В предыдущей статье “Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria и все-все-все” я рассказывал про прокси-протоколы. Теперь настало время рассказать про клиенты: консольные, GUI для десктопа, для мобильных платформ и пару слов про OpenWRT. 

Надеюсь, что эта статья вам окажется полезной, потому что, как выяснилось, найти хороший клиент даже для тех же V2Ray/XRay в наше время не так-то просто. Потому что большая часть того, что находится при поиске в интернете “в лоб” и даже в списках типа Awesome V2Ray - или уже неподдерживаемое, или довольно кривое, или не умеющее в актуальные версии и фичи (например, XTLS и uTLS), а самые жемчужины прячутся где-нибудь в глубинах Github’а и аппсторов.

Нейрокартинка для отвлечения внимания
Нейрокартинка для отвлечения внимания

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

uTLS, XTLS, Vision, Reality - см. предыдущую статью.

Routing или Policies  - обычно определяют правила, по которым трафик пользователя будет отправляться на прокси или уходить в интернет напрямую. Например, клиент может автоматически отправлять все запросы к доменам “.ru” и российским IP-адресам согласно базе GeoIP в интернет напрямую, а все остальное выпускать наружу через прокси-сервер. Или наоборот, по умолчанию отправять все напрямую, а проксировать только адреса и домены из списка (в том числе с масками и регулярными выражениями). База GeoIP (принадлежности IP-адресов той или иной стране) нередко поставляется вместе с самим клиентом и ее желательно периодически обновлять.

Share link, share QR - многие мультипротокольные клиенты позволяют делиться настройками с помощью “ссылок” или QR-кодов. “Ссылка” обычно представляет собой URL начинающийся с ss:// (для Shadowsocks), vmess:// (для VMess), vless:// (для VLESS) и т.д., где дальше следует закодированная в base64 JSON-структура с данными для подключения. Соответственно, можно сгенерировать такую ссылку из настроек какого-нибудь клиента, переслать ее на другое устройство или другому человеку, вставить ее в другой клиент и получить там настройки для подключения к этому серверу. QR - примерно то же самое, но не в виде ссылки с base64, а в виде QR кода, который можно сканировать камерой с экрана. Это в теории. Проблема в том, что во-первых существует несколько разных форматов ссылок (формат SIP002, формат Clash, формат Sing-box), и даже при кодировании одним и тем же форматом среди данных могут оказаться поля, которые знает один клиент и не знает другой. Поэтому иногда может случиться так, что скопипастив ссылку или отсканировав QR в клиенте вы получите данные конфигурации нового сервера, но некоторые поля будут пустые. Например, часто теряется поле uTLS fingerprint, поэтому будьте внимательны.

Subscriptions - многие клиенты умеют автоматически подгружать список серверов откуда-нибудь. Например, вы настроили сервер для своих друзей и родственников. Через какое-то время вы можете поднять на нем новый более защищенный протокол, или перехостить сервер его на другом домене, или еще что. Чтобы не рассылать ссылки/QR-коды вручную вместе с инструкциями о том, как их правильно импортировать, можно просто всем желающим в клиенте вбить URL по которому лежит файл с описанием подключений, и клиент сможет автоматически либо по запросу подтягивать обновления и новые настройки. Правда, тут проблема та же, что и в прошлом пункте - существует несколько разных форматов подписок, например SIP008, формат Clash, формат V2RayN (по сути дела список URL’ов из предыдущего пункта, по одному на строку, и весь файл  еще раз закодирован в base64), OpenOnlineConfig, и т.д. Существуют всякие онлайн-конвертеры для преобразования из одного в другой, но работают они так себе, а иногда вообще не работают.

TUN / VPN. Клиенты обычно могут работать в двух режимах: первый режим - “системный прокси”, клиент просто слушает на каком-нибудь локальном порту (например 10080 или 2080), а в системе или в браузере настраивается адрес прокси-сервера 127.0.0.1:10080 и все довольны. Это самая простая и надежная схема, однако есть два недостатка. Первый состоит в том, что некоторые приложения резолвят доменные имена (DNS) сами, еще до отправки запроса на прокси, что может привезти к тому, что называется “DNS-утечка” (ваш провайдер узнает, на какие сайты вы ходили, и может даже прислать фейковый ответ ради блокировки неугодного ресурса). Второй недостаток похож на первый, но еще более критичный: некоторые приложения тупо игнорируют настройки системного прокси, либо не умеют работать через прокси вообще.
Поэтому разработчики придумали второй режим, обычно называемый TUN. В системе создается виртуальный сетевой интерфейс с каким-нибудь фейковым IP-адресом и маршрут по умолчанию для всей системы настраивается именно через него. Таким образом все TCP и UDP подключения от всех приложений в системе попадают на этот сетевой интерфейс, а далее специальный драйвер перенаправляет их на локальный SOCKS-прокси.Такой режим еще иногда называют “VPN”, хотя по факту он не имеет к VPN никакого отношения :)

IPv6. Многие клиенты поддерживают IPv6. Многие серверы тоже (единственный нюанс - если вы запускаете его из Docker, то там не все так просто и для работы IPv6 может понадобиться настроить контейнер на использование host network). Но если вы используете упомянутый в предыдущем абзаце TUN-режим, то нужно быть внимательными. Если клиент не поддерживает IPv6 или IPv6 отключен в его настройках (а нередко он по умолчанию отключен), а ваш провайдер предоставляет вам IPv6-связность, то есть неиллюзорный шанс, что IPv6 трафик пойдет в интернет в обход прокси. Вариантов решения несколько: или отключить IPv6 на сетевых интерфейсах (Ethernet/WiFi) вообще, или включить IPv6 в клиенте. Тогда если сервер может в IPv6, то все будет вообще прекрасно, а если сервер в IPv6 не может, то запросы будут уходить “в никуда” и все приличные браузеры в этом случае автоматически fallback’нутся на IPv4, никаких проблем.

С терминами и нюансами разобрались, переходим к самим клиентам.

Консольные (cores)

Начнем с консольных клиентов, или, как их часто называют, cores (ядра). Называют их так потому что обычно эти самые cores используются в красивых графических и мобильных клиентах, запускаясь там в фоновом режиме и делая всю работу, либо клиенты линкуются с ними как с библиотеками. Соответственно, именно эти cores ответственны за непосредственную реализацию протоколов и другие фичи. И, само собой, никто не запрещает просто запускать их как консольные приложения в системе и пользоваться ими, например, используя какое-нибудь расширение для браузера (например SwitchyOmega) которое позволяет включать/выключать локальные настройки прокси или делает это автоматически в зависимости от открываемого сайта.

V2Ray/XRay

https://github.com/v2ray/v2ray-core
https://github.com/XTLS/Xray-core

Родные братья: V2Ray - самая классика, а XRay - пожалуй, самый прогрессивный на сегодняшний день в плане новых методов маскировки. Их историю и различия я рассказывал в предыдущей статье, здесь же будет пара слов о том, что нужно знать о них при использовании в качестве клиентов.

V2Ray умеет Shadowsocks, VMess, Trojan, все это с транспортами TLS с uTLS, Websockets, gRPC и mKCP.

XRay умеет все вышеперечисленное, и что самое главное - он поддерживает еще VLESS и XTLS (включая Vision и Reality) - собственно, именно авторы XRay и придумали эти новые фичи и протоколы.

Примеры конфигураций клиента для разных протоколов и транспортов можно найти здесь:  https://github.com/XTLS/Xray-examples 

Clash, ClashMeta

https://github.com/Dreamacro/clash
https://github.com/MetaCubeX/Clash.Meta

Другой клиент (совершенно не зависим от V2Ray/XRay).
Формат конфигурации - YAML (в отличие от V2Ray и XRay, которые используют JSON), поэтому если есть какие-то примеры конфигов от тех двух, то их придется переписывать.
Есть богатые возможности настройки правил и маршрутизации.
Оригинальный Clash поддерживает Shadowsocks, VMess, Trojan поверх TLS (с uTLS).
Существует также версия Clash.Premium от того же автора, ее исходники закрыты, но бинарник можно скачать бесплатно. В ней также реализована поддержка TUN-интерфейса прямо в клиенте (не нужно ничего дополнительно устанавливать и настраивать), возможность написания скриптов для правил и маршрутов и загрузки новых правил маршрутов из Сети.

И вы наверное заметили, что в списке протоколов Clash и Clash.Premium нет VLESS. Автора уже с десяток раз просили добавить его поддержку в клиент, но сначала он отвечал  “VLESS еще сырой”, а когда протокол  стали поддерживать и использовать вообще все вокруг, то ответы свелись к чему-то типа “Он мне не нравится и все, идите нахрен, мой клиент - что хочу, то и запиливаю”.

Поэтому не удивительно, что в итоге появился форк Clash под названием Clash.Meta. В нем не хватает некоторых возможностей Clash.Premium, но зато есть много других отстутствующих в оригинальном клиенте, в том числе поддержка VLESS и XTLS (Vision и Reality), и в целом его разработка идет очень активно.

Sing-Box

Github: https://github.com/SagerNet/sing-box/ 
Сайт: https://sing-box.sagernet.org/
Примеры конфигураций: https://github.com/SagerNet/sing-box/tree/dev-next/docs/configuration

Самая свежая и навороченная разработка от автора клиента SagerNet, который долгое время был наиболее прогрессивным Andorid-клиентом с самым большим количеством поддерживаемых протоколов и транспортов. Как и V2Ray/XRay может работать и как клиент, и как сервер, поддерживает Shadowsocks, VMess, VLess, Hysteria, Trojan, и даже Tor, Wireguard и SSH. Само собой, способен работать с XTLS Vision и Reality и TLS (с uTLS), WS, еще умеет создавать TUN-интерфейс,  и вообще всё остальное что полагается приличному клиенту - и кроме этого умеет еще очень много чего, на странице проекта есть вот такая табличка сравнения, и да - всё что написано в левой колонке Sing-Box умеет. И делает это хорошо.

Десктопные GUI-клиенты

v2rayN

https://github.com/2dust/v2rayN
Наверное, самый олдовый и известный графический клиент под Windows. Написан на .NET 6 и WPF. На Гитхабе на странице релизов можно скачать архивы только с самим GUI, либо же GUI+ядра (“-With-Core”).

В качестве ядра по умолчанию используется последняя версия XRay, то есть поддерживаются Shadowsocks (включая 2022), VMess, VLESS, Trojan, и все фичи XTLS и uTLS. v2rayN может еще работать с  V2Ray, Clash, ClashMeta, hysteria, naiveproxy в качестве ядра клиента - правда, для ядер отличных от V2Ray/XRay редактировать конфиги в GUI-окошках не получится, можно только подсунуть готовый текстовый конфиг.

Изначально клиент запускается на китайском языке, и нужно изловчиться переключить его на английский или русский:

Активация или деактивация прокси осуществляется выбором режима в нижней части окна или при щелчке правой кнопкой мыши на иконке в трее: Set system proxy - активирует доступ через прокси, Clear system proxy - деактивирует:

В TUN клиент, судя по всему, не умеет (если только вы не подсунете ему специально сгенерированный конфиг для Clash/ClashMeta/Sing-box). Upd: Комментарий от читателя: "Умеет TUN — для этого надо запускать его от имени Администратора и внизу окна программы появится переключатель Enable TUN"

Существует также вариант под названием ClashN - по сути дела, тот же v2rayN, но заточенный на работу с ядром Clash/ClashMeta.

Invisible Man XRay

https://github.com/InvisibleManVPN/InvisibleMan-XRayClient

Клиент под Windows на базе XRay ориентированный на простоту: минимум настроек, но можно подсунуть любой конфиг XRay, просто положив его в папочку с конфигами, и он появится в списке - после этого достаточно нажать кнопочку "Сделать зашибись" "Подключиться" и все работает. Активно развивается.

v2rayU

https://github.com/yanue/V2rayU/tree/master
Старый клиент под Mac.

Основное взаимодействие с ним осуществляется через менюшку иконки в трее:

Поддерживает Shadowsocks (но не 2022!), VMess, VLESS, XTLS (но только старых версий, vision и reality в пролете), судя по всему не умеет менять TLS identity, TUN-режима тоже нет.

По какой-то причине автор удалил все исходники из дефолтной ветки на своем Github, поэтому будущее развитие проекта под вопросом.

Существует также форк проекта под названием v2rayXS, но он, кажется, тоже не очень живой.

Qv2ray

https://github.com/Shadowsocks-NET/Qv2ray
Классический клиент на базе V2Ray и Qt. Имеет гордый слоган “For developers. By developers”. Кроссплатформенный: Windows, MacOS, Linux.

В одной Github-репе (https://github.com/Qv2ray/Qv2ray) лежит версия 2.7.0, в другой Github-репележит версия 2.7.0 и release candidate версии 3.0.0, и автор жалуется, что какие-то злые люди украли у него доступ от старой репы.

Клиент выглядит неплохо, если бы не одно НО - во-первых он поддерживает только то, что поддерживает классический V2Ray, а про XRay автор пишет “...No Such Word In My Dictionary”. А во-вторых, у меня он так и не заработал.

Для версии 2.7.0 нужно подсунуть по определенному пути бинарник v2ray, для версии 3.0.0 уже не надо (там есть встроенный V2Ray-плагин), но результат одинаковый - при настройке подключения (что ShadowSocks, что VLess) и попытке запустить прокси, клиент выплевывает ошибку, мол, извини, не получилось - причем вообще без каких-либо подробностей. Каких-дибо информации об ошибке не выводится, логов в окне не отображается, логов в файлах в папке с программой нет, включить логгирование в настройках каким-то образом нельзя. Тупик. Короче, не рекомендую.

Clash for Windows и Clash Verge

https://github.com/Fndroid/clash_for_windows_pkg 
https://github.com/zzzgydi/clash-verge 

Clash for Windows - как следует из названия, работает на базе Clash, но как не следует из названия, работает не только под Windows, но и под macOS и Linux.

Конфиги принимает только в формате Clash, настроить сервер ручками через интерфейс нельзя, только вручную писать YAML-код.

Clash for Windows написан на Electron, поэтому один только его дистрибутив в распакованном виде на диске занимает 277 мегабайт, и памяти жрет соответствующе.

Исходники закрыты, на Github лежат только бинари.

Но! Но… Есть также клон проекта под названием Clash Verge.

И он гораздо лучше. Написан на tauri (аналог Eleсtron, но с Rust и WebView2), благодаря чему он в пять раз менее жирный. Интерфейс сделан гораздо более аккуратно. В качестве ядра можно использовать не только Clash, но и Clash.Meta (что добавляет поддержку VLess и XTLS, включая Reality). 

Если вам по каким-то причинам нравится или нужен Clash-based-клиент - то Clash-Verge не самый плохой вариант.

Nekoray / Nekobox

https://github.com/MatsuriDayo/nekoray
https://github.com/MatsuriDayo/nekoray/releases

https://github.com/aaaamirabbas/nekoray-macos/releases ( билды для MacOS)
И самое вкусное на конец.

NekoRay, он же NekoBox. В качестве ядра может использовать сразу и v2ray и sing-box - нужную опцию можно выбрать в настройках, после этого клиент перезапускается, меняет свое имя в заголовке окна и немного изменяется интерфейс настроек в зависимости от выбранного ядра.

Написан на Qt, поэтому компактен, быстр и приятно выглядит, кроссплатформенный (Windows, MacOS, Linux).

Интерфейс действительно удобный: сервера можно группировать по вкладкам, сверху окна есть две простые галочки для активации режима системого прокси или TUN (тут оно называется VPN)

Выбранный сервер можно пошарить стандартной ссылкой или QR-кодом, а можно в формате Sing-box, что может быть удобно при обмене с клиентом Nekobox под Android (да, он там тоже есть!) и Sing-box для iOS.

Поддерживает все то что поддерживают  V2Ray и Sing-box (Shadowsocks-2022, VMess, VLESS, Trojan, XTLS, uTLS, Hysteria и даже Wireguard и SSH). Даже если каких-то опций нет в интерфейсе, можно докидывать конфигурационные параметры ручками, например, чтобы активировать XTLS Vision, можно в настройках сервера нажать на “Custom JSON Settings” и добавить там соответствующую строчку "flow": "xtls-rprx-vision" (Upd: в новой версии поддержку опции запилили в интерфейсе, хак больше не нужен)

Благодаря этому можно использовать даже протоколы и фичи, которые не перечислены в UI Nekobox, но поддерживаются ядром Sing-box, например, можно настроить подключение по SSH и оно будет отображаться и работать точно так же как и другие сервера. Ещё можно подключать дополнительные cores, например, Naiveproxy.

На сегодняшний день, как по мне, самый функциональный, удобный и продуманный клиент для Windows/MacOS/Linux с графическим интерфейсом.

Лайфхак: в меню выбрать "Activate last server automatically", тогда нужный сервер будет автоматически выбираться при старте.

Hiddify-Next

Новый клиент от авторов панели Hiddify на базе Sing-box.
https://github.com/hiddify/hiddify-next
Обратите внимание, Hiddify и Hiddify-Next - разные клиенты, первый уже легаси, второй очень даже перспективный.
Написан на Flutter, существует под все платформы. Поддерживает все протоколы, которые поддерживает Sing-box.
Простой интерфейс. Если пред-настроенные пресеты маршрутизации - при первом запуске выбираете страну, и потом одним щелчком можно сделать, чтобы трафик до ресурсов внутри страны шел напрямую.
Умеет в TUN-режим.
Если добавлять сервера не по одному, а по подписке, может при нажатии на кнопочку подключения пингануть каждый из них, и выбрать самый быстрый из работающих.

Одно НО - вручную вбивать настройки сервера нельзя, только импорт по ссылке или по подписке (можно вбить в Nekobox, сгенерить ссылку, и потом скопипастить в Hiddify-Next).

Что использовать на десктопе?

Буду краток - если вам нужен хороший и удобный кросс-платформенный клиент с поддержкой всего что нужно - используйте Nekobox (с ядром sing-box).
Если вы Windows-only-guy, интерфейс v2rayN вас не бесит, и не требуется каких-либо специальных фич типа TUN - можно использовать так же и v2rayN, почему бы и нет.
Если вы пользователь MacOS, и вам хочется более аутентичного интерфейса, чем в Nekobox, присмотритесь к Wings X / FoXray (он не будет ниже в разделе про мобильные клиенты).

Если хочется максимально простой интерфейс - Hiddify-Next.

Если вам нравится Clash или нужны какие-то его специфичные фичи, то можно попробовать Clash-Verge с ядром Clash.Meta.

Android

V2RayNG

https://play.google.com/store/apps/details?id=com.v2ray.ang&hl=en_US
https://github.com/2dust/v2rayNG

Один из самых популярных Android-клиентов. XRay в качестве ядра. Соответственно, может быть клиентом Shadowsocks, VMess, VLESS, Trojan и все остальное что умеет XRay, в том числе uTLS и  XTLS. Версии в Google Play немного отстают, на Github лежат самые свежие APK - например, версия из Google Play пока еще не поддерживает XTLS-Reality, а APK-шка с гитхаба - уже да.

Единственная проблема: у меня v2rayNG почему-то не смог соединиться с сервером через VLESS + XTLS-Vision (и версия из стора, и самая новая с гитхаба). Без Vision все окей, с Vision - не работает. Причем наврядли проблема в настройках или в сервере, потому что другие клиенты с использоваием той же самой ссылки и того же QR-кода подключились к тому же серверу вполне нормально. Upd: Я еще немного покопал, и кажется понял. При установке uTLS как "android" подключение фейлится, при установке uTLS как "chrome" - все работает. Не совсем понятно, это баг на стороне v2RayNG или на стороне XRay, но баг интересный.

Clash Meta

https://github.com/MetaCubeX/ClashMetaForAndroid 
https://f-droid.org/packages/com.github.metacubex.clash.meta/ 

Android-клиент на базе Clash.Meta. В Google Play нет, есть APK на Github и в F-Droid.
Конфигурировать сервера в интерыфейсе нельзя, добавить через QR-код или ссылку тоже нельзя, можно только загрузить YAML-файл из файловой системы или с какого-нибудь сервера, естественно только в формате Clash.

Поэтому я работоспособность не тестировал, терпения не хватило возиться.

Sagernet / Matsuri

https://sagernet.org/ 
https://github.com/SagerNet/SagerNet 
https://play.google.com/store/apps/details?id=moe.matsuri.lite
https://github.com/MatsuriDayo/Matsuri 

SagerNet -  клиент под Andorid написанный на Kotlin. Долгое время считался клиентом с самым большим количеством поддерживаемых протоколов и фич. На гитхабе проекта висит объявление о том, что проекту нужен новый ментейнер, последняя версия вышла почти пол года назад, и, например, до сих пор не поддерживает XTLS-Vision.

Matsuri - форк SagerNet (в чем именно различия не разбирался), но на странице проекта написано что проект “no longer active” и предлагается перейти на Nekobox, о котором будет в следущем параграфе.

Nekobox Android

https://play.google.com/store/apps/details?id=moe.nb4a
https://github.com/MatsuriDayo/NekoBoxForAndroid/releases

Тот самый Nekobox, про который уже писали выше в главе про десктопные клиенты, только под Android. Sing-box в качестве ядра, поддерживает все что нужно на сегодняшний день, в том числе XTLS-Vision (работает без проблем) и XTLS-Reality.
Интерфейс очень похож на SagerNet (автор до этого разрабатывал его форк Matsuri), все что надо под рукой и все работает.

Hiddify-Next

См. описание десктопного Hiddify-Next - у них общая кодовая база.
Очень приятный и прогрессивный клиент с простым интерфейсом.
https://github.com/hiddify/hiddify-next

Как и на десктопе, одно НО - вручную вбивать настройки сервера нельзя, только импорт по QR-коду, ссылке или по подписке (можно вбить в Nekobox, сгенерить QR или ссылку, и потом использовать в Hiddify-Next).

Что использовать на Android?

Тут ответ такой же, как и про декстопы - мне больше всего нравится Nekobox, он поддерживает всё что актуально на сегодняшний день и работает хорошо.
Если по какой-то причине не нравится, то всегда есть v2rayNG, который тоже популярный и умеет все что надо.

iOS

i2ray

https://apps.apple.com/us/app/i2ray/id1445270056 
Упоминаю этот клиент только потому что на него много где есть ссылки, в том числе на странице “Awesome V2Ray”. По факту клиент безнадежно устаревший: основан на старой версии V2Ray, умеет только в Shadowsocks и VMess, а во что-то более свежее типа VLESS, не говоря уж об XTLS - нет. Короче говоря, не стоит тратить время и деньги.

Shadowrocket

https://apps.apple.com/us/app/shadowrocket/id932747118 
Один из старейших клиентов до сих пор на коне.


На каком ядре основан - не понятно, но поддерживает Shadowsocks (включая 2022), VMess, VLESS, Trojan, TUIC, Hysteria, WireGuard, XTLS-Vision (Reality пока еще нет, но будем надеяться что скоро). В отличие от многих других клиентов, настройки TLS fingerprint в окне параметров сервера нет, и можно подумать, что он клиент не поддерживает uTLS - но нет, все в порядке, просто оно настраивается там не индивидуально для каждого сервера, а в общих настройках приложения (и это даже логично). Позволяет довольно гибко настраивать правила маршрутизации (пример).

Работает даже на старых устройствах (с iOS <16). Работает без проблем. Своих денег (2.99$) однозначно стоит, но если хочется бесплатно - читайте дальше.

Stash

https://apps.apple.com/us/app/stash-rule-based-proxy/id1596063349

Тоже платный (3.99$). На базе Clash, поэтому особенности все те же, что и у Clash-клиентов: конфиг только из файла или из сети и только в формате Clash. Не совсем понятно, на базе Clash или Clash.Meta, поэтому есть вероятность что не поддерживает VLESS  и XTLS. Я не тестировал.

Pharos Pro

https://apps.apple.com/us/app/pharos-pro/id1456610173

Еще один платный клиент, но уже  на базе Clash.Meta - то есть должен уметь в VLess и XTLS, заявляется даже поддержка XTLS-Reality. На сайте Hysteria утверждается, что подсунув ему правильный конфиг можно заставить его работать также и с Hysteria. Кроме чтения конфигов из файла и из сети позволяет еще отсканировать QR, но в моем случае почему-то, как и v2rayNG, не заработал с VLESS+XTLS-Vision. Поэтому я рекомендую переходить к следущему пункту :)

V2Box

https://apps.apple.com/us/app/v2box-v2ray-client/id6446814690

Не смотря на название, основан на XRay, и поддерживает все то что тот умеет.
Проект еще сыроват, но активно развивается - в ранних версиях была проблема со скоростью (тормозило-с), потом проблему со скоростью исправили, но появилась проблема с хаотичными отсоединениями, в свежей версии все эти проблемы исправили и клиент в принципе работает как надо, по добавилась реклама при подключении :)

В теории должен работать и на десктопной macOS, я не проверял.

Wings X / FoXray

А вот это отличный клиент под iOS (версии не ниже 16) на базе XRay-core.
Умеет всё то, что поддерживает свежий XRay-core: VLESS, Socks, VMess, Shadowsocks, Trojan поверх TCP, TLS, WebSocket, mKCP, gRPC, HTTP/2, QUIC. И да, свежая версия поддерживает XTLS, в том числе Reality. 

Заявлена поддержка форматов подписок v2rayN и Clash, поддержка формата QR-кодов v2rayNG, а также своего варианта для шэринга серверов со всеми настройками (включая правила и маршруты).

Приятный интерфейс. Работает без проблем. И бесплатный. Одно но - требует свежей iOS (16 и выше).
На сегодняшний день, пожалуй, самый лучший клиент для iOS. Кстати, Wings X есть и под десктопную macOS - я не тестировал, но надеюсь там тоже все замечательно.

Upd: В мае 2023 Wings X исчез из сторов, но зато появился его форк под названием FoXray (судя по описанию, даже от того же разработчика).

Streisand

Новый клиент для macOS и iOS на базе XRay.
https://apps.apple.com/us/app/streisand/id6450534064?platform=iphone

Я еще не пользовался, но люди пишут, что все что надо есть, и работает более стабильно чем FoxRay.

Что использовать на iOS?

Я думаю, вы уже поняли. Мой выбор - Wings X / FoXray либо Shadowrocket, что больше понравится. Можно начать с первого, он бесплатный, а если по какой-то причине не подойдет или перестанет обновляться, то перейти на второй.

OpenWRT

Пакет XRay-core для OpenWrt

Luci-App-XRay - клиент под OpenWrt на базе XRay, поддерживает все протоколы что поддерживает XRay (включая XTLS Vision и Reality), в качестве inbounds поддерживает HTTP/HTTPS/Socks прокси и прозрачный (TProxy). Ну и человекопонятный интерфейс для настройки.
См. статью Установка и настройка XRay на OpenWRT (для Shadowsocks, XTLS-Reality и всего-всего-всего)

OpenWRT-Passwall - популярный и много где упоминаемый набор инструментов, там есть и v2ray, и xray, и sing-box, и hysteria, и naiveproxy, и чего только еще нет.

Merlin-Clash - для роутеров ASUS и им подобным на базе Clash (на китайском, блин).

Для роутеров Keenetic: Xray на Keenetic / Xkeen

Что дальше?

В третьей, заключительной статье, мы рассмотрим настройку своего сервера на базе XRay.

Важно: автор не присутствует в Telegram или каких-либо иных месседжерах или соцсетях, не оказывает никаких платных консультаций и не выполняет никаких работ за деньги, а на вопросы отвечает только на хабре (когда есть время). Остерегайтесь мошенников.

Теги:
Хабы:
Всего голосов 58: ↑57 и ↓1 +56
Комментарии 50
+50
Закрыть

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Комментарии 50

Закрепленные Закреплённые комментарии

Пример настройки geoip и доменной фильтрации в Wings X (iOS):

Изображение не загружено
скриншоты

Можно использовать только category-ru-gov , либол наоборот, не использовать ее, а прописать правила для всех .ru-доменов и российских IP как ниже

Важно: автор не присутствует в Telegram или каких-либо иных месседжерах или соцсетях, не оказывает никаких платных консультаций и не выполняет никаких работ за деньги, а на вопросы отвечает только на хабре (когда есть время). Остерегайтесь мошенников.

А вот и практическая часть подьехала!
Спасибо за подборку софта, сейчас будем тестить )


рассмотрим настройку своего сервера на базе XRay

То что надо!!

Апдейт
Nekobox без проблем подхватил конфиг от WG. Котик в строке уведомлений — как-то немного легкомысленно ))


Первое разочарование — WG через Nekobox в 2-3 раза медленнее, чем через стандартный клиент

Да, иконки Nekoray / Nekobox / Matsuri отбивают желание пользоваться ими :) В виндовом клиенте по крайней мере можно в настройках поменять иконку в трее.

Спасиб)


Сейчас посмотрим, чем она будет отличаться от ридми на гитхабе )

>у меня v2rayNG почему-то не смог соединиться с сервером через VLESS + XTLS-Vision (и версия из стора, и самая новая с гитхаба)

Поставил x-ui аглийский от фарцакафки скриптом, в настройках стоит vless+xtls-vision, версия клиента из стора- соединение есть.

Я сначала не понял, а потом как понял. При установке uTLS как "android" подключение фейлится, при установке uTLS как "chrome" - все работает. Не совсем понятно, это баг на стороне v2RayNG или на стороне XRay, но баг интересный.

ода!1 теперь по мимо англиского придётся ещё и китайский изучать (ппц)

ппц

Я приложил там скриншотик как переключиться с китайского на английский или русский :) но китайский периодически все равно в едининчных случаях вылезает. Поэтому мне больше нравится Nekoray/Nekobox - там нет проблем с интерфейсом :)

да, сорян, походу чукча писатель а не читатель), я прост залез в конфиге поменял languagecurrent:фей-хоа(или как он там)) на православный en-US

Цикл статей однозначно в закладки. Спасибо за труды и простой "слог". Читать одно удовольствие.

как бы оно там нибыло, всё "сложна ни понятна" вот я рандомно выбрал v2rayN в какчестве кликента (в качестве сервера вот ето) вот интерфейс куча всяких настроек, что куда хз, вот например если не выбирать tls (с ним у меня не завелось) то ето буит означать что соединение не шифрованое или что? отпять таки какие то core type и прочие

blow u mind
watafk
watafk

кароче говоря как и про все ети китайские поделки - чёрт ногу сломит

Завтра будет статья про поднятие своего сервера, и там же я приведу примеры конфигурации клиентов со всеми настройками.

вот например если не выбирать tls (с ним у меня не завелось) то ето буит означать что соединение не шифрованое или что?

Настройки (с TLS, без TLS) должны быть одинаковые на клиенте и на сервере, иначе ничего не заработает. Если с TLS не работает, а без TLS нет, то значит что на сервере TLS тоже не настроен, и да - подключение не зашифрованное (разве что если протокол умеет сам в свое шифрование, VMess так умеет, но использовать его без TLS в наше время весьма ненадежно).

вот это я понимаю!

i thought that is mind blowing, но ета Ваш а новая статья that's something, я не отрицаю - труд конечн тектоникстический, но gddmn почиму всё так усложнять?! возможно я не правильно воспринимаю ети все гайды, для меня ищу туториал на подобии как настроить тот же openvpn/wireguard/u-name-it, а тут начинается ета простыня, зачем мне сайт(фейковый) домемнное имя и прочие телодвижения, неужели среди етих examples нет ни одного который просто делает шифрованный туннель без всех етих fallbackов и прочей мемшуры?

Проблема с популярными и простыми технологиями типа Wireguard в том, что они очень сильно уязвимы к блокировкам. Поэтому в случае чего цензоры их заблокируют очень легко , как это уже происходит в Китае и Иранн. Все эти V2Ray, XRay, XTLS, Hysteria, Naiveproxy - это именно протоколы, разработанные чтобы надёжно работать даже в условиях сильной цензуры и хитрых блокировок. Один из самых надёжных методов - маскировка туннеля под обычный HTTPS. Именно для этого необходимо иметь домен и фейковый сайт как прикрытие.

А если нужен просто "шифрованный туннель", то хватит и простого Shadowsocks-2022 (он есть в примерах), и молиться чтобы не заблокировали :)

Возможно вы подскажете, как заставить xray-клиент в докере подключаться через CNTLM или хотя бы обычный прокси?

Огромное спасибо за эти статьи! Помогло новичку немного разложить в голове по полочкам. Я всего как пару месяцев линукс увидел и этими протоколами озадачился (на будущее).. Как новичок сам все это сразу не осилил бы - и поэтому пользовался автоматическими скриптами. Одним установил Naive - там вроде просто. А во втором что я использовал - выбор множества протоколов для установки ( https://iyideng.fun/black-technology/cgfw/trojan-server-building-and-using-tutorial.html ) - я наугад выбрал пункт 17 ( мне показалось что это оптимально) - " Install v2ray/xray (VLess-TCP-[TLS/XTLS])+(VLess-WS-TLS)+(xray's trojan), support CDN, nginx is optional, VLess running at 443 port serve TLS" Но только в процеcсе я выбрал по дефолту TLS а не XTLS. Вот теперь думаю - может надо переустановить с XTLS ? Или пока так оставить? Из клиентов стоят несколько - но пользуюсь Qv2ray - ну очень нравится - просто, красиво,, наглядно. Никаких контекстных меню - тупо ткнул в соединение, оно сразу завелось и побежал трафик и график) Но вот теперь посмотрел - в нем нет  uTLS - видимо нужно перейти на другой клиент. Кстати - вы не упомянули - а что именно там выбирать в меню  uTLS ?

XTLS нужен или когда очень дохлый сервер не тянет много пользователей, или когда цензоры применяют суровые блокировки (с детектированием TLS-in-TLS нейросетью).

Из клиентов советую Nekobox, там примерно так же - ткнул, завелось, побежал трафик :)

В меню uTLS можно выбирать все что угодно, желательно соответствующее платформе. На macOS и iOS - "safari", на Win/Lin - "chrome" или "firefox". И было замечено, что выбор "android" не работает с XTLS-Reality (фиг его знает почему), поэтому на Андроиде тоже приходится выбирать "chrome", в вашем случае с обычным TLS должны быть норм оба варианта.

Запустил Nekobox - VLESS запускается. Но независимо от выбора в uTLS сайты типа 2ip.ru все равно определяют тот браузер которым захожу. Это так и должно быть или у меня uTLS не работает? А XTLS видимо можно пока не использовать - я на сервере один - а до "детектирования нейросетями" мне кажется у нас еще далеко.. (скорее кабель заграницу кувалдой (зачеркнуто) топором перерубят).

И, если можно, еще бы я спросил: в конце установки авто скрипт выдал таблички данных для подключений "client VLess-TCP-TLS configuration parameters" , " VLess-WS-TLS configuration parameters support CDN" и ссылки вида vless:// .. причем ссылки одинаковые в обоих случаях. Но уже в клиенте появляется возможность выбирать WS или TCP. Вот зачем два таких варианта одновременно установились - и какой лучше использовать?

Но независимо от выбора в uTLS сайты типа 2ip.ru все равно определяют тот браузер которым захожу. Это так и должно быть или у меня uTLS не работает?

Не, uTLS тут не причем. После того, как активировали сервер (его можно активировать один раз и поставить в настройках в менюшке опцию, чтобы каждый раз при старте активировался последний используемый, чтоб лишнего не щёлкать) - потом сверху окна на System Proxy или VPN mode нажали?

Активация именно стартует Sing-box с выбранным конфигом, а галочки сверху или прописывают его как системный прокси для все приложений, или запускают TUN-интерфейс.

скрипт выдал таблички данных для подключений "client VLess-TCP-TLS configuration parameters" , " VLess-WS-TLS configuration parameters support CDN" и ссылки вида vless:// .. причем ссылки одинаковые в обоих случаях. Но уже в клиенте появляется возможность выбирать WS или TCP. Вот зачем два таких варианта одновременно установились - и какой лучше использовать?

Точно ссылки одинаковве, если внимательно присмотреться? Разница должна быть как раз в наличии или отсутствии "WS" опции и параметра (пути) для нее. WS используют обычно или а) когда нужно вылезать на прокси через строгий корпоративный фаервол, б) или когда сервер попал под блокировку в) когда сервер совсем копеечный и не имеет своего IPv4-адреса, только IPv6. Для б) и в) нужно настраивать ещё CDN и полноценный домен.

Если ничего из этого не надо - то вариант где просто TLS будет стабильнее и быстрее.

"- потом сверху окна на System Proxy или VPN mode нажали? " Не-не ! Так то все работает и конектится и IP соответствующий виден но вот браузер реальный отражается. С маршрутизацией все хорошо ( с этим я совладал уже)) - я вообще сделал что бы у меня Edge был через сервер а Хром напрямую. Ну и дополнение для удобства типа Смарт Прокси для быстрого переключения. А вот браузер как определялся так и определяется..

"Точно ссылки одинаковве, если внимательно присмотреться?" ... да ) если присмотреться - то немного разные - ну совсем немного - не заметил )) * и огромное спасибо за пояснение про варианты WS/TLS - а то не понимал сути..

А! Извините, сразу не понял :)

Не, так и должно быть. uTLS - это как клиент представляет себя на низком уровне, когда устанавливается TLS-соежинение с сервером. А то, что показывают 2ip и другие сайты, берется из HTTP-заголовков User-agent уже на уровне HTTP. То есть эти параметры никак не связаны. HTTP-заголовки передаются уже внутри зашифрованного соединения, то есть цензоры их увидеть не могут, так что поводов для беспокойства нет, все нормально, но если очень хочется, вроде были расширения для браузеров которые меняют User-agent.

Еще раз спасибо - о "моих проблемах" вроде все) А вот об общих вопрос: вы нигде не упоминали ускорение BBR (plus) . После его установки у меня кардинально увеличилась скорость - правда намертво отвалились WG и OVPN )) Но для китайских протоколов скорость сильно выросла. Что про это ускорение можно сказать?

Я встречал упоминания о нем, но сам ещё не тестировал. Если я правильно понял, это специальный алгоритм передачи (оптимизаций под характеристики конкретного канала для минимизации ретрансмиссий и ещё чего-то).

Просто в том гайде откуда я ставил авто-скрипт, после установок vray предлагалось установить это ускорение BBR "одним кликом" . Я попробовал - и у меня капитально взлетела скорость. Но - еще раз оговорюсь что отвалились обычные WG и OVPN. (Но и хрен с ними - подумал я )) Вот в этом гайде на китайском (я щелкал "перевести на русский" ) в середине статьи под большим пунктом 4 "4. Установка в один клик и включение ускорения BBR."

Интересно. Как будет время, постараюсь изучить вопрос подробнее.

Что то у меня не никак запускается этот протокол.. Весь день с утра мучаюсь.. Что для SS что для VLESS - Nekobox пишет "process connection from 127.0.0.1:52265: dial tcp xxx.xxx.xxx.xxx:23: connectex: No connection could be made because the target machine actively refused it." (соответственно для vray :443) Не знаю куда еще копать ...( Сначала была ошибка "нет доступа к файлам сертификата" - я вроде открыл - и вот теперь статус vray уже несколько часов не меняется ( и время не меняется) сколько не запрашивай - значит на сервере все работает?

journalctl -u xray -f, покажет лог запуска с переносом строк

Ура! Заработало. С третьей переустановки) Последний раз пошел от обратного - что бы видеть где пойдет не так по шагам: на чистый сервер сначала поставил nginx, убедился что работает по появившейся заставке в браузере. Потом поменял на пересылку другого сайта (там красивенько так хотят пароль авторизации) . Работает. А потом поставил xray, сертификаты, тщательно проверил конфиг (видимо там все таки сначала была ошибка) - а уже потом средактировал конфиг nginx и запустил xray. И все побежало.. Но! вот какой теперь вопрос вылез: при заходе браузером на сервер в "буквенном виде" адрес открывается заглушка - а если вводить цифровой IP - то нет коннекта. Где то мелькнуло что "вы получили сертификат на mydomen.com а не на 111.111.111.xxx Как быть? Как цензоры заходят? ( и кстати надо ли в клиенте SNI что то писать - у меня там нет ничего и все работает)

Псы: плюсики ставить не могу..

при заходе браузером на сервер в "буквенном виде" адрес открывается заглушка - а если вводить цифровой IP - то нет коннекта.

Это нормально, так себя ведут многие популярные сайты.

Сообщение об ошибки говорит, что не удается подключиться к серверу, потому что на сервере не запущен демон, или неправильно сконфигурирован, или порезан фаерволом.

Сообщение на скриншоте говорит о том что демон не запустился из-за ошибки в конфигурации. Нужно проскролдить вправо, там будет написано, что не так с конфигом, скорее всего ошибка в синтаксисе либо что-то с правами.

под андроид что умеет работать с PAC?

Смотря что имеется в виду под PAC. Если именно .pac-файлы - то, наверное, ничего не умеет, ч не встречал.

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

Вот например Nekobox for Android:

печаль, остаемся на обычном shadowsocks, он умеет в PAC по урлу

Upd: вариант с "ru" для доменов не работает, потому что в Geosite базах нет правил для .ru

Пример настройки geoip и доменной фильтрации в Wings X (iOS):

Изображение не загружено
скриншоты

Можно использовать только category-ru-gov , либол наоборот, не использовать ее, а прописать правила для всех .ru-доменов и российских IP как ниже

Объясните, пожалуйста, подробнее новичку, для чего нужен режим proxy в Nekobox? При его использовании трафик идет напрямую, минуя VPS, как на MacOS так и на Android, либо я что-то не так сделал.
В режиме VPN - все отлично, но я хотел бы скрыть факт использования VPN на Android, а в этом режиме он детектится приложениями

Спасибо за отличный цикл статей автору. Очень понравился Nekoray/Nekobox - не знал протокол. А никто не подскажет, если ли для этих протоколов что то похожее на VPN Gate - бесплатные волонтерские сервера? Или может списки какие?

Важно: автор не присутствует в Telegram или каких-либо иных месседжерах или соцсетях, не оказывает никаких платных консультаций и не выполняет никаких работ за деньги, а на вопросы отвечает только на хабре (когда есть время). Остерегайтесь мошенников.

Начал изучать эту тему, сначала тестил с shadowsocks, тут nekoray объективно был лучшим вариантом, все кнопки на видном месте, конфиги легко вводить, всё работает по клику.

Дальше пошёл пошёл потестить trojan, и тут всё было ок. Решил использовать shadowsocks + v2ray-plugin, сервер настроил, а nekoray работать отказывается, eof постоянный получает, при этом shadowsocks-rust (sslocal) с указанием в конфиге плагина, работает без проблем. Ну окей, решил дальше поднять xtls-reality, с sing-box nekoray работает, с xray - нет, в принципе уже появляются идеи, что в nekoray что-то не так с ядром xray, но найти инфу я так и не смог, в исходниках прям уж копаться лень, по поиску в репе ничего найти не получилось.

Решил остановиться на vless и xtls-vision. Сервак поднял, конфиг сделал, в голом xray конфиг работает, в nekoray (через импорт своего конфига) - нет. Инфы почему так (как и какая версия xray используется), найти не смог.

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

Интерфейс конечно лютый вырвиглаз, но ок, терпим, импортирую конфиг с vless, и о чудо, всё работает (перед этим только нужно ещё xray закинуть в папку для его ядра). Ну и с тем, как включить tun тоже не сразу разобрался, в конце концов додумался открыть с админом. Как я понял, чтобы работал tun, надо скачать ядро singbox, после этого всё заработало.

В принципе я и сейчас стараюсь понять, что не так с nekoray, но уже лень время на это тратить. Просто есть рабочее решение - v2rayn, а nekoray, хоть и имеет приятный ui + ux, работает (у меня) не всегда.

Но если вам прям сильно нравится nekoray, то есть решение, через консоль xray включаете с конфигом, а через nekoray коннектитесь к его локальному прокси. Но правда в этом мало смысла, если рядом есть рабочее решение в виде v2rayn.

Везде тут речь про винду

Nekoray поддерживает сразу и XRay и Sing-box в качестве ядра и между ними можно переключаться одним кликом.

XRay они добавили недавно (вместо усопшего V2Ray), а Sing-box там испокон веков и он отлично работает у многих людей.

Это понятно, только если выбрать xray, и добавить новый профиль с типом xray config, и вставить туда конфиг xray для клиента, то работать он не будет. Ну либо это я туплю, и не могу настроить нормально. Просто напрягает, что если запустить ядро отдельно, и передать ему конфиг, он работает, а в nekoray - нет. Ну и в v2rayn есть возможность оперативно обновлять ядра, в nekoray они вшиты

Upd: а использовать sing-box не могу, у меня с ним не работает tun mode, только как системный прокси

Я не за v2rayn, если у вас получается настроить nekoray, то лучше использовать его, я сам пытался его 3 дня настроить с разными протоколами, но вышло только vless + singbox и ss + xray.

Это понятно, только если выбрать xray, и добавить новый профиль с типом xray config, и вставить туда конфиг xray для клиента, то работать он не будет. 

Ну, конфиг всегда можно и ручками вбить в любом клиенте. А единожды вбив, можно также в любом клиенте сгенерировать ссылку (те же опции конфига, но закодированные в URL) и вставить ее в Nekobox, в т.ч. и с xray и с sing-box в качестве ядра, он распарсит.

а использовать sing-box не могу, у меня с ним не работает tun mode

это что-то очень странное. у меня все работает, ну и до вас вроде никто не жаловался. можно проверить в настройках посмотреть режим run, поиграться с вариантами (system/gvisor/etc.). Ну или зарепортить issue на гитхаб разработчикам Nekoray.

Репозиторий Luci-App-XRay https://github.com/yichya/luci-app-xray закрылся, как и профиль автора. Походу товарищ майор пришёл. Жаль, было удобно.

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

Публикации

Читают сейчас

Истории

Идём на «Импульс Т1» по дороге из жёлтого кирпича
Как стать супергероем
Рейтинг IT-брендов работодателей 2023
Активность найма в 3 квартале 2023
Топ-7 годных статей из блогов компаний
Сколько тратят в IT: сеньор бэкендер
Перевернуть календарь и добавить событие

Работа