Что такое 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,edgepbk— публичный ключ (не приватный!)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, что даёт заметные накладные расходы.