VLESS на Ubuntu: полное руководство по установке, настройке и использованию

Узнайте, как установить и настроить VLESS + Reality на Ubuntu 20.04/24.04. Подробные инструкции, сравнение методов, советы по безопасности и ответы на частые вопросы.

Что такое VLESS и почему он популярен

VLESS — это современный прокси-протокол, разработанный командой V2Ray как более лёгкая и безопасная альтернатива VMess. В отличие от многих других протоколов, VLESS не добавляет собственного шифрования, полагаясь на внешний транспорт (например, TLS), что снижает накладные расходы и повышает скорость. Это делает его особенно привлекательным для пользователей, которым важна производительность и незаметность трафика.

Основное преимущество VLESS — его гибкость. Он может работать поверх TCP, WebSocket, gRPC и других транспортов, а в сочетании с технологией Reality позволяет маскировать трафик под обычные HTTPS-запросы к легитимным сайтам. Это делает VLESS одним из самых эффективных инструментов для обхода блокировок и защиты от глубокого анализа пакетов (DPI).

Для пользователей Ubuntu VLESS особенно интересен, так как эта ОС широко используется разработчиками и техническими специалистами, а её открытая архитектура позволяет тонко настраивать все компоненты. В этой статье мы рассмотрим, как развернуть VLESS-сервер на Ubuntu, настроить клиентов и обеспечить безопасность.

Подготовка сервера Ubuntu к установке

Перед установкой VLESS необходимо подготовить сервер. Рекомендуется использовать свежую версию Ubuntu (20.04 или 24.04), так как она имеет длительный срок поддержки и стабильные репозитории. Начните с обновления системы и установки базовых утилит:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git nano htop net-tools

Также стоит установить Python, если он не установлен (хотя для большинства скриптов он не обязателен):

sudo apt install -y python3 python3-pip

Важно убедиться, что на сервере открыты необходимые порты. Для VLESS + Reality обычно используется порт 443 (HTTPS), а для панели управления — порт 2053 или 3333. Если вы используете облачный сервер, настройте правила firewall в панели провайдера, а также локальные правила iptables (об этом ниже).

Не забывайте про SSH-доступ: убедитесь, что вы можете подключиться к серверу по SSH, и настройте ключи для безопасности. Рекомендуется отключить вход по паролю и использовать только SSH-ключи.

Методы установки VLESS: скрипт vs Docker

Существует два основных способа развернуть VLESS-сервер на Ubuntu: использование готового скрипта установки и установка через Docker. Каждый метод имеет свои преимущества и недостатки.

Скрипт установки 3X-UI — это самый простой способ для новичков. Он автоматически устанавливает панель управления 3X-UI, Xray и все необходимые зависимости. Достаточно выполнить одну команду:

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

Скрипт задаст несколько вопросов (логин, пароль, порт панели) и завершит установку за минуту. Этот метод идеален, если вы хотите быстро получить работающий сервер с веб-интерфейсом.

Установка через Docker — более гибкий и изолированный подход. Он позволяет запускать панель в контейнере, что упрощает обновление и управление зависимостями. Для этого создайте файл compose.yml с образом ghcr.io/mhsanaei/3x-ui:latest и настройте тома для базы данных и сертификатов. Этот метод требует больше ручной работы, но даёт больше контроля.

Выбор метода зависит от вашего опыта и требований. Если вы хотите быстро протестировать VLESS, используйте скрипт. Если планируете долгосрочную эксплуатацию с автоматизацией — Docker предпочтительнее.

Установка 3X-UI с помощью скрипта

Рассмотрим подробно установку через официальный скрипт. После выполнения команды установки скрипт попросит подтвердить модификацию системы (введите y), затем задаст логин, пароль и порт для панели управления. Например:

Do you want to continue with the modification [y/n]? : y
Please set up your username: admin1
Please set up your password: admin1234
Please set up the panel port: 3333

После завершения установки вы получите доступ к веб-интерфейсу по адресу http://<IP_сервера>:3333. Войдите с указанными учётными данными.

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

