Xray VPN на Ubuntu: установка, настройка и безопасность

Подробное руководство по установке и настройке Xray VPN на Ubuntu: выбор панели, протоколы, безопасность, клиенты и устранение неполадок.

Что такое Xray и зачем он нужен

Xray — это современное ядро для создания приватных сетевых подключений, развивающееся как форк V2Ray. Оно поддерживает множество протоколов, включая VLESS, VMess, Trojan и Shadowsocks, и предлагает улучшенную производительность и безопасность. Благодаря гибкой архитектуре Xray позволяет маскировать трафик под обычные HTTPS-соединения, что затрудняет его обнаружение системами глубокого анализа пакетов (DPI).

Основное преимущество Xray — использование протокола VLESS в сочетании с технологией REALITY. Эта связка имитирует TLS-соединение с известным доменом (например, microsoft.com), делая VPN-трафик неотличимым от обычного веб-серфинга. Это особенно важно в условиях, когда провайдеры активно блокируют VPN-сервисы.

Xray может работать как самостоятельный сервер, так и в составе различных панелей управления. Для пользователей Ubuntu наиболее популярны два варианта: 3x-ui — веб-панель с графическим интерфейсом, и v2rayA — облегчённый веб-интерфейс, который часто используется в контейнерах. Оба подхода имеют свои особенности, которые мы рассмотрим далее.

Выбор панели управления: 3x-ui или v2rayA

При развёртывании Xray на Ubuntu перед администратором встаёт вопрос выбора панели управления. Два наиболее распространённых решения — 3x-ui и v2rayA — предлагают разные подходы к управлению.

3x-ui — это полнофункциональная веб-панель, которая полностью заменяет ручное редактирование JSON-конфигураций. Она позволяет через браузер создавать пользователей, отслеживать трафик, генерировать QR-коды и ссылки для клиентов. Панель поддерживает все основные протоколы Xray и автоматически генерирует UUID и ключи. Это идеальный выбор для тех, кто хочет управлять несколькими пользователями и протоколами без работы с командной строкой.

v2rayA — более лёгкое решение, которое часто используется в LXC-контейнерах и на минимальных серверах. Оно предоставляет веб-интерфейс на порту 2017, но требует отдельной установки ядра Xray. v2rayA хорошо подходит для сценариев, где нужен простой прокси-сервер для одного или нескольких устройств, и где важна экономия ресурсов.

Выбор между ними зависит от ваших задач. Если вы планируете предоставлять доступ многим пользователям и нуждаетесь в удобной админ-панели — выбирайте 3x-ui. Если вам нужен лёгкий прокси для личного использования или для развёртывания в изолированном контейнере — v2rayA будет более уместным.

Требования к серверу и подготовка системы

Для стабильной работы Xray VPN на Ubuntu подойдёт практически любой VPS-сервер. Минимальные требования включают одно ядро CPU и 512 МБ оперативной памяти. Этого достаточно для обслуживания нескольких одновременных подключений. Однако для более интенсивного использования рекомендуется выбирать серверы с 1-2 ядрами и 1 ГБ RAM.

Перед установкой необходимо подготовить сервер:

  1. Обновить систему: выполните sudo apt update && sudo apt upgrade -y. Это обеспечит актуальность пакетов и безопасность.
  2. Установить curl: утилита понадобится для загрузки установочных скриптов. Установите её командой sudo apt install curl -y.
  3. Настроить межсетевой экран: если используется UFW, откройте необходимые порты. Для 3x-ui это порт панели (по умолчанию 2053) и порты для VPN-трафика (обычно 443 TCP/UDP). Для v2rayA — порты 2017, 20170, 20171. Важно: перед включением файрвола обязательно разрешите SSH (порт 22), иначе вы потеряете доступ к серверу.

Пример настройки UFW для 3x-ui:

sudo ufw allow 22/tcp
sudo ufw allow 2053/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enable

Для v2rayA:

