|
@@ -0,0 +1,531 @@
|
|
|
+[English](/README.md) | [汉语](/README.zh_Hans.md) | [Español](/README.es_ES.md) | [Русский](/README.ru_RU.md)
|
|
|
+
|
|
|
+<p align="center"><a href="#"><img src="./media/3X-UI.png" alt="Image"></a></p>
|
|
|
+
|
|
|
+**Продвинутая веб-панель • Построена на основе Xray Core**
|
|
|
+
|
|
|
+[![](https://img.shields.io/github/v/release/mhsanaei/3x-ui.svg)](https://github.com/MHSanaei/3x-ui/releases)
|
|
|
+[![](https://img.shields.io/github/actions/workflow/status/mhsanaei/3x-ui/release.yml.svg)](#)
|
|
|
+[![GO Version](https://img.shields.io/github/go-mod/go-version/mhsanaei/3x-ui.svg)](#)
|
|
|
+[![Downloads](https://img.shields.io/github/downloads/mhsanaei/3x-ui/total.svg)](#)
|
|
|
+[![License](https://img.shields.io/badge/license-GPL%20V3-blue.svg?longCache=true)](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
|
|
+
|
|
|
+> **Отказ от ответственности:** Этот проект предназначен только для личного обучения и общения. Пожалуйста, не используйте его в незаконных целях и не применяйте в производственной среде.
|
|
|
+
|
|
|
+**Если этот проект оказался полезным для вас, вы можете оценить его:** :star2:
|
|
|
+
|
|
|
+<p align="left">
|
|
|
+ <a href="https://buymeacoffee.com/mhsanaei" target="_blank">
|
|
|
+ <img src="./media/buymeacoffe.png" alt="Image">
|
|
|
+ </a>
|
|
|
+</p>
|
|
|
+
|
|
|
+- USDT (TRC20): `TXncxkvhkDWGts487Pjqq1qT9JmwRUz8CC`
|
|
|
+- MATIC (polygon): `0x41C9548675D044c6Bfb425786C765bc37427256A`
|
|
|
+- LTC (Litecoin): `ltc1q2ach7x6d2zq0n4l0t4zl7d7xe2s6fs7a3vspwv`
|
|
|
+
|
|
|
+## Установка и обновление
|
|
|
+
|
|
|
+```
|
|
|
+bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
|
|
|
+```
|
|
|
+
|
|
|
+## Установка пользовательской версии
|
|
|
+
|
|
|
+Чтобы установить нужную вам версию, добавьте номер версии в конец команды установки, например, версия `v2.3.13`:
|
|
|
+
|
|
|
+```
|
|
|
+bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) v2.3.13
|
|
|
+```
|
|
|
+
|
|
|
+## SSL Сертификат
|
|
|
+
|
|
|
+<details>
|
|
|
+ <summary>Нажмите для получения информации о SSL сертификате</summary>
|
|
|
+
|
|
|
+### ACME
|
|
|
+
|
|
|
+Для управления SSL сертификатами с помощью ACME:
|
|
|
+
|
|
|
+1. Убедитесь, что ваш домен правильно настроен и указывает на сервер.
|
|
|
+2. Выполните команду `x-ui` в терминале, затем выберите «Управление SSL сертификатами».
|
|
|
+3. Вам будут предложены следующие опции:
|
|
|
+
|
|
|
+ - **Получить SSL:** Получить SSL сертификаты.
|
|
|
+ - **Отозвать:** Отозвать существующие SSL сертификаты.
|
|
|
+ - **Принудительное обновление:** Принудительно обновить SSL сертификаты.
|
|
|
+
|
|
|
+### Certbot
|
|
|
+
|
|
|
+Для установки и использования Certbot:
|
|
|
+
|
|
|
+```sh
|
|
|
+apt-get install certbot -y
|
|
|
+certbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com
|
|
|
+certbot renew --dry-run
|
|
|
+```
|
|
|
+
|
|
|
+### Cloudflare
|
|
|
+
|
|
|
+Скрипт управления включает встроенное приложение для получения 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" (см. скриншот ниже):
|
|
|
+ ![](media/APIKey1.PNG)
|
|
|
+4. Возможно, вам потребуется повторно пройти аутентификацию. После этого ключ API будет отображен (см. скриншот ниже):
|
|
|
+ ![](media/APIKey2.png)
|
|
|
+
|
|
|
+При использовании просто введите ваше `доменное имя`, `электронную почту` и `API KEY`. Схема приведена ниже:
|
|
|
+ ![](media/DetailEnter.png)
|
|
|
+
|
|
|
+</details>
|
|
|
+
|
|
|
+## Ручная установка и обновление
|
|
|
+
|
|
|
+<details>
|
|
|
+ <summary>Нажмите для получения информации о ручной установке</summary>
|
|
|
+
|
|
|
+#### Использование
|
|
|
+
|
|
|
+1. Чтобы скачать последнюю версию сжатого пакета напрямую на ваш сервер, выполните следующую команду:
|
|
|
+
|
|
|
+```sh
|
|
|
+ARCH=$(uname -m)
|
|
|
+case "${ARCH}" in
|
|
|
+ x86_64 | x64 | amd64) XUI_ARCH="amd64" ;;
|
|
|
+ i*86 | x86) XUI_ARCH="386" ;;
|
|
|
+ armv8* | armv8 | arm64 | aarch64) XUI_ARCH="arm64" ;;
|
|
|
+ armv7* | armv7) XUI_ARCH="armv7" ;;
|
|
|
+ armv6* | armv6) XUI_ARCH="armv6" ;;
|
|
|
+ armv5* | armv5) XUI_ARCH="armv5" ;;
|
|
|
+ s390x) echo 's390x' ;;
|
|
|
+ *) XUI_ARCH="amd64" ;;
|
|
|
+esac
|
|
|
+
|
|
|
+
|
|
|
+wget https://github.com/MHSanaei/3x-ui/releases/latest/download/x-ui-linux-${XUI_ARCH}.tar.gz
|
|
|
+```
|
|
|
+
|
|
|
+2. После загрузки сжатого пакета выполните следующие команды для установки или обновления x-ui:
|
|
|
+
|
|
|
+```sh
|
|
|
+ARCH=$(uname -m)
|
|
|
+case "${ARCH}" in
|
|
|
+ x86_64 | x64 | amd64) XUI_ARCH="amd64" ;;
|
|
|
+ i*86 | x86) XUI_ARCH="386" ;;
|
|
|
+ armv8* | armv8 | arm64 | aarch64) XUI_ARCH="arm64" ;;
|
|
|
+ armv7* | armv7) XUI_ARCH="armv7" ;;
|
|
|
+ armv6* | armv6) XUI_ARCH="armv6" ;;
|
|
|
+ armv5* | armv5) XUI_ARCH="armv5" ;;
|
|
|
+ s390x) echo 's390x' ;;
|
|
|
+ *) XUI_ARCH="amd64" ;;
|
|
|
+esac
|
|
|
+
|
|
|
+cd /root/
|
|
|
+rm -rf x-ui/ /usr/local/x-ui/ /usr/bin/x-ui
|
|
|
+tar zxvf x-ui-linux-${XUI_ARCH}.tar.gz
|
|
|
+chmod +x x-ui/x-ui x-ui/bin/xray-linux-* x-ui/x-ui.sh
|
|
|
+cp x-ui/x-ui.sh /usr/bin/x-ui
|
|
|
+cp -f x-ui/x-ui.service /etc/systemd/system/
|
|
|
+mv x-ui/ /usr/local/
|
|
|
+systemctl daemon-reload
|
|
|
+systemctl enable x-ui
|
|
|
+systemctl restart x-ui
|
|
|
+```
|
|
|
+
|
|
|
+</details>
|
|
|
+
|
|
|
+## Установка с помощью Docker
|
|
|
+
|
|
|
+<details>
|
|
|
+ <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».
|
|
|
+2. Вам будут предложены следующие опции:
|
|
|
+
|
|
|
+ - **Изменить длительность блокировки:** Отрегулируйте длительность блокировок.
|
|
|
+ - **Разблокировать всех:** Снять все текущие блокировки.
|
|
|
+ - **Проверить логи:** Просмотреть логи.
|
|
|
+ - **Статус 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:
|
|
|
+ ![Botfather](./media/botfather.png)
|
|
|
+
|
|
|
+- Создайте новый бот с помощью команды /newbot: Вас попросят ввести 2 вопроса, имя и имя пользователя для вашего бота. Обратите внимание, что имя пользователя должно заканчиваться на слово "bot".
|
|
|
+ ![Создать нового бота](./media/newbot.png)
|
|
|
+
|
|
|
+- Запустите созданного бота. Ссылку на вашего бота можно найти здесь.
|
|
|
+ ![токен](./media/token.png)
|
|
|
+
|
|
|
+- Перейдите в панель и настройте параметры Телеграм-бота следующим образом:
|
|
|
+![Настройки панели](./media/panel-bot-config.png)
|
|
|
+
|
|
|
+Введите токен вашего бота в поле ввода номер 3.
|
|
|
+Введите ID пользователя в поле ввода номер 4. Telegram-аккаунты с этим ID будут администраторами бота. (Вы можете ввести несколько ID, разделяя их запятой)
|
|
|
+
|
|
|
+- Как получить ID пользователя Telegram? Используйте этот [бот](https://t.me/useridinfobot), начните бота, и он предоставит вам ID пользователя Telegram.
|
|
|
+![ID пользователя](./media/user-id.png)
|
|
|
+
|
|
|
+</details>
|
|
|
+
|
|
|
+## API маршруты
|
|
|
+
|
|
|
+<details>
|
|
|
+ <summary>Нажмите для получения информации о маршрутах API</summary>
|
|
|
+
|
|
|
+#### Использование
|
|
|
+
|
|
|
+- `/login` с `POST` данными пользователя: `{username: '', password: ''}` для входа
|
|
|
+- `/panel/api/inbounds` базовый маршрут для следующих действий:
|
|
|
+
|
|
|
+| Метод | Путь | Действие
|
|
|
+| :---: | -----------------------------------| -------------------------------------------
|
|
|
+| `GET` | `"/list"` | Получить все входящие соединения
|
|
|
+| `GET` | `"/get/:id"` | Получить входящее соединение с inbound.id
|
|
|
+| `GET` | `"/getClientTraffics/:email"` | Получить трафик клиента по электронной почте
|
|
|
+| `GET` | `"/getClientTrafficsById/:id"` | Получить трафик клиента по ID
|
|
|
+| `GET` | `"/createbackup"` | Бот Telegram отправляет резервную копию администраторам
|
|
|
+| `POST` | `"/add"` | Добавить входящее соединение
|
|
|
+| `POST` | `"/del/:id"` | Удалить входящее соединение
|
|
|
+| `POST` | `"/update/:id"` | Обновить входящее соединение
|
|
|
+| `POST` | `"/clientIps/:email"` | IP-адрес клиента
|
|
|
+| `POST` | `"/clearClientIps/:email"` | Очистить IP-адрес клиента
|
|
|
+| `POST` | `"/addClient"` | Добавить клиента к входящему соединению
|
|
|
+| `POST` | `"/:id/delClient/:clientId"` | Удалить клиента по clientId\*
|
|
|
+| `POST` | `"/updateClient/:clientId"` | Обновить клиента по clientId\*
|
|
|
+| `POST` | `"/:id/resetClientTraffic/:email"` | Сбросить трафик клиента
|
|
|
+| `POST` | `"/resetAllTraffics"` | Сбросить трафик всех входящих соединений
|
|
|
+| `POST` | `"/resetAllClientTraffics/:id"` | Сбросить трафик всех клиентов в входящем соединении
|
|
|
+| `POST` | `"/delDepletedClients/:id"` | Удалить истекших клиентов в входящем соединении (-1: все)
|
|
|
+| `POST` | `"/onlines"` | Получить онлайн пользователей (список электронных почт)
|
|
|
+
|
|
|
+\*- Поле `clientId` должно быть заполнено следующим образом:
|
|
|
+
|
|
|
+- `client.id` для VMESS и VLESS
|
|
|
+- `client.password` для TROJAN
|
|
|
+- `client.email` для Shadowsocks
|
|
|
+
|
|
|
+</details>
|
|
|
+
|
|
|
+
|
|
|
+- [API-документация](https://documenter.getpostman.com/view/16802678/2s9YkgD5jm)
|
|
|
+- [<img src="https://run.pstmn.io/button.svg" alt="Run In Postman" style="width: 128px; height: 32px;">](https://app.getpostman.com/run-collection/16802678-1a4c9270-ac77-40ed-959a-7aa56dc4a415?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D16802678-1a4c9270-ac77-40ed-959a-7aa56dc4a415%26entityType%3Dcollection%26workspaceId%3D2cd38c01-c851-4a15-a972-f181c23359d9)
|
|
|
+</details>
|
|
|
+
|
|
|
+## Переменные Среды
|
|
|
+
|
|
|
+<details>
|
|
|
+ <summary>Нажмите для получения информации о переменных среды</summary>
|
|
|
+
|
|
|
+#### Использование
|
|
|
+
|
|
|
+| Переменная | Тип | Значение по умолчанию |
|
|
|
+| ---------------- | :------------------------------------------: | :-------------------- |
|
|
|
+| XUI_LOG_LEVEL | `"debug"` \| `"info"` \| `"warn"` \| `"error"` | `"info"` |
|
|
|
+| XUI_DEBUG | `boolean` | `false` |
|
|
|
+| XUI_BIN_FOLDER | `string` | `"bin"` |
|
|
|
+| XUI_DB_FOLDER | `string` | `"/etc/x-ui"` |
|
|
|
+| XUI_LOG_FOLDER | `string` | `"/var/log"` |
|
|
|
+
|
|
|
+Пример:
|
|
|
+
|
|
|
+```sh
|
|
|
+XUI_BIN_FOLDER="bin" XUI_DB_FOLDER="/etc/x-ui" go build main.go
|
|
|
+```
|
|
|
+
|
|
|
+</details>
|
|
|
+
|
|
|
+## Предварительный Просмотр
|
|
|
+
|
|
|
+![1](./media/1.png)
|
|
|
+![2](./media/2.png)
|
|
|
+![3](./media/3.png)
|
|
|
+![4](./media/4.png)
|
|
|
+![5](./media/5.png)
|
|
|
+![6](./media/6.png)
|
|
|
+![7](./media/7.png)
|
|
|
+
|
|
|
+## Особая благодарность
|
|
|
+
|
|
|
+- [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._
|
|
|
+
|
|
|
+## Звездочеты со временем
|
|
|
+
|
|
|
+[![Stargazers over time](https://starchart.cc/MHSanaei/3x-ui.svg)](https://starchart.cc/MHSanaei/3x-ui)
|