diff --git a/README.md b/README.md index 70566c9..a83bbea 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,7 @@ *Script for Linux which makes XRay management easy* -(todo) [Readme in Russian](README.ru.md) - -(todo) [Readme in Chinese](README.cn.md) +[Readme in Russian](README.ru.md) [(todo) Readme in Chinese](README.cn.md) [XRay (aka ProjectX)](https://xtls.github.io/en/) is a frontier solution to circumvent the internet censorship. XRay allows to guide traffic through a server (VPS) outside the region of censorship as a proxie, but connection to xray server looks for authorities as a typical diff --git a/README.ru.md b/README.ru.md new file mode 100644 index 0000000..1113700 --- /dev/null +++ b/README.ru.md @@ -0,0 +1,148 @@ +# easy-xray + +*XRay - это просто* + +[(EN)](README.md) [(CN(todo))](README.cn.md) + +[XRay (aka ProjectX)](https://xtls.github.io/en/) - современное решение для обхода интернет-цензуры. Он - как прокси - позволяет проводить +трафик через сервер (VPS) за пределами региона с цензурой, при этом подключение к серверу XRay выглядит как подключение к обычному сайту. +Попытки обнаружения VPN, такие как активное зондирование [(active probing)](https://ensa.fi/active-probing/) или блокировка по правилу +«блокируем все протоколы, кроме https», для XRay не страшны. Кроме того, сервер XRay можно настроить на открытие только "зарубежных" +веб-сайтов, что предотвращает попытки обнаружения туннеля сайтами "домашнего" региона. XRay (в случае использования протокола +VLESS-Reality) не шифрует уже зашифрованный https-трафик, поэтому нагрузка на процессор невелика. XRay не нужно поддерживать соединение, и +пользователям не нужно время от времени повторно подключаться к нему вручную. При правильной настройке клиента пользователям не нужно +отключаться от сервера, чтобы перейти на большинство веб-сайтов "домашнего" региона. + +![схема: трафик до зарубежных сайтов идёт через сервер, а до домашних сайтов - напрямую с ПК](figs/xray-schematic.png) + +Помимо плюсов, у XRay есть и недостатки - например, сложная настройка и администрирование, что стало мотивацией для создания этого +репозитория и скрипта `ex.sh`. Этот скрипт поможет + +- установить/обновить/удалить XRay +- генерировать учетные данные и конфигурации сервера/клиента +- добавлять/удалять пользователей +- и т. д. + +### Как использовать на VPS + +Для начала нужно арендовать VPS сервер вне региона с цензурой (или попросить друзей заграницей сделать это). После на сервер нужно +установить [jq](https://jqlang.github.io/jq/) и `openssl` - их можно найти в репозиторияx практически всех популярных Linux дистрибутивов. +Затем скачайте `easy-xray` (всю директорию целиком), сделайте исполняемым файл `ex.sh` и запустите нужную команду. Используйте `./ex.sh +help` для получения списка всех команд и короткой справки по ним. Для установки и настройки xray используйте `./ex.sh install` - эта команда +предложит вам ввести ip-адрес вашего сервера, адрес сайта, под который ваш сервер будет маскироваться, и имена пользователей. + +``` +chmod +x ex.sh +./ex.sh help +sudo ./ex.sh install +``` + +В результате у вас появится директория `conf` с серверным конфигом, основным клиентским конфигом и конфигами пользователей. Серверный конфиг +будет должным образом установлен, а xray - запущен с ним. Настало время раздать конфиги пользователям! Для многих графических клиентов +удобно использовать конфиги в виде ссылок, которые можно сгенерировать командой `./ex.sh link user_config_file.json`. + +### Клиенты + +#### Linux + +Для подключения к XRay-серверу существуют клиенты с графическим интерфейсом, но о них чуть позже. На Linux удобно использовать сам XRay в +качестве клиента. XRay можно установить вручную, используя [официальный скрипт](https://github.com/XTLS/Xray-install), после чего +скопировать `customgeo.dat` в `/usr/local/share/xray/`. Другой вариант установить XRay и `customgeo.dat` - воспользоваться командой `sudo +./ex.sh install`. Затем нужно скопировать клиентский конфиг с сервера и выполнить + +``` +sudo cp config_client_username.json /usr/local/etc/xray/config.json +sudo systemctl start xray +``` + +или + +``` +sudo xray run -c config_client_username.json +``` + +XRay с текущим клиентским конфигом создаёт локальные http/https и socks5 прокси, которые могут быть прописаны в настройки Телеграма или +браузера примерно так: + +![прокси в браузере: http/https прокси 127.0.0.1 порт 801, socks5 хост 127.0.0.1 порт 800](figs/browser-proxy-settings.png) + +Чтобы проверить, что трафик до "зарубежных" и "домашних" сайтов идёт разными путями, зайдите на +[whatismyip.com](https://www.whatismyip.com/) и [2ip.ru](https://2ip.ru/). Они должны показать разные ip-адреса и локации. + +#### Windows + +Используйте [Nekoray (Nekobox)](https://github.com/MatsuriDayo/nekoray) - клиент с графическим интерфейсом. Релизы для Windows можно найти +на [этой странице](https://github.com/MatsuriDayo/nekoray/releases) в разделе Assets. Выберите и скачайте, например, +`nekoray-3.26-2023-12-09-windows64.zip`, затем распакуйте и запустите. Дальнейшее конфигурирование [описано здесь](Nekoray.ru.md). + +#### MacOS + +Используйте сам XRay: + +``` +brew install xray +cp customgeo.dat /usr/local/share/xray/ # not yet tested +sudo xray -config=config_client_username.json +``` + +#### Android + +Для многих мобильных клиентов вся настройка заключается в том, что нужно вставить конфиг-ссылку из буфера обмена, а после добавить сайты из +customgeo в подходящей форме (см. директорию `misc`) в "прямые" маршруты (в `Settings/Routing/Custom rules/Direct URL` или что-то подобное). +Приложения, которые были протестированы, перечислены ниже. + +Скачайте из Google Play [V2RayNG](https://play.google.com/store/apps/details?id=com.v2ray.ang&pcampaignid=web_share), +[HiddifyNG](https://play.google.com/store/apps/details?id=ang.hiddify.com&pcampaignid=web_share) или [Hiddify +Next](https://play.google.com/store/apps/details?id=app.hiddify.com&pcampaignid=web_share). Они очень похожи друг на друга, здесь есть +инструкции для [V2RayNG](V2RayNG.ru.md) и [HiddifyNG (EN)](HiddifyNG.en.md). + +#### iOS + +Используйте [Straisand](https://apps.apple.com/us/app/streisand/id6450534064). Конфигурирование аналогично тому, что описано для V2Ray или +Hiddify (см. выше). Customgeo - ещё не протестирован. + +#### Другие + +[Здесь](https://github.com/xtls/xray-core) можно найти дополнительный список клиентов. + +### Tor + +В случае использования XRay в качестве клиента с текущей конфигурацией не должно возникнуть проблем. Однако большинство графических +клиентов, хотя в качестве ядра используют xray, не дают полного доступа к его конфигурации. Из-за этого +[Torbrowser](https://www.torproject.org/download/) не всегда может работать "из коробки". Если подключиться к сети Tor не удаётся, +попробуйте использовать мост (специальный промежуточный сервер между вами и сетью Tor). Чтобы получить мост, отправьте письмо с любым +текстом на bridges@torproject.org, затем вставьте из ответного письма символы после `obfs4` в настройки моста в Torbrowser. + +### Bittorrent + +Bittorent протокол блокируется в текущих настройках - использование bittorrent может привести к бану со стороны VPS провайдера. + +### Что ещё? + +#### Советы + +Для того, чтобы выбрать сайт, который будет видеть на вашем сервере цензор в случае атаки active probing (`serverName` в конфигах), можно +воспользоваться утилитой [RealiTLScanner](https://github.com/XTLS/RealiTLScanner). Она может просканировать адреса, близкие к вашему серверу +(делайте это с домашнего компьютера, а не с сервера!), и показать имена сайтов на них. С помощью команды `nmap -T4 hostname` можно +проверить, что на выбранном вами сервере открыты только порты 80 и 443 (как в настройках xray здесь). Также неплохо выбрать далёкий порт для +ssh вместо 22-го, если на выбранном вами сайте этот порт не открыт. Дважды проверьте, что по выбранному вами порту ssh вы можете зайти на +сервер - только после этого закрывайте порт 22. + +``` +#Port 22 +Port 43210 +``` + +#### Ссылки + +Шаблонные конфиг-файлы для сервера и клиента (`template_config_*.json`) содержат много комментариев, которые могут помочь в создании своей +собственной конфигурации клиента и сервера. + +Шаблонные конфиги сделаны на основе этих [двух](https://github.com/XTLS/Xray-examples/tree/main/VLESS-gRPC-REALITY) [примеров](https://github.com/XTLS/Xray-examples/tree/main/VLESS-TCP-XTLS-Vision-REALITY). + +[Описание всех возможных полей XRay конфигов (EN)](https://xtls.github.io/en/config/) очень подробное и хорошо помогает. + +[Здесь](https://github.com/EvgenyNerush/coherence-grabber) детали того, как собраны сайты для доступа напрямую, прописанные в `customgeo`. + +[Эта статья](https://habr.com/ru/articles/731608/) помогла мне установить XRay в первый раз. +