📌 Шпаргалка #27

🛡️ Персональный VPN для жосткой цензуры (VLESS + XTLS-Reality)

✍️ pentestudy 📅 27.03.2026

📌 Что это / Зачем это нужно

VLESS + XTLS-Reality — это связка протокола и транспорта, которая маскирует VPN-трафик под обычный HTTPS. DPI (глубокая инспекция пакетов) в России (ТСПУ) и Китае (GFW) не может отличить твой VPN от обычного посещения google.com. Это сейчас золотой стандарт обхода жёстких интернет-блокировок.

Обычные VPN (WireGuard, OpenVPN, IPSec) палятся DPI за секунды — у них характерные паттерны трафика. Reality решает эту проблему: твой сервер при TLS-хендшейке предъявляет настоящий сертификат реального сайта, а не самоподписанный. Для внешнего наблюдателя ты просто зашёл на www.microsoft.com.


⚡ Как работает Reality (на пальцах)

Обычный VPN: ты подключаешься к серверу → DPI видит «VPN-протокол на IP x.x.x.x» → блокирует.

Reality работает иначе:

  1. Твой клиент отправляет TLS ClientHello с SNI www.microsoft.com (или другой реальный сайт)
  2. DPI видит обычный HTTPS-запрос к Microsoft — пропускает
  3. Твой сервер перехватывает запрос, проверяет секретный ключ в хендшейке
  4. Если ключ верный — устанавливает VPN-туннель
  5. Если ключ неверный (кто-то проверяет твой сервер) — проксирует запрос на настоящий microsoft.com и возвращает настоящую страницу

Аналогия: это как секретный бар за дверью обычного магазина. Кто знает пароль — попадает внутрь. Кто не знает — видит обычный магазин. Проверяющий заходит, видит магазин, уходит. А за стеной — вечеринка.


🔧 Требования к серверу

Железо (минимум)

  • CPU: 1 vCPU (Xray почти не грузит процессор — XTLS пропускает TLS без перешифровки)
  • RAM: 512 MB (Xray в работе ~20-30 MB)
  • Диск: 10 GB SSD
  • ОС: Ubuntu 22.04 / 24.04 или Debian 12

Самый дешёвый VPS за $3-5/месяц — более чем достаточно для 1-3 пользователей.

Пропускная способность (это важнее железа)

  • Порт: минимум 1 Gbps
  • Трафик: 1-2 TB/месяц на одного, 3-5 TB на семью/друзей, или анлим
  • Если смотришь видео через VPN — трафик улетает быстро, учитывай

Локация (критично для скорости)

Для пользователей в России (пинг в скобках):

  • Германия, Франкфурт (30-50 ms) — лучший вариант
  • Финляндия, Хельсинки (30-40 ms) — отлично
  • Нидерланды (40-60 ms) — хорошо
  • Латвия, Рига (30-50 ms) — хорошо

Для пользователей в Китае:

  • Гонконг (30-60 ms) — лучший вариант
  • Япония, Токио (40-80 ms) — отлично
  • Сингапур (60-100 ms) — хорошо
  • Тайвань (50-80 ms) — хорошо

Плохой выбор для обоих: США (120-200 ms), Бразилия (200-300 ms), Австралия.

Проверенные провайдеры

  • Hetzner — Германия, от €3.29/мес, 20 TB трафик. Лучшее соотношение цена/качество для России
  • Vultr — много локаций, от $3.50/мес, 1-2 TB трафик
  • BandwagonHost — CN2 GIA линии в Китай, заточен под обход GFW
  • Oracle Cloud Free Tier — бесплатно навсегда (2 VM), но лотерея с качеством IP

Проверка IP перед настройкой

Сразу после покупки VPS проверь, что IP не заблокирован в целевой стране:

# С самого VPS — проверяешь доступность
curl -I https://www.google.com

# Онлайн-сервисы (открой в браузере):
# check-host.net — ping из разных стран
# ping.pe — проверка доступности из Китая
# https://bgp.he.net — инфо о подсети

Если IP заблокирован — у большинства провайдеров можно запросить замену или пересоздать VPS.


