Рубрики
*NIX информация

debian 13 / xray / vless

Не актуален 06.06.2026, но еще может поработать.  

0. Установка:

0. Скачиваем:
curl -L https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip -o Xray.zip
1. Распаковываем архив и ставим их
unzip Xray.zip -d /usr/local/bin/

1.1 Создаем каталог для конфигов
mkdir -p /usr/local/etc/xray
cd /usr/local/etc/xray 

2. Делаем исполнительным файл xray исполнительным:
chmod +x /usr/local/bin/xray

3. Создаем конфиг:
Пример:
cat > /usr/local/etc/xray/config.json << EOF
{
  "inbounds": [
    {
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          { "id": "ВАШ-UUID", "flow": "xtls-rprx-vision" }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "dest": "www.google.com:443",
          "serverNames": ["www.google.com"],
          "privateKey": "ВАШ-ПРИВАТНЫЙ-КЛЮЧ",
          "shortIds": ["ВАШ-SHORTID"]
        }
      }
    }
  ]
}

EOF


4. Проверяем, нет ли ошибок в конфиге
xray -test -config /usr/local/etc/xray/config.json


5. Делаем системд юнит для запуска:
cat > /etc/systemd/system/xray.service << "EOF"
[Unit]
Description=Xray Service
Documentation=https://github.com/xtls
After=network.target nss-lookup.target

[Service]
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 -config /usr/local/etc/xray/config.json
Restart=on-failure
RestartPreventExitStatus=23
LimitNPROC=10000
LimitNOFILE=1000000

[Install]
WantedBy=multi-user.target
EOF

5.1 Что мы там нагородили в сервисе:
User=nobody — служба будет работать от ограниченного пользователя (безопасно) 
ExecStart=... — указывает, где лежит Xray и ваш конфиг
Restart=on-failure — автоматически перезапустится, если что-то пойдёт не так

5.2 Первый запуск и проверка 
#После создания service-файла нужно перечитать конфигурацию systemd:
systemctl daemon-reload

# Включаем автозапуск при загрузке сервера
systemctl enable xray

# Запускаем Xray сейчас
systemctl start xray

# Проверяем, что всё работает
systemctl status xray

# Смотрим логи
journalctl -u xray -f --since "1 minute ago"


5.3 Останавливаем разбираемся что настраивать
systemctl stop xray

1. Краткое описание что есть что:

Внимательно знакомимся что есть что:

UUID — это уникальный идентификатор.
Генерируем UUID выполните команду:
xray uuid

PrivateKey и PublicKey -  (приватный и публичный) Это самый важный шаг.
Генерируем пару ключей Reality выполните команду:
xray x25519

Приватный ключ: пойдёт в конфиг сервера (privateKey)
Публичный ключ: пойдет для конфига клиента (параметр pbk)

ShortID — это шестнадцатеричная строка. 
Генерируем ShortID выполните команду:
openssl rand -hex 8

2. Основная настройка сервера и облегчение первого запуска:

Берем какой нибудь текстовый редактор, в него мы будем сохранять полученные значения и подготавливать конфиг.
Вводим описанные команды для конфига ниже для трех пользователей:
0. Нужно сгенерировать три уида
xray uuid
xray uuid
xray uuid
1. Нужно сгенерировать приватный и публичный ключ в кол-ве 1шт
xray x25519
2. нужно сгенерировать short-id в кол-ве 1шт
openssl rand -hex 8


3. Внимательно заполняем ниже
# Как это вставить на сервер думаю объяснять не надо. 
UUID_1="пишем первый уид"
UUID_2="пишем второй уид"
UUID_3="пишем третий уид"
SERVER_IP="Сюда пишем внешний адрес сервера"
PORT="желаемый порт для сервера xray например 25687"
SNI="Желаемый SNI, то сайт которым будет прикидываться reality, этот момент я оставлю не объяснённым, но это важная опция"
PUBLIC_KEY="сюда публичный ключ"
SHORT_ID="сюда пишем шорт"
PrivateKey="пишем приватный ключ"

cat > /usr/local/etc/xray/config.json << EOF
{
  "log": {"loglevel": "debug"},
  "inbounds": [
    {
      "port": $PORT,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "$UUID_1",
            "flow": "xtls-rprx-vision",
            "email": "notebook@example.com"
          },
          {
            "id": "$UUID_2",
            "flow": "xtls-rprx-vision",
            "email": "phone@example.com"
          },
          {
            "id": "$UUID_3",
            "flow": "xtls-rprx-vision",
            "email": "tablet@example.com"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "dest": "$SNI:443",
          "serverNames": ["$SNI"],
          "privateKey": "$PrivateKey",
          "shortIds": ["$SHORT_ID"],
          "servername": "$SNI"
        }
      }
    }
  ],
  "outbounds": [{"protocol": "freedom"}]
}
EOF



# Собираем ссылку
VLESS_LINK1="vless://$UUID_1@$SERVER_IP:$PORT?encryption=none&security=reality&flow=xtls-rprx-vision&sni=$SNI&fp=chrome&pbk=$PUBLIC_KEY&sid=$SHORT_ID&type=tcp&alpn=http%2F1.1#MyVLESS_REALITY1"
VLESS_LINK2="vless://$UUID_2@$SERVER_IP:$PORT?encryption=none&security=reality&flow=xtls-rprx-vision&sni=$SNI&fp=chrome&pbk=$PUBLIC_KEY&sid=$SHORT_ID&type=tcp&alpn=http%2F1.1#MyVLESS_REALITY2"
VLESS_LINK3="vless://$UUID_3@$SERVER_IP:$PORT?encryption=none&security=reality&flow=xtls-rprx-vision&sni=$SNI&fp=chrome&pbk=$PUBLIC_KEY&sid=$SHORT_ID&type=tcp&alpn=http%2F1.1#MyVLESS_REALITY3"


# Выводим ссылку на экран
echo $VLESS_LINK1
echo $VLESS_LINK2
echo $VLESS_LINK3

# Генерируем QR-код для UUID_1 (можно отсканировать телефоном)
qrencode -t ansiutf8 $VLESS_LINK1

3. Клиент для пк для телефона и т.д.

Заходите на github.com/2dust/v2rayN/releases
Скачиваете файл v2rayN-xx.zip (последняя версия)
Для андройда их много всяких в гуглаплей
Для яблока тоже. 

основные названия у клиентов HAPP, v2ray*

есть и другие

все они работают с переменным успехом, как и упомянутые клиенты выше


Самый быстрый способ подключится к серверу xray:
Скопируйте вашу VLESS-ссылку с сервера (начинается с vless://)

В приложении xray:
Нажмите на меню "Серверы" -> "Импорт ссылок из буфера обмена" 
Всё! Сервер появится в списке.

Второй способ использовать камеру телефона из вашего приложения, для сканирования куракода