200 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 Полное руководство по 3x-ui: Установка, Настройка и Решение проблем
Это исчерпывающее руководство по панели **3x-ui** (продвинутая версия Xray-ui от MHSanaei), составленное на основе официальной вики проекта.
---
## 📂 Содержание
1. [[#1. Установка|Установка (One-line, Docker, Manual)]]
2. [[#2. Начальная настройка|Начальная настройка и Безопасность]]
3. [[#3. Управление через CLI|Управление через терминал (CLI)]]
4. [[#4. Конфигурация и SSL|Конфигурация, SSL и Fail2Ban]]
5. [[#5. Reverse Proxy (Nginx, Caddy)|Reverse Proxy (Nginx, Caddy)]]
6. [[#6. API и Переменные окружения|API и Переменные окружения]]
7. [[#7. Продвинутые функции (Telegram, WARP, TOR)|Продвинутые функции (Telegram, WARP, TOR)]]
8. [[#8. Решение проблем и FAQ|Решение проблем и FAQ]]
---
## 1. Установка
### 🛠 Установка одной командой (Рекомендуется)
Самый быстрый способ установки на чистый сервер (Ubuntu, Debian, CentOS).
1. Обновите систему и установите `curl`:
```bash
apt update && apt upgrade -y && apt install curl -y
```
2. Выполните команду установки:
```bash
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
```
3. В процессе скрипт предложит настроить порт, логин и пароль.
### 🐳 Установка через Docker
#### Использование Docker Compose
1. Создайте файл `compose.yml`:
```yaml
services:
3xui:
image: ghcr.io/mhsanaei/3x-ui:latest
container_name: 3xui_app
volumes:
- $PWD/db/:/etc/x-ui/
- $PWD/cert/:/root/cert/
environment:
XRAY_VMESS_AEAD_FORCED: "false"
XUI_ENABLE_FAIL2BAN: "true"
tty: true
network_mode: host
restart: unless-stopped
```
2. Запустите: `docker compose up -d`
### 🏗 Ручная установка (Manual)
Для специфических систем или ручного контроля:
```bash
# Определение архитектуры
ARCH=$(uname -m)
case "${ARCH}" in
x86_64 | x64 | amd64) XUI_ARCH="amd64" ;;
arm64 | aarch64) XUI_ARCH="arm64" ;;
*) XUI_ARCH="amd64" ;;
esac
# Скачивание и установка
wget https://github.com/MHSanaei/3x-ui/releases/latest/download/x-ui-linux-${XUI_ARCH}.tar.gz
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
mv x-ui/ /usr/local/
systemctl enable x-ui && systemctl restart x-ui
```
---
## 2. Начальная настройка и Безопасность
После установки панель доступна по адресу: `http://<IP_ВАШЕГО_СЕРВЕРА>:2053`
> [!warning] Данные по умолчанию
> Если вы не меняли их при установке:
> - **Логин:** `admin`
> - **Пароль:** `admin`
>
> **ОБЯЗАТЕЛЬНО измените их в разделе "Panel Settings" -> "Authentication"!**
### Рекомендуемые шаги безопасности:
1. **Смена порта:** Измените стандартный `2053` на любой случайный (например, `49231`).
2. **Web Base Path:** Установите секретный путь, например `/mysecretpanel/`. Теперь адрес будет `http://ip:port/mysecretpanel/`. Это защитит от автоматического сканирования.
3. **2FA:** Включите двухфакторную аутентификацию (Google Authenticator) в настройках.
---
## 3. Управление через терминал (CLI)
Команда `x-ui` запускает интерактивное меню. Основные флаги:
| Команда | Описание |
| :--- | :--- |
| `x-ui` | Основное меню управления |
| `x-ui status` | Текущий статус сервиса |
| `x-ui start/stop/restart` | Управление работой панели |
| `x-ui enable/disable` | Включение/отключение автозагрузки |
| `x-ui log` | Просмотр логов в реальном времени |
| `x-ui update` | Обновление панели и Xray-core |
| `x-ui install/uninstall` | Установка или полное удаление |
---
## 4. Конфигурация, SSL и Fail2Ban
### 🔐 Получение SSL сертификата
Для работы протоколов Reality, VLESS-gRPC и защиты самой панели.
- **Через меню x-ui:** Запустите `x-ui` и выберите пункт `SSL Certificate Management`. Скрипт поможет выпустить сертификат через ACME (Let's Encrypt).
- **Cloudflare API:** Если домен на Cloudflare, можно использовать Global API Key для автоматического подтверждения прав на домен.
### 🛡 Fail2Ban (Ограничение по IP)
Для предотвращения брутфорса и ограничения количества одновременных подключений на одного клиента:
1. В терминале: `x-ui` -> `IP Limit Management`.
2. В панели (Xray Configs): установите `Access log` -> `./access.log`.
3. Перезапустите Xray. Система начнет блокировать нарушителей через фаервол сервера.
---
## 5. Reverse Proxy (Nginx, Caddy)
### Nginx (рекомендуемый конфиг)
Позволяет повесить панель на стандартный 443 порт вместе с сайтом.
```nginx
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:2053; # Порт вашей панели
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# Для работы подписок
location /sub {
proxy_pass http://127.0.0.1:2096; # Порт подписок
proxy_set_header Host $http_host;
}
```
---
## 6. API и Переменные окружения
Панель полностью управляется через REST API.
### Основные эндпоинты:
- Авторизация: `POST /login`
- Список клиентов: `GET /panel/api/inbounds/list`
- Добавление клиента: `POST /panel/api/inbounds/addClient`
- Статистика: `GET /panel/api/inbounds/getClientTraffics/:email`
### Переменные окружения (Docker):
- `XUI_DB_FOLDER`: Путь к базе данных (дефолт `/etc/x-ui`).
- `XUI_LOG_LEVEL`: Уровень логирования (debug, info, warn, error).
- `XUI_BIN_FOLDER`: Путь к бинарным файлам Xray.
---
## 7. Продвинутые функции (Telegram, WARP, TOR)
### 💭 Telegram бот
Бот присылает уведомления о входе, нагрузке на сервер и делает автоматические бэкапы БД.
1. Создайте бота через `@BotFather`.
2. Узнайте свой ID через `@userinfobot`.
3. В **Panel Settings** введите Token и Chat ID.
4. Установите расписание (Cron), например `@daily` или `@every 12h`.
### ➡️ Cloudflare WARP
Используется, если ваш IP сервера забанен в Google (403), ChatGPT или вы хотите скрыть исходящий IP.
1. В разделе **Outbounds** нажмите кнопку **WARP** -> Создать.
2. В **Routing Rules** добавьте правило:
- **Outbound Tag:** `warp`
- **Domain:** `geosite:google, openai.com, netflix.com`
---
## 8. Решение проблем и FAQ
- **Ошибка "Database is locked":** Возникает из-за медленной записи логов. В настройках Xray установите `Access Log` в значение `none`.
- **Ошибка 400 (Bad Request):** Проверьте синхронизацию времени на сервере (`timedatectl`). Разница более 30 секунд ломает протоколы.
- **Панель не открывается после смены порта:** Проверьте фаервол:
```bash
ufw allow <ваш_порт>/tcp
# или
iptables -A INPUT -p tcp --dport <ваш_порт> -j ACCEPT
```
- **Сброс настроек:** Если вы забыли пароль или порт, введите `x-ui` в терминале и выберите **Reset Settings**. Это вернет доступ по `admin/admin` на порт `2053`.
---
#3x_ui #xray #vpn #proxy #tutorial #linux #devops