Xray-core на Ubuntu: установка, systemd и первый запуск
Установка Xray-core на Ubuntu через официальные release, настройка systemd и placeholder config, базовая проверка и ограничения.
Содержание
Xray-core — это современное ядро для организации защищённых сетевых соединений. Оно часто используется на серверах под управлением Ubuntu, так как отличается гибкостью настройки и поддерживает множество протоколов. В этой статье мы разберём, как установить Xray-core на Ubuntu, настроить его через systemd и выполнить первый запуск с placeholder конфигурацией. Вы узнаете о ключевых аспектах: правах доступа, firewall и журналировании.
Перед началом убедитесь, что у вас есть доступ к серверу с Ubuntu (20.04 или новее) и права суперпользователя. Мы будем использовать официальные release-сборки, чтобы гарантировать актуальность и безопасность. Процесс установки займёт не более 15 минут.
Подготовка к установке
Первым делом обновите систему и установите необходимые утилиты. Выполните следующие команды:
sudo apt updatesudo apt upgrade -ysudo apt install curl unzip -y
Эти инструменты понадобятся для загрузки и распаковки архива с Xray-core. Также проверьте архитектуру вашего процессора, чтобы выбрать правильный файл. Обычно для серверов x86_64 подходит вариант amd64.
Скачивание и распаковка release
Перейдите на страницу официальных release Xray-core на GitHub. Найдите последнюю версию и скопируйте ссылку на архив для вашей архитектуры. Например, для amd64 это будет файл вида Xray-linux-64.zip. Загрузите его с помощью curl:
curl -L -o xray.zip https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip
Распакуйте архив в каталог /opt/xray:
sudo mkdir -p /opt/xray
sudo unzip xray.zip -d /opt/xray
После распаковки проверьте, что бинарный файл xray на месте:
ls -la /opt/xray
Вы должны увидеть файл xray и, возможно, другие компоненты, такие как geoip.dat и geosite.dat.
Создание placeholder конфигурации
Для первого запуска нам нужен минимальный конфигурационный файл. Создайте файл /opt/xray/config.json с помощью текстового редактора, например nano:
sudo nano /opt/xray/config.json
Вставьте следующий placeholder-конфиг (замените PORT_NUMBER на реальный порт, например 10086):
{ "inbounds": [ { "port": PORT_NUMBER, "protocol": "vmess", "settings": { "clients": [ { "id": "UUID_PLACEHOLDER" } ] } } ], "outbounds": [ { "protocol": "freedom" } ]}
Обратите внимание: используйте реальный UUID, сгенерированный командой xray uuid (запустите /opt/xray/xray uuid). Но для теста можно оставить заглушку, заменив UUID_PLACEHOLDER на произвольную строку, например 00000000-0000-0000-0000-000000000000. Однако для реальной работы потребуется уникальный идентификатор.
Настройка прав доступа
Для безопасности рекомендуется запускать Xray-core от отдельного пользователя без прав root. Создайте пользователя xray:
sudo useradd -r -s /bin/false xray
Затем измените владельца каталога /opt/xray:
sudo chown -R xray:xray /opt/xray
Убедитесь, что файл конфигурации доступен для чтения:
sudo chmod 640 /opt/xray/config.json
Теперь Xray-core сможет работать без привилегий суперпользователя.
Создание systemd unit-файла
Для управления процессом создадим systemd-сервис. Создайте файл /etc/systemd/system/xray.service:
sudo nano /etc/systemd/system/xray.service
Вставьте следующее содержимое:
[Unit]Description=Xray ServiceAfter=network.target
[Service]User=xrayGroup=xrayExecStart=/opt/xray/xray run -config /opt/xray/config.jsonRestart=on-failureRestartSec=3LimitNOFILE=4096
[Install]WantedBy=multi-user.target
Сохраните файл и перезагрузите systemd:
sudo systemctl daemon-reload
Теперь включите автозапуск и запустите сервис:
sudo systemctl enable xray
sudo systemctl start xray
Настройка firewall
Если на вашем сервере включён UFW, разрешите порт, который вы указали в конфигурации. Например, для порта 10086:
sudo ufw allow 10086/tcp
Также убедитесь, что сам UFW активен:
sudo ufw status
Если он неактивен, включите его:
sudo ufw enable
Это обеспечит доступность порта снаружи.
Проверка работы и журнал
Проверьте статус сервиса:
sudo systemctl status xray
Если всё в порядке, вы увидите активное состояние. Для просмотра журнала используйте journalctl:
sudo journalctl -u xray -f
В журнале будут отображаться сообщения о запуске и ошибки, если они есть. Например, если порт уже занят, вы увидите соответствующее предупреждение. Убедитесь, что Xray-core прослушивает порт:
sudo ss -tulpn | grep xray
Вы должны увидеть строку с вашим портом и процессом xray.
Ограничения и безопасность
Помните, что placeholder-конфигурация не предназначена для реального использования. Она лишь проверяет работоспособность ядра. Для продакшена настройте протоколы, аутентификацию и шифрование. Никогда не используйте UUID по умолчанию. Регулярно обновляйте Xray-core, следя за release на GitHub. Также ограничьте доступ к порту с помощью firewall, разрешив только нужные IP-адреса. Не запускайте Xray-core от root, используйте отдельного пользователя. И не забудьте отключить ненужные сервисы.
Заключение
Мы рассмотрели установку Xray-core на Ubuntu: скачали release, создали placeholder-конфиг, настроили systemd и firewall, проверили работу через журнал. Теперь вы можете адаптировать конфигурацию под свои нужды. Следуйте рекомендациям по безопасности, и ваш сервер будет стабильно работать.
Мини-чеклист
- Скачайте актуальный release Xray-core для вашей архитектуры
- Распакуйте архив в /opt/xray
- Создайте placeholder config с уникальным UUID
- Настройте права доступа и создайте пользователя xray
- Настройте systemd и откройте порт в firewall
Частые ошибки
- Использование root для запуска процесса
- Неверные права на файлы конфигурации
- Забыли открыть порт в firewall
- Не проверили журнал после запуска
- Использование одного и того же UUID на разных серверах
FAQ
Как обновить Xray-core на Ubuntu?
Скачайте новый release с GitHub, распакуйте поверх текущей версии и перезапустите сервис: sudo systemctl restart xray.
Почему xray не запускается после установки?
Проверьте журнал journalctl -u xray -n 50. Частая причина — неверный путь к конфигу или недостаточные права.
Как сгенерировать UUID для конфигурации?
Выполните команду /opt/xray/xray uuid, она выведет случайный UUID. Скопируйте его в config.json.
Можно ли использовать порт 80 для Xray?
Да, но убедитесь, что порт свободен, и откройте его в firewall. Для HTTPS-трафика потребуется дополнительная настройка TLS.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Получить доступ