Skip to main content

Установка панели X-RAI 3X-UI м поднятие SHADOWSOCKS и VLESS

Все доменные имена присваивал в сервисе Duckdns.org

Сертификаты выпускал в NGinxProxyManager отдельно, потом скачивал и указывал путь до них в настройках 3x-ui.

Публичный ключ называется fullchain.pem, а закрытый private.pem

Качаем проект к себе на сервер из https://github.com/MHSanaei/3x-ui.git

Не забываем раздать права на исполнение скриптов sh (777)

Далее запускаем скрипт установки ./install.sh 

Теперь открываем браузер и заходим в админку по ссылке:

http://yourserverip:2053/panel/, где yourserverip - IP-адрес вашего сервера (протокол http://, а не https://).

Логин и пароль - admin/admin и входим в удобную панель управления:

WireGuard и 3X-UI (Shadowsocks + VLESS) одновременно на одном сервере Ubuntu Android, Приложение, Windows, VPN, Wireguard, Блокировка, Обход блокировок, Обход ограничений, Длиннопост

Панель управления

Первым делом идём в Настройки панели -> Настройки безопасности и меняем логин/пароль на собственные. В идеале можно ещё поменять порт панели и URL адреса панели.

Shadowsocks

Далее жмакаем Подключения -> Добавить подключение

Придумываем название, выбираем Протокол Shadowsocks. Остальное не трогаем и нажимаем - создать.

WireGuard и 3X-UI (Shadowsocks + VLESS) одновременно на одном сервере Ubuntu Android, Приложение, Windows, VPN, Wireguard, Блокировка, Обход блокировок, Обход ограничений, Длиннопост


VLESS

Теперь можно добавить VLESS. Также жмакаем Подключения -> Добавить подключение. Пишем своё название и выбираем протокол VLESS. Порт 443. В разделе Security выбираем REALITY. Во Flow ставим в xtls-rprx-vision. В поле uTLS рекомендуею выбирать chrome, но можно выбрать любое другое из списка. В полях Dest и SNI, либо оставить по умолчанию, либо прописать на выбор:

Dest: dl.google.com:443 и SNI: dl.google.com

Dest: www.microsoft.com:443 и SNI: www.microsoft.com

Выбор домена для маскировки

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

Требования довольно простые:

это должен быть иностранный сервер (вне РФ), не забаненный по домену Роскомнадзором, поддерживающий подключения по TLSv1.3 и HTTP/2, имеющий заглавную страницу, которая не переадресовывает на какой-нибудь другой домен. Если совсем упарываться, то неплохо было бы если бы IP-адрес был из диапазона того же облачного хостера, что и у вас, и чтобы сервер поддерживал Online Certificate Status Protocol (OCSP). Если вы не знаете, что вся эта фигня значит - не заморачивайтесь, выбирайте что-нибудь простое, например

  • www.samsung.com:443

  • www.googletagmanager.com:443

  • www.asus.com:443

  • www.amd.com:443

  • www.cisco.com:443

  • www.microsoft.com:443

  • dl.google.com:443

  • www.linksys.com:443

  • www.nvidia.com:443

    и т.д.

Лучше всего выбирать что-нибудь из сети того же хостера, каким пользуетесь вы.
Для этого есть специальный инструмент: https://github.com/XTLS/RealiTLScanner

Скачиваете его под Windows/Linux со страницы Releases, или собираете сами (go build).

Далее, запускаете как-то так:

./RealiTLScanner -addr IP_вашего_VPS -showFail

и ждете.

Сканер будет перебирать IP-адреса из той же подсети, что и ваш сервер, и пытаться к ним подключиться по TLS. Если он что-то найдет - вы это увидите. Пример (я сканирую рандомный IPшник):