Важно: после установки обязательно смените пароль администратора и настройте доступ к панели только через HTTPS, если это возможно. Также рекомендуется ограничить доступ к панели по IP-адресу с помощью firewall.

Установка 3X-UI через Docker

Для установки через Docker сначала установите Docker и Docker Compose, если они ещё не установлены. Затем создайте директорию для панели и файл compose.yml:

mkdir -p ~/panel/{db,cert} && cd ~/panel
nano compose.yml

Вставьте следующее содержимое:

services:
  3xui:
    image: ghcr.io/mhsanaei/3x-ui:latest
    container_name: 3xui_app
    volumes:
      - ./db/:/etc/x-ui/
      - ./cert/:/root/cert/
    environment:
      XRAY_VMESS_AEAD_FORCED: "false"
    network_mode: host
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true

Запустите контейнер:

docker compose -f compose.yml up -d

Проверьте статус:

docker compose -f compose.yml ps

Панель будет доступна на порту 2053 по умолчанию (логин admin, пароль admin). Рекомендуется сразу сменить пароль и настроить сертификаты для HTTPS.

Преимущество Docker-подхода — лёгкое обновление: достаточно выполнить docker compose pull и docker compose up -d. Также контейнер изолирует панель от основной системы, что повышает безопасность.

Настройка VLESS + Reality в панели 3X-UI

После установки панели необходимо создать инбаунд с протоколом VLESS и включить Reality. В веб-интерфейсе перейдите в раздел «Подключения» (Inbounds) и нажмите «Добавить подключение».

Заполните поля:

  • Примечание — любое удобное имя (например, «VLESS-Reality»).
  • Протокол — выберите vless.
  • Порт — укажите 443 (стандартный HTTPS-порт).
  • Мониторинг IP — внешний IP-адрес сервера.

Затем отметьте галочку Reality и нажмите кнопку GET NEW KEY для генерации ключей. После этого нажмите «Создать» — инбаунд будет добавлен, и для него автоматически создастся первый пользователь с QR-кодом.

Для добавления дополнительных пользователей используйте меню инбаунда → «Добавить пользователя». Укажите email (любое имя) и сгенерируйте новый UUID. Каждому пользователю будет доступен свой QR-код для импорта в клиент.

Важно: после любых изменений в настройках Xray необходимо перезапустить Xray (кнопка в панели) или перезапустить контейнер, если используется Docker.

Настройка клиентов для подключения к VLESS

Для подключения к VLESS-серверу вам понадобится клиент, поддерживающий этот протокол. Вот популярные варианты для разных платформ:

  • Windows, Linux, macOS — NekoRay/NekoBox (скачать с GitHub).
  • Android — v2rayNG (доступен в Google Play).
  • iOS — FoxRay, Shadowrocket или V2Box.

После установки клиента импортируйте конфигурацию. Самый простой способ — отсканировать QR-код, который генерирует панель 3X-UI. В NekoRay выберите «Программа» → «Сканировать QR код», в v2rayNG — «Импорт профиля из QR-кода».

Если QR-код недоступен, можно вручную ввести параметры: адрес сервера, порт, UUID, тип транспорта (TCP), security (reality), а также параметры Reality (public key, short id, server name). Эти данные можно скопировать из панели в виде ссылки.

После импорта выберите профиль и активируйте режим TUN (если нужен системный прокси) или просто запустите прокси. Проверьте IP-адрес через сервис типа 2ip.ru — он должен соответствовать IP вашего сервера.

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

Безопасность — критический аспект при развёртывании VLESS-сервера. Даже если вы используете скрипт установки, рекомендуется вручную настроить iptables, чтобы ограничить доступ только к необходимым портам.

Пример базовых правил:

sudo apt install -y iptables iptables-persistent
# Разрешаем установленные соединения
sudo iptables -I INPUT 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Разрешаем loopback
sudo iptables -I INPUT 2 -i lo -j ACCEPT
# Разрешаем VLESS/Reality (порт 443) и панель (2053)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2053 -j ACCEPT
# Разрешаем SSH с вашего IP (замените <ваш_IP>)
sudo iptables -A INPUT -s <ваш_IP> -p tcp --dport 22 -j ACCEPT
# Блокируем всё остальное
sudo iptables -P INPUT DROP
# Сохраняем правила
sudo netfilter-persistent save

