Главная Проекты Статьи 🔑 Генератор паролей ⚡ VLESS Конвертер Контакты
← Все статьи
VPN

Настройка VLESS Reality сервера на Linux (Xray-core)

Что такое VLESS Reality

VLESS Reality — современный протокол для обхода цензуры, разработанный командой Xray-core. В отличие от классического TLS, Reality не требует собственного домена и сертификата: сервер притворяется реальным сайтом (например, www.microsoft.com), копируя его TLS-отпечаток. Для DPI-систем соединение выглядит как легитимный HTTPS-трафик к реальному хосту.

Преимущества перед другими протоколами:

  • Не нужен домен — достаточно IP-адреса сервера
  • Нет риска блокировки по сертификату (сертификата нет)
  • Поддерживает XTLS Vision — нулевые накладные расходы на шифрование
  • Работает через порт 443 — неотличим от HTTPS

Требования

  • VPS с Linux (Debian 11+, Ubuntu 22.04+, Rocky 9)
  • Публичный IP-адрес
  • Порт 443 не занят (nginx/apache нужно убрать или изменить порт)
  • Root-доступ

Шаг 1 — Установка Xray-core

Официальный установщик от команды Xray:

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

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

  • Бинарник: /usr/local/bin/xray
  • Конфиги: /usr/local/etc/xray/
  • Сервис: systemctl status xray

Шаг 2 — Генерация ключей Reality

xray x25519

Вывод будет примерно таким:

Private key: 4GaXRMHYkIVDZ4TfIFArXKj7b3qPJBhvIgMhN6nWrFE
Public key:  2Gu5KFD0CP2rMTRm0OYy-KMgVtDT-qwCPQkHLrdUxEM

Сохраните оба ключа — они понадобятся для конфига сервера и клиента.

Сгенерируйте UUID для пользователя:

xray uuid

Сгенерируйте shortId (8 случайных байт в hex):

openssl rand -hex 8

Шаг 3 — Выбор SNI (целевого сайта)

Reality маскируется под реальный сайт. Требования к сайту-цели:

  • Работает на порту 443
  • Не перенаправляет на другой IP (CDN типа Cloudflare не подходят)
  • Расположен в той же стране, что и VPS (меньше подозрений)
  • Поддерживает TLSv1.3 и H2 (HTTP/2)

Проверка пригодности сайта:

curl -sv --tlsv1.3 https://www.microsoft.com 2>&1 | grep -E "TLSv|ALPN|subject"

Хорошие варианты для SNI: www.microsoft.com, addons.mozilla.org, www.lovelive-anime.jp, www.samsung.com.

Шаг 4 — Конфигурация сервера

Создайте файл /usr/local/etc/xray/config.json:

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "listen": "0.0.0.0",
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "YOUR-UUID-HERE",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "show": false,
          "dest": "www.microsoft.com:443",
          "serverNames": [
            "www.microsoft.com"
          ],
          "privateKey": "YOUR-PRIVATE-KEY",
          "shortIds": [
            "YOUR-SHORT-ID"
          ]
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls", "quic"]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ]
}

Замените YOUR-UUID-HERE, YOUR-PRIVATE-KEY и YOUR-SHORT-ID на сгенерированные значения.

Шаг 5 — Запуск и автозапуск

systemctl restart xray
systemctl enable xray
systemctl status xray

Проверьте, что Xray слушает порт 443:

ss -tlnp | grep 443

Шаг 6 — Настройка firewall

# UFW
ufw allow 443/tcp
ufw reload

# iptables (если используется)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables-save > /etc/iptables/rules.v4

Шаг 7 — Формирование VLESS URI для клиента

Используйте VLESS Конвертер на этом сайте или сформируйте URI вручную:

vless://YOUR-UUID@YOUR-SERVER-IP:443?encryption=none&security=reality&flow=xtls-rprx-vision&fp=chrome&sni=www.microsoft.com&pbk=YOUR-PUBLIC-KEY&sid=YOUR-SHORT-ID&type=tcp#MyServer

Параметры:

  • fp — fingerprint браузера: chrome, firefox, safari, edge
  • pbkпубличный ключ (не приватный!)
  • sid — shortId из конфига сервера
  • sni — должен совпадать с serverNames в конфиге

Шаг 8 — Добавление пользователей

Добавьте нового клиента в массив clients:

xray uuid  # генерируем новый UUID
"clients": [
  {
    "id": "UUID-пользователя-1",
    "flow": "xtls-rprx-vision",
    "email": "user1"
  },
  {
    "id": "UUID-пользователя-2",
    "flow": "xtls-rprx-vision",
    "email": "user2"
  }
]
systemctl restart xray

Шаг 9 — Мониторинг трафика

Включите статистику в конфиге (добавьте в корень JSON):

"stats": {},
"policy": {
  "levels": {"0": {"statsUserUplink": true, "statsUserDownlink": true}},
  "system": {"statsInboundUplink": true, "statsInboundDownlink": true}
}

Просмотр статистики по пользователям:

xray api statsquery --server=127.0.0.1:10085 "user>>>"

Обновление Xray

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

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

Клиент не подключается

# Логи сервера
journalctl -u xray -f

# Проверить доступность порта снаружи
curl -v --max-time 5 https://YOUR-SERVER-IP:443 --resolve www.microsoft.com:443:YOUR-SERVER-IP

Xray не запускается — порт занят

ss -tlnp | grep 443
# Найдите процесс и остановите его:
systemctl stop nginx  # или apache2

Высокая задержка

Убедитесь, что в клиенте включён flow: xtls-rprx-vision — без него каждый пакет дополнительно шифруется TLS, что даёт заметные накладные расходы.

Ссылки