sudo ufw allow 22/tcp
sudo ufw allow 2017/tcp
sudo ufw allow 20170/tcp
sudo ufw allow 20171/tcp
sudo ufw enable

После выполнения этих шагов сервер готов к установке Xray и панели управления.

Установка Xray-ядра

Xray-ядро устанавливается с помощью официального скрипта, который автоматически загружает последнюю версию и настраивает системную службу. Выполните следующую команду:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

После установки проверьте версию и расположение файлов:

xray version
ls -la /usr/local/bin/xray
ls -la /usr/local/etc/xray/

Основные файлы:

  • Бинарник: /usr/local/bin/xray
  • Конфигурация: /usr/local/etc/xray/config.json
  • Геоданные: /usr/local/share/xray/geoip.dat и geosite.dat

Если вы используете v2rayA, ядро Xray устанавливается отдельно, как описано выше. Для 3x-ui ядро уже включено в состав панели, поэтому отдельная установка не требуется. Однако в некоторых случаях может потребоваться обновить ядро до последней версии через настройки панели.

Установка панели 3x-ui

3x-ui устанавливается одной командой через официальный скрипт:

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

Скрипт автоматически определит архитектуру, скачает панель и настроит её как службу systemd. После завершения установки панель будет доступна по адресу http://YOUR_SERVER_IP:2053 (по умолчанию).

Первоначальные учётные данные: логин admin, пароль admin. Обязательно смените их сразу после первого входа через раздел "Панельные настройки". Также рекомендуется изменить стандартный порт панели на случайное значение в диапазоне 10000-60000, чтобы скрыть её от автоматических сканеров. Это делается командой:

x-ui setting -port 12345

После смены порта не забудьте обновить правила файрвола: разрешить новый порт и удалить старое правило.

Для управления панелью используйте команду x-ui:

  • x-ui status — проверить статус
  • x-ui restart — перезапустить
  • x-ui stop — остановить
  • x-ui start — запустить

Если вы забыли пароль, его можно сбросить через командную строку:

x-ui setting -username new_admin_user
x-ui setting -password YourComplexPassword123!
x-ui restart

Установка v2rayA и настройка в LXC-контейнере

v2rayA часто разворачивают в LXC-контейнерах на Proxmox VE. Для работы прозрачного прокси контейнер должен быть привилегированным (privileged) или иметь доступ к сетевым функциям, таким как iptables.

Установка v2rayA включает два этапа: установка ядра Xray и установка самой панели.

Установка Xray-ядра выполняется так же, как описано выше.

Установка v2rayA производится из .deb-пакета, так как официальный репозиторий может иметь проблемы с сертификатами. Скачайте последнюю версию с GitHub и установите:

wget https://github.com/v2rayA/v2rayA/releases/download/v2.3.3/installer_debian_x64_2.3.3.deb
apt install /root/vpn/installer_debian_x64_2.3.3.deb

После установки запустите службу и включите автозапуск:

sudo systemctl start v2raya.service
sudo systemctl enable v2raya.service

Конфигурационный файл находится в /etc/default/v2raya. По умолчанию панель слушает порт 2017 на localhost. Чтобы открыть доступ из сети, измените параметр V2RAYA_ADDRESS на 0.0.0.0:2017 и перезапустите службу. Важно: при открытии доступа извне обязательно установите надёжный пароль и включите HTTPS.

Создание входящего подключения и настройка клиентов

После установки панели необходимо создать входящее подключение (inbound), которое будет принимать VPN-трафик.

В 3x-ui: перейдите в раздел "Входящие" и нажмите "Добавить входящее". Заполните поля:

  • Remark — имя подключения, например, user-1-phone.
  • Protocol — выберите vless.
  • Dest — домен для маскировки, например, www.microsoft.com:443.
  • SNI — тот же домен, что и в Dest.
  • Flow — оставьте xtls-rprx-vision для оптимальной производительности.

