VPN·HUB·CRACK
Self-steal с nginx: Reality под вашим сайтом · VPN HUB CRACK
Self-steal с nginx: Reality под вашим сайтом
Self-steal с nginx (максимальный стелс)
Обычный Reality «крадёт» рукопожатие у чужого сайта (target: google.com), но SNI чужого домена не резолвится в ваш IP: при глубоком анализе это рассинхрон. Self-steal решает: serverNames = ваш домен (A-запись на ноду), а target = ваш сайт-обманка на локальном сокете nginx. SNI, IP и контент согласованы → активное прозванивание попадает на настоящий сайт.
📖 Незнакомые слова? Все термины простыми словами объяснены в Словаре терминов.
В официальном шаблоне Remnawave это делается через unix-сокет (/dev/shm/nginx.sock) + PROXY-protocol (xver: 1).
🚀 Selfsteal можно включить кнопкой. MultiScript поднимает маскировку selfsteal автоматически, без ручной возни с nginx/Caddy. См. «О MultiScript».
Быстрый путь: скрипт-установщик сайта-обманки
Если не хотите собирать декой руками, есть готовый установщик от DigneZzZ (github.com/DigneZzZ/remnawave-scripts). Он сам поднимает self-steal сайт на Caddy (с набором из ~8 готовых шаблонов-страниц, сертификатом и маскировкой под Reality):
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/selfsteal.sh) @ install
Скрипт спросит домен, даст выбрать шаблон и поднимет сайт. Для сайта-обманки это удобно: объект одноразовый, секретов не хранит; если отработал криво, просто перезапустили. После установки в Config Profile укажите target/dest на адрес-порт, который покажет скрипт, а serverNames = ваш домен (логика та же, что в ручном варианте ниже, только вместо nginx используется Caddy).
⚠️ Этим же репозиторием НЕ ставьте панель и ноды. Там есть
remnawave.sh(панель) иremnanode.sh(нода), но их лучше ставить вручную (официальный docker-compose, см. «Remnawave с нуля»). Почему:
- Панель это всё ваше хозяйство (БД пользователей, JWT-секреты, привязки оплат). По отзывам сообщества, сторонний скрипт иногда отрабатывает криво; для одноразового декоя это пустяк (перезапустил), а для панели полусломанная установка = тяжёлая диагностика и риск повредить/потерять данные клиентов.
- Надо знать, что и куда поставлено: где
.envи секреты, какие порты, как бэкапить и обновлять. Ручная установка по офиц. докам даёт полный контроль; скрипт-обёртка это прячет и усложняет восстановление.- Версии и дефолты: сторонний скрипт может отставать от релизов Remnawave или менять дефолтные настройки/порты, и потом сложно сверяться с официальной документацией.
- Supply-chain: запускать чужой скрипт рутом на хосте, где лежат ключи всех клиентов, это лишняя поверхность риска; для «коронной драгоценности» её минимизируют.
Итог: скриптом ставьте только сайт-обманку; панель и ноды разворачивайте руками.
Ниже разберём ручной вариант на nginx (если хотите всё контролировать или уже стоит nginx).
Шаг 1: сайт-обманка на nginx (unix-сокет)
apt update && apt -y install nginx
mkdir -p /var/www/decoy
echo '<!doctype html><title>Welcome</title><h1>It works</h1>' > /var/www/decoy/index.html
В конфиге /etc/nginx/sites-available/decoy nginx слушает unix-сокет с proxy_protocol:
server {
listen unix:/dev/shm/nginx.sock ssl proxy_protocol;
server_name your.domain; # ← ваш домен
ssl_certificate /etc/letsencrypt/live/your.domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.domain/privkey.pem;
ssl_protocols TLSv1.3;
set_real_ip_from unix:; # реальный IP клиента из PROXY-protocol
real_ip_header proxy_protocol;
root /var/www/decoy;
location / { try_files $uri /index.html; }
}
Сертификат для домена (Reality отдаёт клиенту именно его):
apt -y install certbot && certbot certonly --standalone -d your.domain
ln -s /etc/nginx/sites-available/decoy /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Сокет в
/dev/shm(tmpfs): быстро и доступно и nginx, и ноде. Если нода в Docker, пробросьте сокет в контейнер (-v /dev/shm:/dev/shm) или используйте порт127.0.0.1:8443вместо сокета.
Шаг 2: inbound в Config Profile (официальный шаблон)
{
"log": { "loglevel": "none" },
"inbounds": [{
"tag": "VLESS_SELFSTEAL",
"port": 443, "protocol": "vless",
"settings": { "clients": [], "decryption": "none" },
"sniffing": { "enabled": true, "destOverride": ["http","tls","quic"] },
"streamSettings": {
"network": "raw",
"security": "reality",
"realitySettings": {
"xver": 1, // PROXY-protocol -> реальный IP в nginx
"target": "/dev/shm/nginx.sock", // ваш сайт-обманка
"spiderX": "",
"shortIds": [""],
"privateKey": "PRIVATE_KEY", // ← из генератора панели
"serverNames": ["your.domain"] // ← ваш домен
}
}
}],
"outbounds": [
{ "tag": "DIRECT", "protocol": "freedom" },
{ "tag": "BLOCK", "protocol": "blackhole" }
],
"routing": { "rules": [
{ "ip": ["geoip:private"], "outboundTag": "BLOCK" },
{ "protocol": ["bittorrent"], "outboundTag": "BLOCK" }
]}
}
Поменять: privateKey (генератор x25519 в панели), serverNames (ваш домен). clients: [] не трогать.
Шаг 3: Host в Remnawave (Advanced)
В Hosts → создать host:
- Inbound = VLESS_SELFSTEAL
- Address = ваш домен (A-запись на ноду), Port 443
- Security = reality
- SNI = your.domain
- Public Key = publicKey из той же пары
- Short ID = как в конфиге (или пусто)
- Fingerprint = firefox или qq
Полную привязку профиль→нода→host→сквад смотрите в статье «Все рабочие конфиги».
Проверка стелса
Откройте https://your.domain в браузере: должен открыться сайт-обманка (не ошибка). Значит и DPI при активном прозвоне увидит обычный сайт на вашем домене.
Сделайте сайт-обманку правдоподобным (не пустую страницу): лендинг, блог, что угодно «живое». Связано: «Все рабочие конфиги», «Заблокировали IP?».
Реальный IP клиента в логах сайта
Когда перед Xray стоит фронт (Nginx или Caddy) или работает fallback, сайт-заглушка видит соединения с 127.0.0.1: все посетители «изнутри». Для маскировки это плохо: логи настоящего сайта так не выглядят.
Лечится PROXY protocol: фронт передаёт адрес клиента дальше, Xray его принимает и пробрасывает на сайт.
inbound
"streamSettings": {
"rawSettings": { "acceptProxyProtocol": true }
}
А в самом REALITY: "xver": 1, чтобы адрес доехал до сайта-донора. В Nginx на стороне фронта включается proxy_protocol on.
Подробнее про схемы с фронтом и fallback смотрите в статье Эталонные схемы размещения.