Также рекомендуется:

  • Использовать fail2ban для защиты SSH и панели от перебора паролей.
  • Ограничить доступ к панели управления по IP-адресу.
  • Регулярно обновлять систему и панель.
  • Для продакшена использовать домен и Let's Encrypt сертификаты вместо self-signed.

Использование домена и Let's Encrypt для VLESS

Хотя VLESS + Reality может работать и без домена (используя IP-адрес), для повышения надёжности и снижения вероятности блокировок рекомендуется привязать домен. Это также позволяет получить валидный TLS-сертификат от Let's Encrypt, что делает трафик ещё более легитимным.

Для получения сертификата установите Certbot:

sudo apt install certbot
sudo certbot certonly --standalone -d ваш_домен.ru

После получения сертификата укажите его пути в настройках Xray (в панели 3X-UI в разделе «Настройки Xray» → «Базовые соединения»). Обычно это файлы fullchain.pem и privkey.pem.

Если вы используете Docker, смонтируйте директорию с сертификатами в контейнер и укажите пути в конфигурации. Не забудьте настроить автоматическое обновление сертификатов (например, через cron или systemd timer).

Использование домена также упрощает подключение клиентов, так как не нужно запоминать IP-адрес. Однако учтите, что домен должен быть делегирован на ваш сервер.

Проверка работы и устранение неполадок

После настройки VLESS важно убедиться, что всё работает корректно. Проверьте статус Xray в панели 3X-UI — он должен быть «running». Также можно выполнить команды:

sudo systemctl status xray  # если установлено через скрипт
docker ps  # если используется Docker

Проверьте логи на наличие ошибок:

sudo journalctl -u xray -f  # для systemd
docker logs 3xui_app  # для Docker

Если клиент не подключается, проверьте:

  • Правильность UUID и параметров Reality.
  • Открыт ли порт 443 на сервере (используйте netstat -tulpn | grep 443).
  • Не блокирует ли firewall исходящие соединения.
  • Совместимость версий Xray и клиента.

Также полезно проверить IP-адрес через сервис 2ip.ru после подключения — он должен совпадать с IP сервера. Если IP не меняется, возможно, клиент не использует прокси (проверьте режим TUN или системные настройки прокси).

Вопросы и ответы

В чём разница между VLESS и VMess?

VLESS — это более современный протокол, который не имеет встроенного шифрования (полагается на внешний TLS), что снижает накладные расходы и повышает скорость. VMess, напротив, включает собственное шифрование, что делает его более тяжёлым. VLESS также лучше маскируется под обычный HTTPS-трафик, особенно в сочетании с Reality.

Можно ли использовать VLESS без домена?

Да, VLESS + Reality может работать с IP-адресом вместо домена. Однако использование домена повышает легитимность трафика и позволяет получить валидный TLS-сертификат, что снижает риск блокировок. Для тестов можно обойтись и без домена.

Какой порт лучше выбрать для VLESS?

Рекомендуется использовать порт 443, так как он стандартный для HTTPS и трафик на нём выглядит естественно. Это снижает вероятность обнаружения DPI. Если порт 443 занят, можно использовать 8443 или другие, но это может привлечь внимание.

Нужно ли настраивать firewall на сервере?

Да, обязательно. Ограничьте доступ только к необходимым портам (443, 2053/3333, 22 для SSH) и заблокируйте всё остальное. Это защитит сервер от несанкционированного доступа и атак.

Как добавить нового пользователя в 3X-UI?

В панели 3X-UI перейдите в раздел «Подключения», выберите нужный инбаунд, нажмите «Меню» → «Добавить пользователя». Укажите email (любое имя) и сгенерируйте новый UUID. После сохранения пользователь получит свой QR-код для подключения.

Что делать, если клиент не подключается?

Проверьте статус Xray (должен быть running), правильность UUID и параметров Reality, открыт ли порт 443, и не блокирует ли firewall. Также убедитесь, что версии Xray и клиента совместимы. Просмотрите логи Xray на наличие ошибок.