89.116.243.206:443 	TLS handshake failed: EOF
89.116.243.207:443 	TLS handshake failed: EOF
89.116.243.208:443 	----- Found TLS v1.3	ALPN   	CN=caprover.com,O=CapRover.com,L=Vancouver,ST=British Columbia,C=CA,1.2.840.113549.1.9.1=#0c11696e666f40636170726f7665722e636f6d
89.116.243.209:443 	TLS handshake failed: EOF
89.116.243.210:443 	----- Found TLS v1.3	ALPN   	CN=patentpath.io
89.116.243.211:443 	----- Found TLS v1.3	ALPN   	CN=vps3.gecon.pl
89.116.243.212:443 	TLS handshake failed: EOF
89.116.243.213:443 	TLS handshake failed: EOF
89.116.243.214:443 	TLS handshake failed: EOF
89.116.243.215:443 	TLS handshake failed: read tcp 192.168.136.132:55142->89.116.243.215:443: i/o timeout
89.116.243.216:443 	----- Found TLS v1.3	ALPN   	CN=localhost,OU=none,O=none,L=Sometown,ST=Someprovince,C=US,1.2.840.113549.1.9.1=#0c137765626d6173746572406c6f63616c686f7374
89.116.243.217:443 	TLS handshake failed: EOF
89.116.243.218:443 	TLS handshake failed: EOF
89.116.243.219:443 	TLS handshake failed: EOF
89.116.243.220:443 	TLS handshake failed: EOF
89.116.243.221:443 	TLS handshake failed: EOF
89.116.243.222:443 	----- Found TLS v1.3	ALPN   	
89.116.243.223:443 	----- Found TLS v1.3	ALPN   	CN=milapanel.milahosting.com
89.116.243.224:443 	----- Found TLS v1.3	ALPN   	CN=vps-us.workx.dev
89.116.243.225:443 	----- Found TLS v1.3	ALPN   	CN=www.google.com
89.116.243.226:443 	----- Found TLS v1.3	ALPN   	CN=www.bookifynow.com
89.116.243.227:443 	----- Found TLS v1.3	ALPN   	CN=next.tasosvl.cc
89.116.243.228:443 	TLS handshake failed: EOF
89.116.243.229:443 	----- Found TLS v1.3	ALPN   	CN=alpaca-dreams.com
89.116.243.230:443 	TLS handshake failed: EOF

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

После сгенерировать сертификаты кнопкой и создать подключение.

WireGuard и 3X-UI (Shadowsocks + VLESS) одновременно на одном сервере Ubuntu Android, Приложение, Windows, VPN, Wireguard, Блокировка, Обход блокировок, Обход ограничений, Длиннопост

VLESS

Подключиться можно по QR-коду (для смартфонов) или по ссылке (для ПК), которые можно получить из созданных нами подключений.

WireGuard и 3X-UI (Shadowsocks + VLESS) одновременно на одном сервере Ubuntu Android, Приложение, Windows, VPN, Wireguard, Блокировка, Обход блокировок, Обход ограничений, Длиннопост

На этом в принципе с серверной частью всё.

Теперь о клиентах

На даный момент один из самых удобных и работающих клиентов это Nekobox/Nekoray
Есть сборки для Windows, Linux, MacOS, он же есть под Android.
Для iOS хорошо показал себя FoXray.

Для Windows и Linux качаем https://github.com/MatsuriDayo/nekoray/releases новые релизы выходят один раз в одну две недели.

Для MacOS https://github.com/abbasnaqdi/nekoray-macos/releases

Для Android https://github.com/MatsuriDayo/NekoBoxForAndroid/releases или из официального магазина, но там он платный.

Для iOS ищем FoXray в официальном магазине.

Сначала настроим клиент на ПК, я делаю на Linux, на Windows и Mac все аналогично.
Открываем информацию о пользователе и копируем URL. Запускаем Nekoray, при первом запуске он предложит выбрать ядро, выбираем sing-box. Сразу включаем Tun mode.

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

URL подключения мы уже скопировали, идем в Server, Add profile from clipboard, или просто нажимаем Ctrl+V в интерфейсе и наше подключение сразу добавляется в клиенте.

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

Нажимаем enter или правой кнопкой по подключению и выбираем start. После появления галочки идем проверять на какой-нибудь 2ip.ru, если видим там IP адрес вашего сервера то все хорошо, прокси/VPN работает.

Для iOS устанавливаем ForXray, открываем, выбираем сканировать QR, сканируем

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

Подключение сразу появляется в клиенте, запускаем и проверяем браузером

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

Для Android идем на гитхаб https://github.com/MatsuriDayo/NekoBoxForAndroid/releases и скачиваем apk последнего релиза для архитектуры arm64

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

Устанавливаем на телефон, и запускаем. У меня на Xiaomi с MiUI установилось без лишних вопросов. Далее нажимаем на плюсик в правом верхнем углу

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

Выбираем Отсканировать QR-код.

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

Тапом выделяем появившееся подключение и нажимаем запуск

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

Телефон скорее всего попросит разрешения на запуск впн подключений, их естественно нужно разрешить. И сразу будет видно запущенное и активное подключение плюс появится значок в трее.

Не wireguard'ом единым Linux, Гайд, Windows, Android, iOS, VPN, Длиннопост

На этом собственно все, мы молодцы.

Подписка(Subscription)

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

Для активации подписки я настоятельно советую завести доменное имя для сервера, т.к. гонять вот так конфиги с самоподписным сертификатом это совсем не хорошо. И инструкция работает для серверов с действительным доменным именем.

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

- идем на сайт duckdns.org

- авторизуемся/регистрируемся

- добавляем домен и закрепляем за ним IP вашего сервера.

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