После сохранения панель сгенерирует UUID и ключи. Для каждого пользователя можно создать отдельный inbound или использовать один с несколькими клиентами. QR-код и ссылку для импорта можно скопировать прямо из панели.

В v2rayA: импортируйте VLESS-ссылку от провайдера через веб-интерфейс. Нажмите "Import" или "+", вставьте ссылку и сохраните. Затем активируйте профиль, переключив тумблер в положение ON.

Настройка клиентов:

  • Windows: используйте V2RayN или Nekoray. Скачайте архив с суффиксом -With-Core.zip (для V2RayN), распакуйте и запустите. Импортируйте конфигурацию через Ctrl+V или через меню "Добавить профиль из буфера обмена".
  • Android: установите V2RayNG из официального репозитория. Импортируйте конфигурацию по QR-коду или из буфера обмена. После активации нажмите кнопку с логотипом V для подключения.
  • Linux: можно использовать те же клиенты, а также настроить системный прокси через переменные окружения или proxychains.

Для проверки соединения используйте тест задержки в клиенте или команду curl -x socks5h://127.0.0.1:20170 https://api.ip.sb/ip (для v2rayA).

Обеспечение безопасности: TLS, HTTPS и защита панели

Безопасность — критически важный аспект при развёртывании VPN-сервера. Вот основные меры, которые необходимо предпринять.

1. Защита панели управления:

  • Смените стандартные учётные данные (admin/admin) сразу после установки.
  • Измените порт панели на нестандартный.
  • Ограничьте доступ к панели по IP-адресу, если это возможно.
  • Включите HTTPS для панели, чтобы защитить данные администратора от перехвата.

2. Настройка TLS для VPN-трафика:

Для протокола VLESS с REALITY маскировка уже встроена, но для других протоколов (например, VLESS+WS) рекомендуется настроить TLS-сертификаты. Это можно сделать с помощью Let's Encrypt:

sudo apt install certbot -y
certbot certonly --standalone -d yourdomain.com

Затем укажите пути к сертификатам в конфигурации Xray или в настройках панели.

3. Межсетевой экран:

Используйте UFW или iptables для ограничения доступа. Разрешайте только необходимые порты и блокируйте всё остальное.

4. Регулярные обновления:

Своевременно обновляйте Xray и панель управления. Для 3x-ui это можно делать через веб-интерфейс, для v2rayA — через загрузку новой версии .deb-пакета.

5. Снимки системы:

Перед значительными изменениями делайте снимки (snapshots) виртуальной машины или LXC-контейнера. Это позволит быстро откатить систему в случае проблем.

Устранение неполадок и диагностика

При работе с Xray VPN могут возникать различные проблемы. Рассмотрим типичные сценарии и способы их решения.

Проблема: служба не запускается или падает

Проверьте статус службы и логи:

systemctl status xray
journalctl -u xray -f

Для v2rayA:

systemctl status v2raya
journalctl -u v2raya -f

Проблема: прокси не отвечает

  1. Убедитесь, что профиль активирован в панели.
  2. Проверьте, что порты открыты в файрволе.
  3. Проверьте, что служба слушает нужные порты: ss -tlnp | grep -E '2017|20170|20171' (для v2rayA).
  4. Попробуйте использовать SOCKS5 вместо HTTP: curl -x socks5h://127.0.0.1:20170 https://api.ip.sb/ip.

Проблема: прозрачный прокси не работает в LXC

Режим прозрачного прокси требует iptables. Установите его: apt install iptables -y. Если это не помогает, отключите прозрачный прокси в настройках v2rayA и используйте обычный SOCKS5/HTTP прокси.

Проблема: конфликт портов

Если порт занят другим процессом, найдите его: sudo ss -tlnp | grep 2017. Остановите конфликтующий процесс или измените порт в конфигурации.

Проблема: медленное соединение

Проверьте задержку до сервера, выберите оптимальный протокол (VLESS+REALITY обычно быстрее), убедитесь, что сервер не перегружен.

