MAATRIX / Блог / V2Ray (базовый) на Ubuntu 24.04: установка

V2Ray (базовый) на Ubuntu 24.04: установка

MAATRIX

Когда ищут «как поставить V2Ray», в половине статей на деле показывают установку Xray — форка с другим набором протоколов и командами. Из-за этого путаницы в конфигах и ошибок при первом запуске становится больше, чем нужно. Здесь — установка именно оригинального ядра V2Ray (проект v2fly) на Ubuntu 24.04: сервис, рабочий VMess-конфиг с WebSocket и TLS, автозапуск и честное объяснение, чем это ядро отличается от Xray, чтобы вы выбирали протокол осознанно, а не по инерции из туториала.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

V2Ray и Xray — в чём разница

V2Ray — исходный проект, вокруг которого в своё время выросла целая экосистема протоколов обхода блокировок. Его флагманский протокол — VMess: трафик клиента и сервера шифруется и аутентифицируется по общему UUID, что было заметным шагом вперёд по сравнению с ранними решениями. Проект поддерживается сообществом v2fly и продолжает получать обновления, хотя развивается сейчас медленнее, чем его более молодой родственник.

Xray — форк V2Ray, который несколько лет назад отделился от основной ветки и стал двигаться быстрее. В нём появился протокол VLESS (легче VMess, без встроенного шифрования — оно делегируется транспорту), транспорт XTLS с минимальными накладными расходами и режим Reality, маскирующий сервер под чужой легальный сайт без своего сертификата. Сегодня именно Xray чаще советуют для новых установок, потому что VLESS+Reality лучше проходит глубокую фильтрацию и проще в части сертификатов.

Так зачем тогда ставить V2Ray, а не сразу Xray? Причины бывают практическими: у вас уже есть инфраструктура на VMess и не хочется её ломать, вы разбираете конкретный туториал или курс, написанный под V2Ray, либо просто хотите понять протокол в его исходном виде, прежде чем переходить к более новым надстройкам. Технически VMess тяжелее VLESS из-за собственного шифрования и служебных заголовков, но он старше, хорошо документирован и работает предсказуемо — если задача не требует максимальной скрытности любой ценой, разница на практике часто не критична. Если вы ещё выбираете протокол с нуля, взгляните на общий гид по выбору VPN-протокола под сценарий — там разница между VMess, VLESS и классикой вроде WireGuard разложена по задачам.

Что понадобится

Нужен VPS с чистым публичным IP, root-доступом и Ubuntu 24.04. Ресурсов хватает минимальных — 1 vCPU и 1 ГБ RAM, потому что нагрузка сводится к шифрованию потока, а не к вычислениям. Для схемы с TLS (а без TLS в 2026 году сервер лучше не выставлять — такой трафик слишком заметен) понадобится домен, направленный A-записью на IP сервера: без него нечего будет предъявить при выпуске сертификата.

Обновите систему перед установкой и поставьте базовые утилиты:

apt update && apt upgrade -y
apt install -y curl unzip uuid-runtime

Пакет uuid-runtime даёт команду uuidgen — она понадобится для генерации ключа доступа к серверу. Проверьте, что A-запись домена уже разошлась, прежде чем переходить к сертификату:

dig +short ваш-домен

Команда должна вернуть IP вашего сервера. Если возвращает пусто или старое значение — подождите репликации DNS, обычно это минуты, реже — несколько часов.

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Установка ядра V2Ray

Официальный способ поставить именно V2Ray (не Xray) — скрипт проекта v2fly, который разворачивает структуру каталогов по FHS, ставит бинарник и создаёт systemd-сервис:

bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

После установки бинарник лежит в /usr/local/bin/v2ray, конфиг — в /usr/local/etc/v2ray/config.json, сервис называется v2ray. Проверьте, что версия действительно определилась и сервис виден системе:

v2ray version
systemctl status v2ray

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

VMess-конфиг сервера

Сгенерируйте UUID — это ключ, которым клиент будет представляться серверу, по сути пароль:

uuidgen

Сохраните значение, оно понадобится и на сервере, и в клиенте. Дальше опишите в /usr/local/etc/v2ray/config.json минимальную рабочую схему: входящее соединение VMess поверх WebSocket, исходящее — прямое:

{
  "inbounds": [
    {
      "port": 443,
      "listen": "127.0.0.1",
      "protocol": "vmess",
      "settings": {
        "clients": [
          { "id": "ВАШ-UUID", "alterId": 0 }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": { "path": "/ray" }
      }
    }
  ],
  "outbounds": [
    { "protocol": "freedom" }
  ]
}

Несколько важных деталей. alterId: 0 — это современный стандарт (VMess AEAD): значения больше нуля были нужны в старых версиях протокола и сейчас только увеличивают накладные расходы без пользы для безопасности. Путь /ray в wsSettings.path — произвольная строка, но она должна совпадать в конфиге клиента; смысла в «секретности» пути немного, реальная защита идёт от TLS и UUID, но путь стоит сделать не самым очевидным вроде /ws. Обратите внимание, что V2Ray слушает на 127.0.0.1, а не на публичном интерфейсе — TLS и приём внешних соединений на 443 порту возьмёт на себя nginx, это и безопаснее (сертификат обслуживает привычный веб-сервер), и снимает с V2Ray заботу о сертификатах при каждом обновлении.

После правки конфига перезапустите сервис и сразу проверьте логи — синтаксическая ошибка в JSON не даст сервису подняться:

systemctl restart v2ray
journalctl -u v2ray -n 30 --no-pager

TLS и WebSocket через nginx

Смысл этой схемы в том, что снаружи ваш сервер выглядит как обычный сайт на HTTPS: nginx принимает соединение на 443 порту с настоящим TLS-сертификатом, а WebSocket-запросы по нужному пути молча проксирует на локальный V2Ray. Получите сертификат для домена через certbot или acme.sh — оба варианта рабочие, certbot проще для разового случая:

apt install -y certbot python3-certbot-nginx
certbot certonly --standalone -d ваш-домен

Если 80 или 443 порт уже занят nginx, используйте плагин --nginx вместо --standalone или временно остановите nginx на время выпуска. Дальше добавьте в конфиг nginx (/etc/nginx/sites-available/ваш-домен) блок проксирования WebSocket-пути на V2Ray, оставив остальной сайт как есть — это как раз и создаёт правдоподобие обычного веб-ресурса:

server {
    listen 443 ssl;
    server_name ваш-домен;

    ssl_certificate /etc/letsencrypt/live/ваш-домен/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ваш-домен/privkey.pem;

    location /ray {
        proxy_pass http://127.0.0.1:443;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

    location / {
        return 404;
    }
}

Секция location / намеренно отдаёт 404 на всё остальное — так сервер не выдаёт лишнего постороннему, кто просто зайдёт на домен браузером, а глубокая проверка не находит ничего похожего на прокси. Проверьте конфиг и перезапустите nginx:

nginx -t && systemctl restart nginx

Автозапуск, фаервол, проверка и клиент

Включите V2Ray в автозапуск, чтобы он поднимался вместе с сервером после перезагрузки:

systemctl enable v2ray

nginx слушает 443, V2Ray — только 127.0.0.1, поэтому во внешнем фаерволе открывать нужно ровно один порт, плюс SSH:

ufw allow 443/tcp
ufw allow OpenSSH
ufw enable

Не забудьте продублировать правило во внешней панели облака — у многих провайдеров есть отдельный security group или firewall на уровне гипервизора, и локальный ufw его не заменяет. Проверьте, что оба сервиса действительно слушают порты:

ss -lntp | grep -E '443|nginx|v2ray'

На клиент поставьте приложение с поддержкой VMess — v2rayN и Nekoray для Windows, v2rayNG для Android, v2rayU или FairVPN для macOS. В настройках профиля укажите адрес домена, порт 443, UUID, alterId: 0, транспорт WebSocket с путём /ray и включённый TLS с SNI вашего домена. Разбор конкретного клиентского приложения на Android есть в статье про подключение к VLESS через v2rayNG — интерфейс приложения у VMess и VLESS почти идентичный, отличаются только заполняемые поля протокола. После подключения проверьте на любом сервисе определения IP, что адрес сменился на серверный, а не завис на прежнем.

Если позже захотите попробовать XTLS или Reality — переезд не потребует нового сервера: установка Xray и XTLS на VPS описана отдельно, а сама миграция сводится к установке второго бинарника и параллельному конфигу, пока не убедитесь, что новая схема стабильна.

Арендуйте сервер под свои задачи!

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

V2Ray и Xray можно поставить на один сервер одновременно?

Да, это разные бинарники и сервисы (v2ray и xray), конфликтовать они будут только за порты — разведите их по разным портам или доменам, и оба будут работать параллельно.

Обязательно ли ставить TLS через nginx, а не отдавать 443 напрямую V2Ray?

Технически можно настроить TLS прямо в streamSettings самого V2Ray, но связка с nginx удобнее в эксплуатации: продление сертификата, ротация логов и сам веб-сервер уже привычны большинству админов, а V2Ray остаётся простым внутренним сервисом.

Почему alterId должен быть 0, а не больше?

Ненулевые значения были частью старой схемы аутентификации VMess, которую заменили на AEAD. Современные клиенты и серверы рассчитаны на alterId: 0, а старые значения только увеличивают вычислительную нагрузку без выигрыша в безопасности.

V2Ray безопаснее Xray?

Оба используют шифрование корректно, разница не в безопасности алгоритмов, а в устойчивости к анализу трафика: VLESS+Reality у Xray сложнее отличить от обычного сайта, чем VMess+WS+TLS у V2Ray, хотя последний тоже вполне рабочий вариант при правильной настройке.

Что делать, если после перезапуска nginx не поднимается?

Чаще всего дело в занятом порту или ошибке в сертификате — проверьте nginx -t и ss -lntp | grep 443; если порт занят другим процессом, останавливайте его перед выпуском сертификата через --standalone.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →