Результаты поиска по запросу

Дополнительные фильтры
Теги:
новый тег
Автор поста
Рейтинг поста:
-∞050100200300400+
Найдено: 572
Сортировка:
Cегодня мы поговорим об установке и использовании графической панели 3X-UI для сервера X-Ray с поддержкой всего того, что умеет X-Ray: Shadowsocks-2022, VLESS с XTLS и т.д.
Почему 3X-UI? Существует, на самом деле, довольно много панелей для V2Ray/XRay: оригинальный X-UI, Marzban, Libertea, Hiddify. Проблема в том, что в процессе экспериментов у меня и ряда других хабраюзеров заставить их нормально работать с пол-пинка не получилось. Например, одним из требований была установка в Docker (чтобы не создавать бардак в системе и не запускать непонятные bash-скрипты на хосте вне контейнера), и на этом этапе отвалились уже многие панели: у каких-то установка падала еще на этапе разворачивания docker-контейнера из-за ошибок в скриптах, какие-то устанавливались, но не могли нормально запуститься (фронтенд говорил, что не может подключиться к бэкенду), какие-то в итоге запускались, и после получаса тыканья везде в попытках переключить язык с китайского или фарси хотя бы на английский выяснялось что что-то глючит или не работает.
3X-UI, который является доработанным форком оригинального X-UI, в сравнении со всем вышеописанным, почти идеален: легко устанавливается в Docker, сразу на английском с возможностью переключения на русский, имеет в себе все что надо - и главное, работает! Пара багов, конечно, тоже нашлась, но они не критичны и о них будет чуть позже.
Update: в конце мая в своем Telegram-канале автор 3X-UI написал, что возможно больше не будет работать над проектом, но есть альтернатива - еще один из форков оригинального X-UI под названием (внезапно!) X-UI, который очень похож на 3X-UI и тоже работает без проблем.
Установка
Официальный репозиторий 3X-UI: https://github.com/MHSanaei/3x-ui
Официальный репозиторий форка X-UI: https://github.com/alireza0/x-ui
Итак, дано: VPS с IPv4 (неплохо бы иметь еще IPv6, но не обязательно) и Debian либо Ubuntu Linux (на других дистрибутивах суть будет примерно та же самая). И установленные Docker и docker-compose (если вдруг нет - следуйте инструкциям для вашего дистрибутива, у меня без проблем установилось простым "apt install docker.io docker-compose"). Ну и git в придачу.
Сначала клонируем исходники. Лучше всего использовать последнюю стабильную версию, можно проверить в "Releases" на гитхабе.
Для 3X-UI:
git clone https://github.com/MHSanaei/3x-ui.git
cd 3x-ui
git checkout v1.4.6
Для X-UI:
git clone https://github.com/alireza0/x-ui.git
cd x-ui
git checkout 1.4.1
Запускаем docker-compose:
docker-compose up -d
Готово! Вы восхитительны! Я серьезно, все, панель установлена и работает.
Дело осталось за малым - настроить ее:
Для 3X-UI идем браузером по адресу http://yourserverip:2053/panel/, где yourserverip - IP-адрес вашего сервера или доменное имя, если оно у вас есть и настроено (обратите внимание, протокол http://, а не https://). Для X-UI нужно сначала посмотреть с помощью команды "docker logs x-ui", на каком именно порту запустилась панель.
Логинимся под стандартными реквизитами admin/admin и видим нашу прекрасную панель управления:
Первым делом я советую сделать несколько вещей. Перейти в "Settings" (настройки) и там:
Изменить порт на котором работает панель со стандартного 2053 на какой-нибудь другой (лучше всего где-нибудь в верхнем конце диапазона, до 65535);
Изменить корневой путь URL-адреса панели с / на что-то типа /mysecretpanelroot/;
При желании переключить язык на русский (но имейте в виду, в русском переводе есть некоторые неточности сбивающие с толку);
На второй вкладке "Настройки безопасности" изменить стандартный админский пароль на свой;
После чего сохраняем настройки и рестартуем панель. Нужно будет изменить URL с учетом нового порта и пути, заданных в настройках.
Все вышеперечисленное необходимо для защиты от тупых скрипткиддисов залетных кулхакеров, которые случайно могут наткнуться на вашу панельку при массовом сканировании адресов. Другие советы по повышению безопасности я приведу в конце статьи.
Создаем подключения
Идем в раздел меню Inbounds (в русском переводе он почему-то называется "Пользователи", это неправильно и сбивает с толку). Нажимаем "Add Inbound" ("Добавить пользователя"):
Всего входящих/исходящих: о в / о в Количество пользователей: о)
+ Добавить пользователя I = Общие действия
поиск
Меню
Включить,shadowsocks,3x-ui,туториал,длиннопост,habr,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,telegram,VPN
Появляется милое окошо. Сначала добавим возможность подключаться через Shadowsocks-2022.
"Remark" (Примечание) - ввести что угодно, это просто человекочитаемое название;
"Протокол" выбираем shadowsocks;
"Listening IP" (в русском переводе называется "Порт IP", и это тоже неправильно и запутывает) можно оставить пустым, тогда сервер будет слушать на всех IP-адресах, либо можно явно указать требуемый;
"Порт" - панель выберет рандомный.
Далее настраиваем пользователя (в момент создания inbound'а создается один, других при желании можно добавить позже):
Поле "Email" на самом деле не обязательно должно содержать емайл, может быть любой текст (имя пользователя) - панель генерирует рандомный набор символов, если вы хотите создавать несколько разных пользователей (например, раздать аккаунты друзьям, смотреть кто сколько накачал и при желании блокировать доступ), то лучше вбить сюда что-то человекочитаемое и понятное;
"Subscription" - пока что можно вбить тот же самый юзернейм (о подписках я расскажу чуть позже).
Дальше снова идут настройки протокола:
"Шифрование" - выбираем что-нибудь что начинается с "2022", вариант по умолчанию вполне неплох;
"Пароль" (ключ) панель сгенерирует автоматически с правильной длиной для выбранного метода шифрования.
Нажимаем "Создать" и на этом настройка для Shadowsocks закончена, им уже можно пользоваться.
примечание:
SS
включить:
протокол: shadowsocks порт IPO: 81.35.155.2 Порт: 51258 Общий расход (GB) О: О Дата окончания О
v Клиент
Telegram ID О:
ограничение по IP О О
Общий расход (GB) О: О
Начать со времени первого подключения: Д
Дата окончания О
Шифрование:	2022-blake3-aes-256-gcm
Теперь переходим к настройке VLESS с XTLS-Reality. Тут все будет чуточку сложнее, но в целом так же просто.
"Remark" (Примечание) - любое название;
"Протокол" - "vless",
"Listening IP" ("Порт IP", который на самом деле не порт, а адрес) - оставляем пустым, либо задаем вручную если надо;
"Порт" - вместо рандомного ставим 443;
Добавить пользователя
X
примечание: Reality	включить:
протокол: vless порт IP О:
Порт:	443
Общий расход (GB) ©: О Дата окончания О
v Клиент
Email : О t3882vbj
ID: О 17caff16-859a-4f 14-ea9e-995f 1 delcb09 Subscription©: О userl Telegram ID©: ограничение no IP ©:
Flow: xtls-rprx-vision
Далее переходим к настройкам клиента.
"Email" - как в и в прошлом пункте, лучше указать что-то человекочитаемое и понятное. Важно: пользователи разных подключений не могут иметь один и тот же емайл (например, наш новый VLESS и старый Shadowsocks созданный в предыдущем пункте), поэтому можно добавить какой-нибудь префикс (например user1vl) для избежания конфликтов.
"Subscription" - тут наоборот, лучше будет если текст в этом поле будет совпадать с тем, что вы задали для Shadowsocks (подробности ниже). Внимание: в отличие от 3X-UI, в X-UI поле Subscription по умолчанию не отображается, нужно сначала активировать функционал подписок в настройках панели.
"Flow" - надо выбрать "xtls-rprx-vision". Обратите внимание, поле Flow (см. скриншот) появится только после того, как чуть ниже вы поставите галочку на пункте "Reality". То есть лучше всего настривать так: сначала ставите галочку Reality, а потом заполняете поля с настройками пользователя.
Дальше у нас идут настройки транспорта:
"Reality" - как уже сказано выше, должно быть активно;
"XTLS" - наоборот, должно быть неактивно (это немного запутывает, не смотря на то, что Reality тоже относится к XTLS, здесь под XTLS подразумеваются только устаревшие версии протокола, и галочки "XTLS" и "Reality" в панели являются взаимоисключающими);
"uTLS" - по умолчанию "firefox", я обычно выбираю "chrome", по факту особо без разницы (главное чтобы не "android", могут быть проблемы с клиентами);
"Домен" - на самом деле это не домен, а адрес для подключения к вашему серверу. Можно оставить пустым, тогда панель автоматически подставит IP-адрес или домен, по которому вы обращаетесь в панели на сервере.
"ShortIds" - панель сгенерирует рандомный ID;
"Public Key", "Private Key" - можно кликнуть на "Get new keys", и панель сама сгенерирует новые для вас;
"Dest" и "Server names" - вот это самое интересное, это домен, под который вы будете маскироваться. По умолчанию панель предлагает маскировку под yahoo.com и www.yahoo.com с переадресацией на yahoo.com:443, но лучше выбрать какой-нибудь другой домен, как описано в предыдущей статье;
Fallbacks: |
протокол передачи: TCP AcceptProxyProtocol:	HTTP маскировка:
TLS: СШ Reality©:	XTLS© СЖ
Show: uTLS: домен:
dest:	yahoo.com :443
Server Names: yahoo.com,www.yahoo.com Shortlds: c793166c Private Key:
Public Key:
E Get New Key
SAHNmwubAXnenKEAcJQURUUfucOXLaqi
Сохраняем введенную форму, и - всё! Настройка завершена.
После этого на странице видим примерно вот это:
Если тыкнуть на кнопочку "Меню" соответствующую нужному протоколу, можно его активировать/деактивировать, сбросить счетчики трафика, добавить пользователей (в том числе сгенерировать разом N аккаунтов по шаблону), и самое главное - раскрыв (плюсиком) список пользователей, можно посмотреть настройки подключения для вбивания в клиенты для этого пользователя.
Нажав на значок QR-кода, панель покажет QR-код, который можно отсканировать камерой в мобильных клиентах (v2rayNG или Nekobox на Android, Wings X/FoXray или Shadowrocket на iOS). Подробнее о клиентах читайте в этой статье.
ремарочка
Обратите внимание, v2rayNG и Nekobox из сторов основаны на старой версии XRay и еще не поддерживают Reality, нужно переключиться на бета-канал или устанавливать APK с гитхаба.
QR-код
X
Нажмите на QR-код, чтобы скопировать
Email: "t3882vbj”
vless://17caff16-859a-4f14-ea9e-995f1dc1cb09@81.35.155.2:443?type=tcp&security=reality&fp=chrome&pbk=zlFm5XMXSZes7LYQ7FiIzpl5faEaKwptPFB3pKFmB0A&sni=yahoo.com&flow=xtls-rprx-vision&sid=49eab435#Reality-t3882vbj,shadowsocks,3x-ui
Нажав на иконку информации (с буквой "i") можно посмотреть настройки для вбивания в десктопные клиенты, в том числе и URL, который можно скопировать и вставить.
Под дестоп я рекомендую Nekobox (есть под Windows, Linux и билды от сообщества для MacOS). Подробнее о клиентах читайте в этой статье.
Подробнее
X
протокол | viess j Адрес	I 81.35.155.2 j
Порт	| 443 |
reality: включено | reality домен:
протокол передачи
хост
путь
пусто
0
Клиент
id	| 17caff16-859a-4f14-ea9e-995fldc1cb09
flow	I xtls-rprx-vision I
email t3882vbj
статус
использование
0В/0В(0В)
Общий расход
I
краткая настройка Nekobox
Если вы раньше им не пользовались, нужно переключить его на использование движка sing-box, Preferences -> Basic Settings -> Core.
Далее копируем URL подключения в буфер обмена, в Nekobox нажимаем Server -> Add profile from clipboard - вжух, и у нас в списке добавилось новое подключение!
Сохраняем, кликаем правой кнопкой мыши на новый сервер в списке, жмем Start, и проверяем подключение выбрав там же Current Select -> URL test.
Если все нормально, то галочками "VPN Mode" или "System proxy" можно завернуть трафик всех приложений на прокси.
Там же вы можете найти "subscription URL". Это - специальным образом сгенерированный список подключений для клиентов. Помните, вы указывали "Subscription" при создании пользователя? При запросе по такому subscription URL, сервер выдаст список настроек (сервера, ключи) для всех подключений с этим ID в поле subscription. Многие клиенты (включая v2rayNG, v2rayN, Nekobox, и другие) умеют автоматически либо по запросу скачивать настройки с таких URL и добавлять их к себе - таким образом, если вы добавили какие-то новые протоколы или решили поменять конфигурацию, пользователи могут легко получить новые параметры с вашего сервера.
Внимание: в отличие от 3X-UI, в X-UI поле Subscription по умолчанию не отображается и вообще функционал подписок по умолчанию отключен, его нужно активировать в настройках панели.
Дополнительные настройки
В менюшках панели можно найти много интересностей, например, можно запретить клиентам качать торренты (если у вас на сервере не слишком широкий канал или есть лимит трафика), добавить фильтр доменов рекламных сервисов, запретить доступ к порносайтам (ума не приложу, кому вообще в жизни может понадобиться такая ужасная функция).
А еще можно заблокировать доступ через сервер к IP-адресам и доменам Ирана, Китая и России (Россия здесь в отличной компании, не правда ли?) - это нужно если вы по ряду соображений настроили на клиентах доступ к российским сайтам напрямую, и хотите заблокировать их на сервере чтобы случайно не вылезти в рунет через него из-за ошибок в настройках.
Отключить подключение к диапазонам 1Р-адресов Ирана
Измените конфигурацию, чтобы отключить подключение к диапазонам 1Р-адресов Ирана. Перезагрузите панель для применения настроек.
Отключить подключение к доменам Ирана
Измените конфигурацию, чтобы отключить подключение к доменам Ирана.
Про опцию запрета IPv6 для Google
При включенном IPv6 в TUN-режиме есть одна проблема. Nekobox (возможно другие клиенты тоже, не проверял) в качестве "внутреннего" IPv6 адреса использует адрес из такого зарезервированного диапазона (ULA), где они должны генерироваться рандомно, и вероятность случайного совпадения двух рандомных адресов ничтожна. То есть такой адрес должен быть уникальным, но в Nekobox он наоборот захардкожен один для всех случаев, и в итоге некоторые сервисы, которые могут каким-то образом получать и анализировать локальные адреса клиентов (например, Google с его телеметрией в Chrome и в Android), считают всех клиентов с таким внутренним адресом... одним и тем же клиентом, после чего матчат их то ли с геолокацией, то ли с другими внутренними адресами, то ли и с тем и с тем, и в итоге в ряде случаев все пользователи Nekobox (и возможно других клиентов) для Гугла выглядят как юзеры откуда-то из Ирана, Китая или Азербайджана, вплоть до того, что со временем Гугл начинает считать публичный адрес прокси-сервера тоже иранским/китайским/etc, и это приводит к довольно забавным эффектам.
Варианты решения: не использовать TUN-режим (он же VPN mode), либо в правилах маршрутизации запретить доступ до Google по IPv6, что и позволяют сделать некоторые форки X-UI.
Улучшения и баги
Сначала о паре багов.
При установке в Docker не получается посмотреть логи Xray, панель выплевывает ошибку. Иногда что-то подсмотреть и понять можно используя команду "docker logs 3x-ui", но там логи довольно куцые. Будем надеяться, что в следущих версиях это исправят (зарепортите им там кто-нибудь, а?).
Второй баг - не удается создать несколько inbounds с одним и тем же портом, но разными listening IP - панель ругается. Из-за этого, например, нельзя реализовать классическую схему с XTLS-Reality слушающем на 443 порту на IPv4-адресе, и VLESS+Websockets или VLESS+gRPC для работы через CDN (как запасной вариант) на IPv6 адресе. Опять же, будем надется, что авторы это когда-нибудь пофиксят.
Из того, что можно улучшить при конфигурации - по умолчанию панель слушает на чистом HTTP, без шифрования. Вариантов решения несколько:
Если у вас есть домен (даже бесплатный от no-ip, freenom, dynu), то можно установить certbot от letsencrypt, запросить сертификат для своего домена, положить его в папку ./certs (внутри директории, куда вы склонировали 3x-ui) или сделать туда симлинки, и указать путь к ключам в панели в виде /root/cert/privkey.pem и /root/cert/public.crt. Не забудьте добавить post-update hook для рестарта контейнера;
Другой вариант - поменять в настройках listen IP для панели на 127.0.0.1 - после этого панель станет недоступна "снаружи", но на нее всегда можно будет зайти с помощью SSH:
"ssh -L 8080:localhost:2053 your_server_ip" - тогда вбивая в браузере http://localhost:8080, подключение через SSH пойдет на локальный порт 2053 сервера, где и слушает ваша панель;
Третий вариант - повесить на сетевой интерфейс на сервере еще один "виртуальный" IP-адрес: прописать в /etc/network/interfaces что-то типа
iface lo:1 inet static
address 192.88.99.1
network 192.88.99.0
netmask 255.255.255.0
и настроить панель, чтобы она слушала только на нем. Тогда "снаружи" панель будет недоступна, но при подключении через Shadowsocks/VLESS-прокси вы сможете до нее достучаться по этому адресу.
Telegram
И занимательное на последок. Панель может работать как Telegram-бот :)
Сначала обращаемся к боту BotFather и просим его зарегистрировать нового бота:
'O' o ^ A a 67% 19:41
<-
BotFather •
bot
/newbot 19:40vi,
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
19:40
Good. Now let's choose a username for your bot. It must end in 'bot'. Like this, for example: TetrisBot ortetris_bot.	19:40
19:41 Vi'
Sorry,
Он сгенерирует для вас API-токен. Его надо вставить в настройки панели, и там же указать ваш ID как админа (его можно запросить у бота userinfobot):
После этого можно разговаривать с панелью через Telegram - смотреть статистику, делать бэкапы конфигурации, и т.д.
'O' O * A a 67% 19:43
<-
bot
May 16
/Start i9:42
Hello^r %
Welcome to yourhostname management bot I can do some magics for you, please choose:
19:42
Server Usage	Get DB Backup
Get Inbounds	Deplete soon
Commands
__Hostname: yourhostname
i^X-UI Version: 1.4.6
^»IP:W. nb ■	172.17.0.1 172

