В сленге пользователей этот сервис часто называют «ускорителем сети» или «турбо-режимом интернета».
Xray-core на Ubuntu: установка, systemd, автозапуск
Помню свой первый VPS. Я потратил три часа, пытаясь понять, почему сервис не стартует после ребута — просто забыл добавить systemctl enable. В этом гайде разберу установку Xray-core на Ubuntu 22.04/24.04 так, как сам хотел бы увидеть в начале пути: без допущений, с объяснением каждого термина и команды.
Что такое Xray-core и зачем systemd
Xray-core — это основной движок для работы с протоколами VLESS, Trojan, VMess. Он принимает входящие соединения и маршрутизирует трафик. В отличие от готовых панелей, самостоятельная установка даёт полный контроль: выбор протокола, настройка TLS, управление логами.
Systemd — это система инициализации в Ubuntu. Она отвечает за запуск процессов при загрузке системы и их перезапуск в случае падения. Без systemd вам придётся каждый раз вручную запускать Xray после перезагрузки сервера.
На практике: после установки Xray-core через systemd вы один раз настраиваете конфиг, и демон висит месяцами, переживая перезагрузки и обновления ядра.
Установка Xray-core на Ubuntu: пошагово
Версия Xray-core на момент написания — 1.8.24. Команды универсальны для Ubuntu 20.04, 22.04, 24.04.
Шаг 1. Обновление пакетов и установка curl
apt update && apt upgrade -y
apt install curl unzip -y
Curl нужен для загрузки установочного скрипта, unzip — для распаковки архива.
Шаг 2. Загрузка и запуск официального скрипта
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
Скрипт скачивает последнюю версию Xray-core, распаковывает в /usr/local/bin/xray, создаёт пользователя xray и конфигурационный файл по умолчанию /usr/local/etc/xray/config.json.
Шаг 3. Проверка установки
/usr/local/bin/xray --version
Должны увидеть: Xray 1.8.24 или новее. Если версия не выводится — проверьте права на исполняемый файл (chmod +x /usr/local/bin/xray).
Настройка systemd для Xray-core
Установочный скрипт уже создал юнит systemd, но я рекомендую проверить его содержимое и внести кастомные параметры.
Где лежит юнит: /etc/systemd/system/xray.service
Проверьте содержимое:
cat /etc/systemd/system/xray.service
Стандартный юнит выглядит так:
[Unit]
Description=Xray Service
After=network.target
[Service]
Type=simple
User=nobody
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/usr/local/bin/xray run -c /usr/local/etc/xray/config.json
Restart=on-failure
RestartSec=10
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
Ключевые параметры:
Restart=on-failure— перезапуск при ошибке (например, занят порт)RestartSec=10— задержка перед перезапускомLimitNOFILE=infinity— снимает лимит на количество открытых файлов (важно при высоких нагрузках)User=nobody— работает от непривилегированного пользователя
Добавление автозапуска:
systemctl enable xray
Теперь Xray стартует при загрузке системы.
Подводные камни при установке Xray на сервер linux
Проблема 1: Забыли открыть порт в firewall
После установки и настройки конфига вы выполнили systemctl start xray, а он не отвечает. Проверьте логи:
journalctl -u xray --no-pager -n 20
Частая ошибка: порт (443 или 8443) закрыт ufw. Решение:
ufw allow 443/tcp
Или через iptables, если ufw не используется.
Проблема 2: Конфликт портов Если на VPS уже висит nginx или другой сервер на 80/443 порту, Xray не запустится. Либо меняйте порт в конфиге, либо останавливайте сторонний сервис.
Проблема 3: Неверный формат config.json Одна лишняя запятая или отсутствие закрывающей скобки — и Xray падает с ошибкой парсинга JSON. Всегда проверяйте синтаксис перед запуском:
/usr/local/bin/xray run -c /usr/local/etc/xray/config.json -test
Команда -test проверяет конфиг без фактического запуска. Если ошибок нет — увидите Configuration OK.
Проблема 4: systemctl enable не сработал
После выполнения systemctl enable xray, проверьте статус:
systemctl is-enabled xray
Должен вернуть enabled. Если нет — вероятно, юнит не скопирован в /etc/systemd/system.
Проверка работы: статус, логи, тест
После настройки конфига (с VLESS Reality или другим протоколом) проведите базовый тест.
Проверка статуса:
systemctl status xray --no-pager
Ожидаем active (running). Если failed — смотрите логи через journalctl -u xray -n 50.
Проверка потребления ресурсов:
ps aux | grep xray | grep -v grep
Xray без активных клиентов ест около 15-30 MB RAM. При 500 соединениях — 100-150 MB. Если видите 500 MB+ — ищите проблему в конфиге (например, открытые соединения от ботов).
Тест доступности порта:
netstat -tulpn | grep xray
Покажет, на каких IP и портах висит Xray. Если порт слушается на 0.0.0.0:443 — работает.
Альтернативы ручной установке Xray
1. X-UI панели (например, 3X-UI) Плюсы: веб-интерфейс, автоподписка, удобное управление клиентами. Минусы: часто компилируются из сомнительных репозиториев, есть бэкдоры. Я не рекомендую для production.
2. Sing-box Новое поколение прокси-движков. Легче Xray (~5 MB против ~15 MB), но документация скуднее. Если вы уверены в своих силах — попробуйте, но Xray-core стабильнее.
3. Готовый сервис Если не хотите возиться с VPS, конфигами и systemd — проще взять готовое решение. Например, @VPNChill_bot работает на VLESS Reality + WebSocket + Trojan, серверы в 6 странах, цена от 105₽/месяц с тремя днями пробного периода.
Частые вопросы
Какой пользователь создаётся при установке Xray-core?
Скрипт создаёт системного пользователя xray с домашней директорией /var/log/xray/. Все процессы стартуют от nobody, если не указано иное в юните.
Где находится конфигурационный файл Xray после установки?
По умолчанию: /usr/local/etc/xray/config.json. Логи лежат в /var/log/xray/access.log (успешные соединения) и /var/log/xray/error.log (ошибки).
Как правильно обновить Xray-core через systemd?
systemctl stop xray
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
systemctl start xray
После обновления проверьте логи и статус.
Почему после перезагрузки VPS Xray не запускается?
В 90% случаев — не выполнен systemctl enable xray. Проверьте через systemctl is-enabled xray. Если disabled — выполните systemctl enable xray.
Можно ли установить Xray-core на Ubuntu без прав root?
Нет. Установочный скрипт требует root для создания пользователя, записи в /usr/local/bin и настройки systemd. Если у вас ограниченный пользователь — используйте sudo.
Ручная установка Xray-core на Ubuntu даёт полный контроль, но требует внимательности: одна ошибка в JSON или забытый ufw — и сервис не запустится. Если хотите стабильный доступ к сервисам без возни с конфигами, systemd и журналами — 🎁 3 дня бесплатно — для тебя