🎯 Установка Xray + Reality (пошагово)

Шаг 1: Подготовка сервера

Подключаешься к VPS по SSH и обновляешь систему:

apt update && apt upgrade -y

Шаг 2: Установка Xray

Официальный скрипт от проекта XTLS:

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

Проверяешь что установилось:

xray version

Шаг 3: Генерация ключей

UUID (идентификатор пользователя):

xray uuid

Запиши результат — это твой id. Например: a1b2c3d4-e5f6-7890-abcd-ef1234567890

Пара ключей Reality (приватный + публичный):

xray x25519

Выдаст две строки:

  • Private key:только для сервера, никому не давай
  • Public key: — для клиентов

Запиши оба ключа.

Шаг 4: Выбор SNI (сайт-маскировка)

SNI — это домен, под который маскируется твой трафик. Требования:

  • Поддерживает TLS 1.3 и HTTP/2
  • Не заблокирован в целевой стране
  • Желательно — на CDN близко к твоему серверу
  • Не должен быть слишком популярным VPN-маскировочным доменом (если все будут прятаться за один домен — его начнут проверять)

Хорошие варианты:

  • www.microsoft.com
  • www.samsung.com
  • www.amd.com
  • www.logitech.com
  • dl.google.com
  • www.asus.com

Проверить поддержку TLS 1.3:

# С VPS:
curl -I --tlsv1.3 https://www.microsoft.com
# Если ответ 200/301/302 — подходит

Шаг 5: Генерация shortId

openssl rand -hex 8

Запиши — понадобится и для сервера, и для клиента.

Шаг 6: Конфиг сервера

Создаёшь файл конфигурации:

nano /usr/local/etc/xray/config.json

Содержимое (замени значения на свои):

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "listen": "0.0.0.0",
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "ТВОЙ_UUID_СЮДА",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "show": false,
          "dest": "www.microsoft.com:443",
          "xver": 0,
          "serverNames": [
            "www.microsoft.com"
          ],
          "privateKey": "ПРИВАТНЫЙ_КЛЮЧ_СЮДА",
          "shortIds": [
            "ТВОЙ_SHORT_ID"
          ]
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls",
          "quic"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ]
}

Шаг 7: Открываем порт и запускаем

# Если используешь UFW:
ufw allow 443/tcp

# Если iptables напрямую:
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Запуск Xray:
systemctl enable xray
systemctl start xray

# Проверка:
systemctl status xray

Если статус active (running) — сервер работает.

Шаг 8: Проверка что маскировка работает

С другой машины попробуй открыть в браузере https://IP_СЕРВЕРА. Ты должен увидеть страницу microsoft.com (или какой SNI выбрал). Это значит, что для внешнего наблюдателя твой сервер выглядит как прокси Microsoft.


📱 Настройка клиентов

Данные для подключения (сохрани)

Тебе понадобятся для каждого клиента:

  • IP сервера
  • Порт: 443
  • UUID: тот что сгенерировал
  • Flow: xtls-rprx-vision
  • Security: reality
  • SNI: www.microsoft.com (или что выбрал)
  • Public key: публичный ключ из шага 3
  • Short ID: из шага 5
  • Fingerprint: chrome

Android — v2rayNG

  1. Установи v2rayNG из Google Play или GitHub
  2. Нажми +Ввод вручную [VLESS]
  3. Заполни: адрес, порт 443, UUID, flow = xtls-rprx-vision
  4. Transport: tcp, TLS: reality
  5. SNI, public key, short ID, fingerprint = chrome
  6. Сохрани, подключайся

iOS — Streisand или Wings X

  1. Установи из App Store
  2. Добавь сервер вручную или импортируй через ссылку/QR
  3. Те же параметры что выше

Windows — Hiddify или v2rayN

  1. Скачай с GitHub
  2. Добавь сервер, заполни параметры
  3. Включи системный прокси или TUN-режим (весь трафик через VPN)

macOS — Hiddify или V2Box

  1. Скачай из GitHub / App Store
  2. Импортируй конфиг
  3. Включи

Linux — Nekoray или Hiddify

