From remnawave-xray
Generates, validates, and debugs Remnawave VPN nodes using Xray-core (VLESS+Reality+XTLS-Vision), Caddy selfsteal masking, and mihomo (Clash.Meta) client configs. Includes stack reference, config generation with validated defaults, consistency validator, and symptom-to-fix diagnostics.
How this skill is triggered — by the user, by Claude, or both
Slash command
/remnawave-xray:remnawave-xrayThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Скилл под конкретный стек: **Remnawave** (оркестратор панель→нода) → **Xray-core**
diagnostics.mdexamples/mihomo-example.yamlexamples/subscription-response-rules.jsonexamples/xray-balancer-leastload.jsonexamples/xray-balancer-random.jsonexamples/xray-cdn-bridge.jsonexamples/xray-client-ru-routing.jsonexamples/xray-selfsteal-node.jsongenerators.mdreference/architecture.mdreference/caddy-selfsteal.mdreference/mihomo.mdreference/protocols.mdreference/remnawave.mdreference/routing.mdreference/transports.mdreference/xray-reality.mdvalidate.pyСкилл под конкретный стек: Remnawave (оркестратор панель→нода) → Xray-core (VLESS+Reality+XTLS-Vision на ноде) → Caddy (selfsteal-заглушка на той же машине) → mihomo/Clash.Meta (клиент). Три режима: справочник, генератор конфигов, диагностика.
Данные собраны из первоисточников (исходники XTLS/Xray-core, wiki mihomo, docs.rw, selfsteal.sh DigneZzZ) на 2026-07-01. Факты, помеченные в подфайлах как «НЕТОЧНО» — проверять под свою версию.
:443 (0.0.0.0)
клиент mihomo ──TLS──► Xray-core (VLESS+Reality+Vision)
│
Reality-auth OK ├─► расшифровка VLESS, проксирование трафика юзера
│
auth FAIL ─────┴─► прозрачный форвард (raw TCP + PROXY-proto xver:1)
──► Caddy :9443 (127.0.0.1) ──► реальный сайт-заглушка
Caddy :80 (0.0.0.0) держит ACME HTTP-01 сам
Смысл selfsteal: dest Reality = твой собственный домен с настоящим ACME-сертом и
реальным сайтом за Caddy. Активный пробинг видит обычный сайт — неотличимо. Детали и
таблица портов → reference/architecture.md.
realitySettings.dest → локальный Caddy (напр. 127.0.0.1:9443);
serverNames == SELF_STEAL_DOMAIN; SELF_STEAL_PORT совпадает в Caddyfile (https_port)
и в Xray dest. Разъехались — handshake или заглушка ломаются.xtls-rprx-vision, одинаковый на сервере и клиенте, только поверх raw TCP.
Legacy XTLS-flow (-direct/-splice/-origin) — мёртвая ошибка в коде.client-fingerprint обязателен при reality-opts — без него handshake
не поднимется (REALITY is based on uTLS...). global-client-fingerprint выпилен в 1.19.27 —
только per-proxy.xray x25519 -i "<server privateKey>";
shortId ≤16 hex, чётная длина; на клиенте — единственное число serverName/shortId
(множественное = ошибка парсинга).apple/icloud в serverNames (ядро выдаёт warning + бан по GFW). Никакого allowInsecure
(выпилен в v26.2.6). show: false в проде.network_mode: host для Xray и Caddy; порт 80 открыт (ACME); порт ноды
(control-API панель→нода) открыт только для IP панели; связь панель→нода двухслойная (mTLS + JWT RS256,
SECRET_KEY = base64-JSON с сертами). Внутренний API Xray — 127.0.0.1:61000/unix-socket (не «61001»), не трогать.| Задача | Файл |
|---|---|
| Как устроена нода, порты, потоки данных, xver/proxy_protocol | reference/architecture.md |
| Reality/Vision: параметры, dest, ключи, post-quantum, анти-пробинг, что выпилено | reference/xray-reality.md |
| Caddy selfsteal: Caddyfile, ACME, listener_wrappers, DNS-only домен | reference/caddy-selfsteal.md |
| mihomo клиент: yaml, VLESS+Reality запись, DNS/rules/sniffer/tun, грабли | reference/mihomo.md |
| Панель: Config Profile→Inbound→Host, node-agent, автогенерация pubkey | reference/remnawave.md |
| Другие транспорты: xhttp / ws / grpc / httpupgrade / mkcp / hysteria (HY2) | reference/transports.md |
| Другие протоколы: vmess / trojan / ss / wireguard / VLESS-Encryption + статус HY2/TUIC/AnyTLS | reference/protocols.md |
| Routing: сплит-туннель РФ, гео-разблок (OpenAI/Gemini), WARP outbound, geosite/geoip | reference/routing.md |
| Сгенерировать конфиг под параметры + команды ключей | generators.md |
| Проверить готовый конфиг на согласованность (скрипт) | python validate.py <config.json> [Caddyfile] |
| Что-то не работает / палится → симптом→причина→фикс | diagnostics.md |
| Готовые обезличенные боевые шаблоны (selfsteal / CDN-мост / балансир / mihomo / SRR) | examples/ |
| Компонент | Версия | Формат |
|---|---|---|
| Remnawave panel/node | 2.8.0 (2026-06-29) | semver |
| Xray-core | v26.6.27 | CalVer vYY.M.D |
| Caddy | 2.11.4 | semver |
| mihomo (Clash.Meta) | 1.19.27 | линейка v1.19.x |
Чем проверить актуальность (версии тут — снимок на дату сборки):
docker exec remnanode xray version # ядро на ноде
docker exec caddy-selfsteal caddy version # Caddy
curl -s https://api.github.com/repos/XTLS/Xray-core/releases/latest | grep tag_name
curl -s https://api.github.com/repos/remnawave/panel/releases/latest | grep tag_name
curl -s https://api.github.com/repos/MetaCubeX/mihomo/releases/latest | grep tag_name
reference/*.md, ответить по факту, не по памяти.generators.md, заполнить плейсхолдеры, прогнать чеклист согласованности,
затем python validate.py <config.json> [Caddyfile] — исполняемая проверка тех же инвариантов.diagnostics.md, от симптома к причине, дать команды проверки.npx claudepluginhub case211/skill-remnawave-xrayDeploys production Xray-core Trojan proxy nodes via SSH with server probing for OS/CPU/memory/ports/firewall, TLS cert pinning, and TunPilot registration.
Deploys a free VLESS proxy/VPN node on Cloudflare Pages using edgetunnel. Automates domain registration, DNS config, and client setup. Useful for bypassing SNI blocking with custom domains.
Network infrastructure for self-hosted environments: VLANs, firewalls (nftables, OPNsense, pfSense), DNS (Pi-hole, AdGuard Home, split-horizon), reverse proxies (Caddy, Traefik, Nginx Proxy Manager), VPN (WireGuard, Tailscale), TLS/SSL certificate management, DHCP, and security hardening. Invoke when task involves any interaction with network configuration — designing, implementing, debugging, reviewing, or planning network architecture.