Роберт Линн Асприн - Мир воров. История таверны «Распутный Единорог». Тени Санктуария. Сезон штормов

ПРЕДИСЛОВИЕ
1. ИМПЕРАТОР
— Но ведь, несомненно, Ваше Величество не может оспаривать факты!
Укутанный плащом Император не переставая ходил взад-вперед. Новый глава Рэнканской Империи в яростном несогласии закачал головой.
— Я не оспариваю факты, Килайт, — возразил он. — Но я ни за что не прикажу умертвить своего брата.
—  Сводного брата, — поправил его верховный советник.
— У нас в жилах течет кровь одного отца, — парировал Император, — и я не подниму руку, чтобы пролить ее.
— Но Ваше Величество, — взмолился Килайт, — Принц Кадакитис молод, он идеалист…
— …каковым я не являюсь, — закончил Император. — Твои потуги очевидны, Килайт. Его идеализм находится под моим покровительством. То, что Принц возглавит бунт против Императора — своего брата — так же невозможно, как и то, что я прикажу расправиться с ним.
— Мы опасаемся не Принца, Ваше Величество, а тех, кто может использовать его, — советник был неумолим. — Если одному из многочисленных лживых последователей удастся убедить Принца, что ваше правление Несправедливо и бесчеловечно, идеализм заставит его выступить против вас, хотя он и очень вас любит.
Шаги Императора замедлились; наконец он застыл на месте, опустив плечи.
— Ты прав, Килайт. Все мои советники правы, — в его голосе прозвучало утомленное смирение. — Необходимо что-либо предпринять, чтобы удалить моего брата из столицы, очага интриг. Однако мыслям о физическом устранении я буду противиться до последней возможности.
— Если у Вашего Величества есть какой-то другой план, в который вы хотите посвятить меня, я сочту за честь первым похвалить его, — предложил Килайт, мудро скрывая торжество.
— Готового плана нет, — признал Император. — И я не смогу полностью сосредоточиться на нем до тех пор, пока не будет решена другая задача, тяжким бременем лежащая у меня на сердце. Ну, еще несколько дней Империя может не опасаться моего брата?
— Что за вопрос требует вашего внимания? — спросил советник, игнорируя попытку своего повелителя обернуть все в шутку. — Может, я чем-то смогу помочь вам…
— Пустяки. Незначительный вопрос, но тем не менее неприятный. Я должен назначить нового военного губернатора Санктуария.
— Санктуария? — нахмурился Килайт.
— Небольшой городок на южной окраине Империи. Мне самому пришлось потрудиться, чтобы отыскать его — со всех современных карт его давно стерли. Какой бы ни была причина его появления на свет, сейчас ее, очевидно, больше нет. Он увядает, умирает, превратившись в приют мелких преступников и разорившихся искателей приключений. Однако это все же часть Империи.
— И городу нужен новый военный губернатор, — тихо пробормотал Килайт.
— Прежний уходит на покой, — пожал плечами Император. — Это проблема. Город Империи с военным гарнизоном обязан иметь губернатора — человека, достаточно хорошо знающего Империю и способного стать там представителем столицы. И человек этот должен быть достаточно тверд для того, чтобы укреплять закон и порядок — в чем прежний губернатор, боюсь, был не очень-то ловок.
Он машинально снова начал расхаживать.
— Трудность состоит в том, что такому человеку в Империи можно найти лучшее место. Мне кажется преступным посылать кого-то стоящего в такое незначительное затерянное место.
— Не говорите «затерянное». Ваше Величество, — улыбнулся Килайт. — Скажите лучше: «удаленное от очага интриг».
Император долго смотрел на советника. Затем они оба расхохотались.
,nerwet,trackerslist
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме (+572 постов - )