October 11

Пошаговая инструкция по настройке 3X-UI

0. Создание SSH-ключа и настройка Termius

Создание SSH-ключа на Windows 10/11:

  1. Откройте PowerShell (Windows 10) или Терминал (Windows 11).
  2. Выполните команду для создания SSH-ключа:
    ssh-keygen -t ed25519
  3. Вам будет предложено ответить на несколько вопросов:
    - Первый запрос: "Enter file in which to save the key". Вы можете нажать Enter, чтобы использовать имя по умолчанию (id_ed25519) или ввести свое имя для ключа.
    - Второй запрос: "Enter passphrase". Это пароль для защиты вашего ключа. Вы можете оставить его пустым, нажав Enter дважды, или ввести пароль для дополнительной безопасности.
  4. После создания ключа, выведите содержимое публичного ключа. Если вы использовали имя по умолчанию:
    type %USERPROFILE%\id_ed25519.pub
    Если вы задали свое имя, замените "id_ed25519" на выбранное вами имя.
  5. Если необходимо, то скопируйте весь вывод команды - это ваш публичный ключ.

Добавление сервера в Termius:

  1. Откройте Termius и перейдите на вкладку "Vault" в верхней части окна.
  2. В боковом меню выберите "Hosts".
  3. Нажмите "NEW HOST" в верхней части окна.
  4. Заполните следующие поля:
    - Address: IP-адрес вашего VPS
    - Username: root
  5. Сохраните настройки хоста.

Добавление SSH-ключа в Termius:

  1. В Termius на вкладке "Vault" выберите "Keychain" в боковом меню.
  2. Нажмите "KEY" для добавления нового ключа.
  3. В поле "Label" введите название для вашего ключа.
  4. В поле "Private key" вставьте содержимое приватного ключа. Чтобы получить содержимое, выполните в PowerShell или Терминале:
    type %USERPROFILE%\id_ed25519
    (Замените "id_ed25519" на имя вашего ключа, если вы задали другое)
  5. В поле "Public key" вставьте содержимое публичного ключа. Чтобы получить содержимое, выполните в PowerShell или Терминале:
    type %USERPROFILE%\id_ed25519.pub
    (Замените "id_ed25519" на имя вашего ключа, если вы задали другое)
  6. Если вы задавали passphrase при создании ключа, введите его в соответствующее поле.
  7. Вместо ручного ввода, вы можете нажать "Import from key file" и выбрать файл приватного ключа для автоматического заполнения полей.
  8. После добавления ключа, нажмите "Export to Host", выберите ваш сервер и экспортируйте ключ.

Теперь вы можете подключиться к вашему серверу, просто кликнув на него в списке хостов Termius.

1. Первичная настройка VPS

  • Подключение к VPS через Termius

В боковом меню выберите "Hosts" и просто кликните на созданный хост в Termius

  • Обновление пакетов
apt-get update && apt-get upgrade -y
  • Оптимизация сетевых настроек, вводится одной командой
echo "tcp_bbr" > /etc/modules-load.d/modules.conf && echo "net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 10000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.udp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_slow_start_after_idle=0" >> /etc/sysctl.conf && sysctl -p
  • Перезагрузка сервера для применения изменений
reboot

После перезагрузки снова подключитесь к серверу. Termius должен автоматически переподключиться.

2. Установка Docker

  • Установка необходимых пакетов
apt-get install ca-certificates curl
  • Добавление официального GPG-ключа Docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
  • Добавление репозитория Docker в источники Apt
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
  • Обновление списка пакетов
apt-get update
  • Установка Docker
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • Проверка установки Docker
docker --version

Если у вас возникли проблемы с установкой Docker, обратитесь к официальной документации.

3. Настройка 3X-UI

  • Создание директории для 3X-UI
mkdir -p docker/3x-ui/cert
cd docker/3x-ui/cert
  • Создание самоподписанных сертификатов
openssl req -x509 -newkey rsa:4096 -nodes -sha256 -keyout private.key -out public.key -days 3650 -subj "/CN=APP"
  • Возвращение в директорию 3X-UI
cd ..
  • Создание файла docker compose
nano compose.yml
  • Вставьте следующее содержимое в файл compose.yml:
services:
  3x-ui:
    image: ghcr.io/mhsanaei/3x-ui:latest
    container_name: 3x-ui
    volumes:
      - ./cert:/root/cert:rw
      - ./db:/etc/x-ui:rw
    environment:
      - XRAY_VMESS_AEAD_FORCED=false
    network_mode: host
    tty: true
    restart: unless-stopped
    labels:
      com.centurylinklabs.watchtower.enable: true
  • Для сохранения файла в nano:
  1. Нажмите Ctrl + X
  2. Нажмите Y для подтверждения сохранения
  3. Нажмите Enter для подтверждения имени файла
  • Запуск 3X-UI
docker compose up -d
  • Проверка статуса контейнера
docker ps

4. Настройка панели 3X-UI

Панель входа
  1. Откройте веб-интерфейс 3X-UI по адресу http://YOUR_VPS_IP:2053/ где YOUR_VPS_IP - это IP адрес вашего купленного VPS
  2. Измените язык на русский, установите логин и пароль (изначально admin/admin)

Основные настройки панели

  1. После входа в панель перейдите в раздел "Настройки панели".
  2. Измените порт панели на любое число от 1000 до 65535 (кроме 40000, если установлен Warp). Например, можно воспользоваться генератором. В качестве примера по тексту далее будет использоваться54321.
  3. В поле "Путь к файлу публичного ключа сертификата панели" введите /root/cert/public.key.
  4. В поле "Путь к файлу приватного ключа сертификата панели" введите /root/cert/private.key.
  5. Для "Корневой путь URL адреса панели" придумайте уникальную строку. Например, используйте генератор паролей для создания фразы из нескольких слов, разделенных дефисами. Обязательно добавьте слэши в начале и конце, например: /secure-random-phrase-here/.
  6. Установите "Продолжительность сессии" (в минутах) по вашему усмотрению.
  7. Укажите подходящий часовой пояс в поле "Часовой пояс". Вот список всех часовых поясов в РФ в виде переменных для данного поля:
    Europe/Kaliningrad - Калининградское время (UTC+2)
    Europe/Moscow - Московское время (UTC+3)
    Europe/Samara - Самарское время (UTC+4)
    Asia/Yekaterinburg - Екатеринбургское время (UTC+5)
    Asia/Omsk - Омское время (UTC+6)
    Asia/Krasnoyarsk - Красноярское время (UTC+7)
    Asia/Irkutsk - Иркутское время (UTC+8)
    Asia/Yakutsk - Якутское время (UTC+9)
    Asia/Vladivostok - Владивостокское время (UTC+10)
    Asia/Magadan - Магаданское время (UTC+11)
    Asia/Kamchatka - Камчатское время (UTC+12)
  8. Нажмите "Сохранить" и затем "Перезапуск панели". После перезапуска панели, измените порт в адресной строке порт на тот, который устанавливали во втором пункте (например, https://YOUR_VPS_IP:54321/secure-random-phrase-here/) и обновите страницу. Браузер выдаст ошибку «Подключение не защищено». Нажмите на ДополнительноПерейти на сайт.

Настройка безопасности

  1. Перейдите в "Настройки безопасности".
  2. Введите текущее имя пользователя и пароль (изначально admin/admin).
  3. Задайте новое имя пользователя и пароль.
  4. Для дополнительной безопасности можно включить "Безопасность входа" и сгенерировать секретный токен. Внимание: сохраните этот токен, так как его нельзя восстановить!
  5. Нажмите "Подтвердить" для сохранения изменений.

Настройка Telegram-бота (опционально)

  1. Перейдите в раздел "Настройки Telegram бота".
  2. Включите Telegram-бота.
  3. Введите токен бота, полученный от BotFather в Telegram.
    Вот пошаговая инструкция, как получить токен бота у BotFather в Telegram:
    1. Откройте Telegram и найдите BotFather (@BotFather).
    2. Начните чат с BotFather, нажав кнопку "Start" или отправив команду /start.
    3. Отправьте команду /newbot для создания нового бота.
    4. BotFather попросит вас ввести имя для вашего бота. Введите желаемое имя.
    5. Затем введите username для вашего бота. Оно должно оканчиваться на bot (например, my_awesome_bot).
    6. После успешного создания бота, BotFather отправит вам сообщение с токеном вашего бота.
    7. Введите этот токен в поле "Токен Telegram бота".
    8. Перейдите по ссылке на вашего бота, которую предоставил BotFather в сообщении, и отправьте боту команду "/start". Это необходимо, так как бот не сможет первым начать диалог с пользователем.
    9. Дополнительно вы можете настроить описание, аватар и команды бота, используя соответствующие команды BotFather.
  4. Укажите Telegram ChatID (получить можно через бота userinfobot).
  5. Измените частоту уведомлений с @daily на @weekly для еженедельных отчетов.
  6. Включите резервное копирование базы данных.
  7. Установите порог нагрузки ЦП для уведомлений (рекомендуется 95 или 0).
  8. Выберите язык бота (например, русский).
  9. Если Telegram заблокирован в стране, где арендуете VPS сервер, настройте SOCKS5 прокси для бота.
  10. Нажмите "Сохранить" для применения настроек.

Настройки подписки (опционально)

  1. Перейдите во вкладку "Подписка".
  2. WIP...

После выполнения всех этих шагов, ваша панель 3X-UI будет настроена с улучшенными параметрами безопасности и функциональности. Не забудьте сохранить все новые данные для входа в надежном месте.

5. Создание первого подключения

  1. В панели 3X-UI перейдите на вкладку "Подключения".
  2. Нажмите кнопку "Добавить подключение".
  3. Заполните поля следующим образом:
    - Примечание: Введите название подключения, например VLESS.
    - Протокол: Выберите VLESS.
    - Порт IP: Введите IP-адрес вашего VPS.
    - Порт: Укажите 443.
    - Клиент:
    - Включите клиента.
    - В поле "Email" укажите электронную почту или название устройства на английском (например, computer, iphone, android), или имя пользователя. Это необходимо для идентификации и понимании
    - ID оставьте без изменений.
    - Протокол передачи: Выберите TCP (RAW).
    - Безопасность: Выберите REALITY.
    - uTLS: Измените на chrome.
  4. Настройка REALITY:
    Для выбора сайта, под который вы будете маскироваться, используйте утилиту Reality TLS Scanner:
    a) Скачайте утилиту Reality TLS Scanner.
    b) Для Windows 10/11:
    - Откройте командную строку (cmd) в папке, куда скачана утилита.
    Вот как открыть командную строку в определенной папке для Windows 10 и терминал для Windows 11: Windows 10 (Командная строка): 1. Откройте нужную папку в проводнике Windows. 2. В адресной строке проводника щелкните левой кнопкой мыши, чтобы выделить путь. 3. Введите cmd и нажмите Enter. 4. Откроется окно командной строки, уже находящееся в выбранной папке. Альтернативный метод: 1. Откройте нужную папку в проводнике Windows. 2. Удерживая клавишу Shift, щелкните правой кнопкой мыши в пустом месте папки. 3. В контекстном меню выберите «Открыть окно командной строки здесь». Windows 11 (Терминал): 1. Откройте нужную папку в проводнике Windows. 2. Щелкните правой кнопкой мыши в пустом месте папки. 3. В контекстном меню выберите «Открыть в терминале». Альтернативный метод: 1. Откройте нужную папку в проводнике Windows. 2. В адресной строке проводника щелкните левой кнопкой мыши, чтобы выделить путь. 3. Введите «wt» (сокращение от Windows Terminal) и нажмите Enter. 4. Откроется окно терминала Windows, уже находящееся в выбранной папке.
    - Запустите сканер командой (замените IP на адрес вашего VPS):
    RealiTLScanner-windows-64.exe -addr ваш_IP
    - Дождитесь результатов сканирования и выберите подходящий сайт.
    Результаты выглядят следующим образом:
    time=2024-01-01T00:00:00.00+00:00 level=INFO msg="Connected to target" feasible=true ip=12.34.56.78 origin="" tls="TLS 1.3" alpn=h2 cert-domain=example.com cert-issuer="Let's Encrypt"
    отсюда нам необходимо взять адрес, что идёт после domain= и предварительно проверить его работоспособность в вашем браузере.
    c) Заполните поля в настройках REALITY:
    - Dest: Введите выбранный сайт и порт, например example.com:443 (никаких https:// и т.д., строго указано как в примере).
    - ServerNames: Повторите название сайта дважды, например example.com,www.example.com.
    - Private key и Public key: Нажмите "Get New Cert" для генерации ключей.
  5. Нажмите кнопку "Создать" для сохранения подключения.

6. Проверка и использование подключения

  1. После создания подключения нажмите на "+" рядом с ним для отображения дополнительных опций.
  2. Вы увидите несколько кнопок:
    - QR-код для удобного подключения с мобильных устройств.
    - Редактор пользователя для изменения настроек.
    - Информация о подключении.
  3. В разделе информации вы найдете строку подключения.
  4. Для использования подключения:
    - Отсканируйте QR-код с мобильного устройства.
    - Или скопируйте строку подключения для ввода в клиентское приложение на вашем устройстве.

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