По этому доменному имени сразу станет доступна и сама панель. Теперь нам нужно выпустить для него сертификат, для этого нужно зайти по доменному имени и порту,(https://ваш_домен:ваш_порт) и веб сервер получит его автоматически. При заходе будет небольшая задержка.

Веб сервер caddy хранит сертификаты по следующему пути, зайдите на сервер по ssh и проверьте что все на месте, т.к. они нам понадобятся:
/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/ваш_домен/

Проверили - продолжаем. Идем в панель, авторизуемся и заходим в Настройки -> Подписка

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

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

Указываем путь до SSL сертификата, лежит в указанной выше директории, называется ваш_домен.crt и его ключа в той же директории ваш_домен.key.

Даллее нужно открыть порт на фаерволе сервера

ufw allow ПОРТ_КОТОРЫЙ_ВЫ_ВЫБРАЛИ_ДЛЯ_ПОДПИСКИ/tcp

Далее сохраняем конфиг панели и перезапускаем ее.

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

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

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

Ссылку можно посмотреть и скопировать в разделе Информация у каждого пользовательского подключения

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

К сожалению т.к. подписка сделана напрямую без реверспроксирования, x-ui нужно будет переодически перезагружать, сделать это можно по крону или добавив пару строк в systemd юнит x-ui. Я уже плотно перешел на использование юнитов и таймеров systemd поэтому покажу пример для нее

Открываем файл /etc/systemd/system/x-ui.service

nano /etc/systemd/system/x-ui.service

и в секцию [Service] добавляем строчку
RuntimeMaxSec=86400s

а строчку Restart меняем на

Restart=always

Сохраняем, выходим и говорим systemd перечитать изменения и перезапускаем x-ui

systemctl daemon-reload
systemctl restart x-ui

Теперь ссылку на подписку можно скармливать клиентам, для некобокс это делается так же копипастом в интерфейс, возможно потребуется удалить уже настроенный профайл, в мобильных клиентах это отдельные разделы. Для nekoray - Копируем ссылку в панели для пользователя, запускаем приложение, и просто по Ctrl+V вставляем, нажимаем ОК

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост
Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Наше подклчение получено по подписке, можно запускать и пользоваться

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

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост
Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Теперь про Android - я немного опростоволосился, и не смог добавить ни подписку ни правила маршрутизации(о которых ниже) в приложении NecoboxForAndroid, решил попробовать в приложении v2rayNG и там все получилось в пару нажатий. Это приложение можно поставить из магазина напрямую. Поэтому далее инструкция для него. В панели открываем QR-код пользователя, его можно скопировать и отправить на телефон, или сразу же отсканировать устройством, после активации подписки будет показываться два кода, один для подключения, один для подписки.

Далее открываем приложение v2rayNG на телефоне, в правом верхнем углу тыкаем на плюсик и выбираем Импорт профиля из QR-кода

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Далее выбираем отсканировать или открыть код из файла

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Сканируем QR-код подписки, но сразу подключение не добавится, нужно дать команду на обновление подписки. Жмем по трем точкам в правом верхнем углу и выбираем Обновить подписку

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

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

Маршрутизация

Теперь хорошо бы сделать что бы трафик до российских доменов напрямую, для этого открываем nekoray, идем в Preferences - Routing settings - Simple route - Custom route

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

И в появившемся окне Json Editor прописываем следующее:
{
"rules": [
{
"domain_suffix": [
".ru"
],
"outbound": "direct"
}
]
}

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Сохраняем, проверяем, например сайт https://2ip.ru должен теперь показывать ваш домашний адрес, а https://whatismyipaddress.com/ адрес вашего сервера

Для FoXray все чуть проще, нужные правила там уже есть, осталось их только активировать. В самом верху главной страницы приложения заходим в Routing & DNS

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Тут уже создан первый набор правил, называется он Simple проваливаемся в него и приводим к следующему виду и не забываем сохранить

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост
Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Далее активируем набор правил и сохраняем

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Можно активировать и подключение и проверить опять же на сайтах https://2ip.ru и https://whatismyipaddress.com/

Для v2rayNG все так же не сложно

Идем в настройки, и мотаем до блока с маршрутизацией, сразу меняем Доменную стратегую на AsIs и заходим в Пользовательские правила

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

В правилах переходим на вкладку Прямые и вводим domain:ru и не забываем сохранить нажатием на галочку

Настройка 3xui. part 2 Гайд, Linux, Android, iOS, VPN, X-ray, Длиннопост

Далее возвращаемся на главный экран, перезапускаем подключение и проверяем.

На этом на сегодня все, спасибо за внимание

Telegram

И занимательное на последок. Панель может работать как Telegram-бот :)

Сначала обращаемся к боту BotFather и просим его зарегистрировать нового бота:

Он сгенерирует для вас API-токен. Его надо вставить в настройки панели, и там же указать ваш ID как админа (его можно запросить у бота userinfobot):

После этого можно разговаривать с панелью через Telegram - смотреть статистику, делать бэкапы конфигурации, и т.д.

На этом всё.

Удачи, и да прибудет с вами сила.