Проблема: не удаётся импортировать конфигурацию

Убедитесь, что ссылка или QR-код скопированы полностью, и что клиент поддерживает выбранный протокол.

Заключение и рекомендации

Xray VPN на Ubuntu — это мощное и гибкое решение для обеспечения приватности и обхода блокировок. Благодаря поддержке современных протоколов и панелей управления, развернуть собственный VPN-сервер можно всего за 10-15 минут.

Основные рекомендации:

  • Выбирайте панель по задачам: 3x-ui для многопользовательских сценариев, v2rayA для лёгких и изолированных установок.
  • Всегда меняйте стандартные пароли и порты.
  • Используйте REALITY для маскировки трафика — это значительно повышает устойчивость к блокировкам.
  • Регулярно обновляйте программное обеспечение.
  • Делайте резервные копии конфигураций.

Следуя этому руководству, вы сможете создать надёжный и безопасный VPN-сервер, который будет работать стабильно и эффективно.

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

Какие минимальные требования к серверу для Xray VPN?

Для базовой работы достаточно VPS с 1 ядром CPU и 512 МБ RAM. Если планируется много одновременных подключений, рекомендуется 1-2 ядра и 1 ГБ RAM. Операционная система — Ubuntu 20.04 или новее. Также необходимо открыть порты для VPN-трафика (обычно 443 TCP/UDP) и порт панели управления.

В чём разница между 3x-ui и v2rayA?

3x-ui — это полнофункциональная веб-панель с поддержкой множества протоколов, управлением пользователями и генерацией QR-кодов. Она удобна для администрирования нескольких пользователей. v2rayA — более лёгкое решение, которое часто используется в LXC-контейнерах. Оно предоставляет простой веб-интерфейс и требует отдельной установки ядра Xray. Выбор зависит от ваших задач: 3x-ui лучше для многопользовательских сценариев, v2rayA — для личного использования или ограниченных ресурсов.

Как защитить панель управления от несанкционированного доступа?

Сразу после установки смените стандартный логин и пароль. Измените порт панели на нестандартный (например, в диапазоне 10000-60000). Включите HTTPS, используя сертификат Let's Encrypt. Ограничьте доступ к панели по IP-адресу, если это возможно. Также регулярно обновляйте панель до последней версии.

Что такое REALITY и зачем он нужен?

REALITY — это технология, встроенная в Xray, которая маскирует VPN-трафик под обычное TLS-соединение с известным доменом (например, microsoft.com). Это делает трафик неотличимым от обычного веб-серфинга, что затрудняет его обнаружение системами DPI и блокировку. REALITY рекомендуется использовать с протоколом VLESS для максимальной устойчивости.

Как проверить, что VPN-сервер работает?

После настройки клиента выполните проверку: в клиенте (V2RayN, V2RayNG) запустите тест задержки — он должен показать пинг в миллисекундах. Также можно использовать команду curl -x socks5h://127.0.0.1:20170 https://api.ip.sb/ip (для v2rayA) или curl https://api.ip.sb/ip при включённом системном прокси. Если вы видите IP вашего VPN-сервера — всё работает.

Что делать, если VPN-соединение не устанавливается?

Проверьте статус службы Xray и панели (systemctl status xray или systemctl status v2raya). Убедитесь, что порты открыты в файрволе. Проверьте, что профиль активирован в панели. Посмотрите логи (journalctl -u xray -f). Попробуйте использовать другой протокол или порт. Если проблема в LXC-контейнере, проверьте, что установлен iptables и контейнер привилегированный.

Можно ли использовать Xray VPN на нескольких устройствах одновременно?

Да, можно. В 3x-ui создайте отдельный inbound для каждого пользователя или добавьте несколько клиентов в один inbound. В v2rayA можно импортировать несколько профилей и переключаться между ними. Количество одновременных подключений ограничено только ресурсами сервера.