> **Отказ от ответственности:** Этот проект предназначен только для личного обучения и общения. Пожалуйста, не используйте его в незаконных целях и не применяйте в производственной среде.
**Если этот проект оказался полезным для вас, вы можете оценить его:** :star2:
Скрипт управления включает встроенное приложение для получения SSL сертификата через Cloudflare. Чтобы использовать этот скрипт для запроса сертификата, вам потребуется следующее:
- Электронная почта, зарегистрированная в Cloudflare
- Глобальный API-ключ Cloudflare
- Доменное имя должно быть разрешено на текущий сервер через Cloudflare
**Как получить глобальный API-ключ Cloudflare:**
1. Выполните команду `x-ui` в терминале, затем выберите «Cloudflare SSL Certificate».
2. Посетите ссылку: [Cloudflare API Tokens](https://dash.cloudflare.com/profile/api-tokens).
3. Нажмите на "View Global API Key" (см. скриншот ниже):

4. Возможно, вам потребуется повторно пройти аутентификацию. После этого ключ API будет отображен (см. скриншот ниже):

При использовании просто введите ваше `доменное имя`, `электронную почту` и `API KEY`. Схема приведена ниже:

</details>
## Ручная установка и обновление
<details>
<summary>Нажмите для получения информации о ручной установке</summary>
#### Использование
1. Чтобы скачать последнюю версию сжатого пакета напрямую на ваш сервер, выполните следующую команду:
<summary>Нажмите для получения информации о Docker</summary>
#### Использование
1.**Установите Docker:**
```sh
bash <(curl -sSL https://get.docker.com)
```
2.**Клонируйте репозиторий проекта:**
```sh
git clone https://github.com/MHSanaei/3x-ui.git
cd 3x-ui
```
3.**Запустите сервис:**
```sh
docker compose up -d
```
**OR**
```sh
docker run -itd \
-e XRAY_VMESS_AEAD_FORCED=false \
-v $PWD/db/:/etc/x-ui/ \
-v $PWD/cert/:/root/cert/ \
--network=host \
--restart=unless-stopped \
--name 3x-ui \
ghcr.io/mhsanaei/3x-ui:latest
```
4.**Обновите до последней версии:**
```sh
cd 3x-ui
docker compose down
docker compose pull 3x-ui
docker compose up -d
```
5.**Удалите 3x-ui из Docker:**
```sh
docker stop 3x-ui
docker rm 3x-ui
cd --
rm -r 3x-ui
```
</details>
## Рекомендуемая ОС
- Ubuntu 20.04+
- Debian 11+
- CentOS 8+
- Fedora 36+
- Arch Linux
- Parch Linux
- Manjaro
- Armbian
- AlmaLinux 9+
- Rocky Linux 9+
- Oracle Linux 8+
- OpenSUSE Tubleweed
## Поддерживаемые архитектуры и устройства
<details>
<summary>Нажмите для получения информации о поддерживаемых архитектурах и устройствах</summary>
Наша платформа поддерживает разнообразные архитектуры и устройства, обеспечивая гибкость в различных вычислительных средах. Вот основные архитектуры, которые мы поддерживаем:
- **amd64**: Эта распространенная архитектура является стандартом для персональных компьютеров и серверов, обеспечивая беспроблемную работу большинства современных операционных систем.
- **x86 / i386**: Широко используется в настольных и портативных компьютерах. Эта архитектура имеет широкую поддержку со стороны множества операционных систем и приложений, включая, но не ограничиваясь, Windows, macOS и Linux.
- **armv8 / arm64 / aarch64**: Предназначена для современных мобильных и встроенных устройств, таких как смартфоны и планшеты. Эта архитектура представлена устройствами, такими как Raspberry Pi 4, Raspberry Pi 3, Raspberry Pi Zero 2/Zero 2 W, Orange Pi 3 LTS и другими.
- **armv7 / arm / arm32**: Служит архитектурой для старых мобильных и встроенных устройств, оставаясь широко используемой в таких устройствах, как Orange Pi Zero LTS, Orange Pi PC Plus, Raspberry Pi 2 и других.
- **armv6 / arm / arm32**: Ориентирована на очень старые встроенные устройства, эта архитектура, хотя и менее распространенная, все еще используется. Например, такие устройства, как Raspberry Pi 1, Raspberry Pi Zero/Zero W, полагаются на эту архитектуру.
- **armv5 / arm / arm32**: Более старая архитектура, ассоциируемая с ранними встроенными системами, сегодня менее распространена, но все еще может быть найдена в устаревших устройствах, таких как ранние версии Raspberry Pi и некоторые старые смартфоны.
- **s390x**: Эта архитектура обычно используется в мейнфреймах IBM и обеспечивает высокую производительность и надежность для корпоративных рабочих нагрузок.
</details>
## Языки
- Английский
- Фарси
- Китайский
- Русский
- Вьетнамский
- Испанский
- Индонезийский
- Украинский
- Турецкий
## Функции
- Мониторинг состояния системы
- Поиск по всем входящим подключениям и клиентам
- Темная/светлая тема
- Поддержка нескольких пользователей и протоколов
- Поддержка протоколов, включая VMESS, VLESS, Trojan, Shadowsocks, Dokodemo-door, Socks, HTTP, WireGuard
- Поддержка протоколов XTLS, включая RPRX-Direct, Vision, REALITY
- Статистика трафика, ограничение трафика, ограничение по времени истечения
- Настраиваемые шаблоны конфигурации Xray
- Поддержка панели доступа через HTTPS (самостоятельно предоставленное доменное имя + SSL сертификат)
- Поддержка установки SSL-сертификата в один клик и автоматического обновления
- Для получения более продвинутых настроек обратитесь к панели
- Исправлены маршруты API (настройка пользователя будет создана с API)
- Поддержка изменения конфигураций по различным элементам, предоставленным в панели
- Поддержка экспорта/импорта базы данных из панели
## Настройки панели по умолчанию
<details>
<summary>Нажмите для получения информации о настройках по умолчанию</summary>
### Имя пользователя и пароль & webbasepath:
Эти параметры будут сгенерированы случайным образом, если вы пропустите их изменение.
- **Порт:** порт панели по умолчанию — `2053`
### Управление базой данных:
Вы можете удобно выполнять резервное копирование и восстановление базы данных прямо из панели.
- **Путь к базе данных:**
-`/etc/x-ui/x-ui.db`
### Веб-базовый путь
1.**Сбросить веб-базовый путь:**
- Откройте терминал.
- Выполните команду `x-ui`.
- Выберите опцию `Сбросить веб-базовый путь`.
2.**Генерация или настройка пути:**
- Путь будет случайным образом сгенерирован, или вы можете ввести пользовательский путь.
3.**Просмотр текущих настроек:**
- Чтобы просмотреть текущие настройки, используйте команду `x-ui settings` в терминале или опцию `View Current Settings` в `x-ui`.
### Рекомендации по безопасности:
- Для повышения безопасности используйте длинное случайное слово в структуре вашего URL.
**Примеры:**
-`http://ip:port/*webbasepath*/panel`
-`http://domain:port/*webbasepath*/panel`
</details>
## Настройка WARP
<details>
<summary>Нажмите для получения информации о настройке WARP</summary>
#### Использование
**Для версий `v2.1.0` и новее:**
WARP встроен, и дополнительная установка не требуется. Просто включите необходимую конфигурацию в панели.
**Для версий до `v2.1.0`:**
1. Выполните команду `x-ui` в терминале, затем выберите «Управление WARP».
2. Вам будут предложены следующие опции:
- **Тип учетной записи (free, plus, team):** Выберите соответствующий тип учетной записи.
- **Включить/Выключить WireProxy:** Включите или отключите WireProxy.
- **Удалить WARP:** Удалите приложение WARP.
3. Настройте параметры по мере необходимости в панели.
</details>
## Ограничение IP
<details>
<summary>Нажмите для получения информации об ограничении IP</summary>
#### Использование
**Примечание:** Ограничение IP не будет работать корректно при использовании IP Tunnel.
- **Для версий до `v1.6.1`:**
- Ограничение IP встроено в панель.
**Для версий `v1.7.0` и новее:**
Чтобы включить функциональность ограничения IP, вам нужно установить `fail2ban` и его необходимые файлы, выполнив следующие шаги:
1. Выполните команду `x-ui` в терминале, затем выберите «Управление ограничением IP».
- **Разблокировать всех:** Снять все текущие блокировки.
- **Проверить логи:** Просмотреть логи.
- **Статус Fail2ban:** Проверьте статус `fail2ban`.
- **Перезапустить Fail2ban:** Перезапустите службу `fail2ban`.
- **Удалить Fail2ban:** Удалите Fail2ban с конфигурацией.
3. Добавьте путь к логам доступа в панели, установив `Xray Configs/log/Access log` в `./access.log`, затем сохраните и перезапустите xray.
- **Для версий до `v2.1.3`:**
- Вам нужно вручную установить путь к логам доступа в вашей конфигурации Xray:
```sh
"log": {
"access": "./access.log",
"dnsLog": false,
"loglevel": "warning"
},
```
- **Для версий `v2.1.3` и новее:**
- Есть возможность настройки `access.log` непосредственно из панели.
</details>
## Телеграм-бот
<details>
<summary>Нажмите для получения информации о Телеграм-боте</summary>
#### Использование
Веб-панель поддерживает уведомления и функции, такие как ежедневный трафик, вход в панель, резервное копирование базы данных, состояние системы, информация о клиентах и другие, через Телеграм-бота. Чтобы использовать бота, вам нужно настроить параметры, связанные с ботом, в панели, включая:
- Токен Telegram
- ID чата админа(-ов)
- Время уведомлений (в синтаксисе cron)
- Уведомления о дате истечения
- Уведомления о лимите трафика
- Резервное копирование базы данных
- Уведомления о загрузке ЦП
**Синтаксис примеров:**
-`30 * * * * *` - Уведомление на 30-й секунде каждого часа
-`0 */10 * * * *` - Уведомление на первой секунде каждых 10 минут
-`@hourly` - Ежечасное уведомление
-`@daily` - Ежедневное уведомление (00:00 утра)
-`@weekly` - Еженедельное уведомление
-`@every 8h` - Уведомление каждые 8 часов
### Возможности Телеграм-бота
- Периодические отчеты
- Уведомления о входе
- Уведомления о пороге ЦП
- Уведомления о времени истечения и трафике заранее
- Поддержка меню отчета о клиентах, если имя пользователя клиента добавлено в конфигурацию пользователя
- Поддержка отчета о трафике через Telegram, поиск по UUID (VMESS/VLESS) или паролю (TROJAN) - анонимно
- Меню-бот
- Поиск клиента по электронной почте (только администратор)
- Проверка всех входящих соединений
- Проверка состояния сервера
- Проверка истекших пользователей
- Получение резервных копий по запросу и в периодических отчетах
- Многоязычный бот
### Настройка Телеграм-бота
- Начните [Botfather](https://t.me/BotFather) в вашем аккаунте Telegram:

- Создайте новый бот с помощью команды /newbot: Вас попросят ввести 2 вопроса, имя и имя пользователя для вашего бота. Обратите внимание, что имя пользователя должно заканчиваться на слово "bot".

- Запустите созданного бота. Ссылку на вашего бота можно найти здесь.

- Перейдите в панель и настройте параметры Телеграм-бота следующим образом:

Введите токен вашего бота в поле ввода номер 3.
Введите ID пользователя в поле ввода номер 4. Telegram-аккаунты с этим ID будут администраторами бота. (Вы можете ввести несколько ID, разделяя их запятой)
- Как получить ID пользователя Telegram? Используйте этот [бот](https://t.me/useridinfobot), начните бота, и он предоставит вам ID пользователя Telegram.

</details>
## API маршруты
<details>
<summary>Нажмите для получения информации о маршрутах API</summary>
#### Использование
-`/login`с`POST` данными пользователя: `{username: '', password: ''}` для входа
-`/panel/api/inbounds` базовый маршрут для следующих действий:
XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.go
```
</details>
## Предварительный Просмотр







## Особая благодарность
- [alireza0](https://github.com/alireza0/)
## Подтверждение
- [Iran v2ray rules](https://github.com/chocolate4u/Iran-v2ray-rules) (License: **GPL-3.0**): _Enhanced v2ray/xray and v2ray/xray-clients routing rules with built-in Iranian domains and a focus on security and adblocking._
- [Vietnam Adblock rules](https://github.com/vuong2023/vn-v2ray-rules) (License: **GPL-3.0**): _A hosted domain hosted in Vietnam and blocklist with the most efficiency for Vietnamese._
## Звездочеты со временем
[](https://starchart.cc/MHSanaei/3x-ui)