# Или используй xray напрямую с клиентским конфигом:
# Создай client-config.json с inbound socks5 на 127.0.0.1:1080
# и outbound vless+reality на твой сервер
xray run -c client-config.json

Генерация ссылки для быстрого импорта

Чтобы не вводить всё руками на каждом устройстве, сгенерируй VLESS-ссылку:

vless://UUID@IP_СЕРВЕРА:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.microsoft.com&fp=chrome&pbk=ПУБЛИЧНЫЙ_КЛЮЧ&sid=SHORT_ID&type=tcp#имя-профиля

Эту ссылку можно вставить в любой клиент через «импорт из буфера обмена» или сделать QR-код.


🧠 Готовые комбо / Практические советы

Добавление нескольких пользователей

Просто добавь ещё один объект в массив clients в конфиге сервера:

"clients": [
  {
    "id": "uuid-пользователь-1",
    "flow": "xtls-rprx-vision"
  },
  {
    "id": "uuid-пользователь-2",
    "flow": "xtls-rprx-vision"
  }
]

Каждому пользователю — свой UUID. Перезапусти Xray:

systemctl restart xray

Мониторинг и логи

# Логи в реальном времени:
journalctl -u xray -f

# Проверка что порт слушает:
ss -tlnp | grep 443

# Сколько соединений сейчас:
ss -tn | grep 443 | wc -l

Автообновление Xray

# Обновить до последней версии:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

systemctl restart xray

Проверка что всё работает

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

# На клиенте — проверяешь свой внешний IP:
curl ifconfig.me
# Должен показать IP твоего VPS, не твой реальный

# Проверка утечки DNS:
# Открой https://dnsleaktest.com в браузере

⚠️ Важные моменты

  • Порт только 443. Любой другой порт — красный флаг для DPI. HTTPS живёт на 443, и твой VPN должен тоже
  • SNI выбирай аккуратно. Сайт должен поддерживать TLS 1.3, не быть заблокированным в целевой стране, и не быть «популярным среди VPN-пользователей» (если миллион людей маскируются под один домен — его начнут проверять)
  • Приватный ключ — только на сервере. Клиентам даёшь только публичный ключ. Если приватный утечёт — пересоздавай пару
  • IP сервера может засветиться. Если DPI заметит аномалию (слишком много трафика к одному IP), могут заблокировать IP целиком. Поэтому не раздавай доступ сотне людей
  • Не используй этот VPS для других сервисов на порту 443. Xray должен владеть портом 443 единолично
  • В Китае (GFW) могут блокировать целые подсети. Если IP заблокировали — меняй сервер, а не настройки
  • Регулярно обновляй Xray. Это гонка вооружений — DPI развивается, Xray тоже. Старые версии могут начать палиться
  • flow: xtls-rprx-vision обязателен. Без него Reality не работает в полную силу — трафик не будет оптимально маскироваться
  • Fingerprint ставь chrome. Это самый распространённый браузер — твой TLS-отпечаток будет неотличим от миллиардов других пользователей Chrome
Содержание
📌 Что это / Зачем это нужно ⚡ Как работает Reality (на пальцах) 🔧 Требования к серверу Железо (минимум) Пропускная способность (это важнее железа) Локация (критично для скорости) Проверенные провайдеры Проверка IP перед настройкой 🎯 Установка Xray + Reality (пошагово) Шаг 1: Подготовка сервера Шаг 2: Установка Xray Шаг 3: Генерация ключей Шаг 4: Выбор SNI (сайт-маскировка) Шаг 5: Генерация shortId Шаг 6: Конфиг сервера Шаг 7: Открываем порт и запускаем Шаг 8: Проверка что маскировка работает 📱 Настройка клиентов Данные для подключения (сохрани) Android — v2rayNG iOS — Streisand или Wings X Windows — Hiddify или v2rayN macOS — Hiddify или V2Box Linux — Nekoray или Hiddify Генерация ссылки для быстрого импорта 🧠 Готовые комбо / Практические советы Добавление нескольких пользователей Мониторинг и логи Автообновление Xray Проверка что всё работает ⚠️ Важные моменты