В админке: Настройки
Свой сайт-ширма
Зачем заменить встроенную страницу-ширму своим небольшим сайтом, каким он должен быть, как подключить его через --decoy-dir и готовый промпт, по которому AI-агент придумает уникальный сайт.
На этой странице
Публичный адрес панели показывает сайт-ширму всем, кто не админ, не клиент подписки и не агент ноды. Эта страница о том, как заменить встроенную страницу своим небольшим сайтом, чтобы адрес выглядел как любой другой маленький сайт. Флаг и правила раздачи описаны в Установке панели; как ширма прячет админку — в разделе Безопасность.
Зачем свой сайт#
Без --decoy-dir панель показывает встроенную страницу «Coming soon». Она одинакова во всех установках: кто увидел её однажды, узнает в другом месте, и сканер поймёт, что за адресом стоит панель Mistgate. Свой сайт со своими текстами и оформлением делает адрес обычным маленьким сайтом, на который никому не придёт в голову смотреть дважды.
Ноды: три варианта#
Каждая нода показывает сайт-ширму всем, кто не клиент: это маскировка Hysteria2 (HTTP/3 и TCP-сайт) и сайт VLESS REALITY в режиме self. Выберите сайт для каждой ноды в её настройках или для нескольких нод сразу на странице «Ноды» (отметьте ноды и задайте сайт-ширму):
- Встроенный оставляет фиксированную страницу Mistgate. Она одинакова во всех установках, поэтому узнаваема. Ноды, созданные до обновления, остаются на ней, пока вы не измените настройку.
- Сайт панели копирует на ноду набор файлов из
--decoy-dirпанели. Подходит для одного домена с поддоменами: поддомены всё равно связаны между собой (их перечисляют журналы Certificate Transparency), а один сайт компании на её региональных хостах выглядит естественно. Новые ноды получают этот вариант по умолчанию, если у панели есть годный каталог сайта-ширмы. - Свой сайт — набор файлов, загруженный только для этой ноды. Подходит для нод на отдельных доменах или на голых IP-адресах, которые нельзя связывать друг с другом. Для каждой ноды берите свою тему и оформление и не повторяйте тему и вид уже сделанных для других нод сайтов.
Что может быть в наборе файлов#
Правила одинаковы для загруженного «Своего сайта» и для --decoy-dir панели, когда его копируют на ноды:
- Размер: суммарно не больше 2 МиБ файлов. Лимит действует и для «Своего сайта», и для
--decoy-dirпанели. Загружаемый архив для «Своего сайта» тоже не больше 2 МиБ. Каталог больше 2 МиБ работает для самой панели, но на ноды не предлагается: в настройках ноды будет сказано, что сайт панели слишком большой, а нода продолжит отдавать то, что было. Не больше 4096 файлов. - Формат загрузки: ZIP, TAR или TAR.GZ. Заархивируйте папку как обычно: единственная обёртывающая папка снимается, если внутри неё лежит
index.html. index.htmlдолжен лежать в корне сайта.404.htmlотдаётся на любой неизвестный адрес; безrobots.txtотдаётся встроенный.- Только статические файлы. Символьные ссылки, устройства и прочее, что не файл, отклоняются, как и пути с
.., абсолютные пути и имена с обратным слэшем или двоеточием. Файлы с точки и записи macOS__MACOSXпропускаются, как их скрывает и панель. Бит исполнения игнорируется: файлы только отдаются как данные.
Если набор отклонён, панель объясняет причину (нет index.html, слишком большой, небезопасный путь, ссылка в архиве).
Как нода получает сайт#
Панель хранит каждый набор по SHA-256 и отправляет ноде только её набор, и только если у ноды его ещё нет: неизменившийся набор повторно не отправляется. Нода ещё раз проверяет набор, сохраняет его на диск и переключается, не перезапуская слушатели: открытые соединения и порты Hysteria2 и VLESS не прерываются. После перезапуска нода сразу отдаёт сохранённый сайт, ещё до переподключения к панели. В настройках ноды видно настроенный режим рядом с режимом и хешем, о которых сообщает нода, и причину расхождения: нода не в сети, изменение в пути, предыдущая отправка не удалась (панель повторяет через несколько минут) или сайт панели недоступен. Изменение --decoy-dir доходит до подключённых нод примерно за минуту.
Нода со слишком старым агентом (он появился раньше этой функции) остаётся на встроенной странице, а панель пишет «агент слишком старый»: обновите ноду и потом выберите её сайт. В редакции Edge «Свой сайт» недоступен: она не хранит наборы. Каждое изменение пишется в журнал аудита.
Подключённый по MCP ИИ-агент может задать сайт ноды инструментами node_decoy_plan и node_decoy_apply; каждое изменение подтверждает владелец. Промпт для агента на странице «ИИ-агенты» требует не повторять тему и вид сайтов, сделанных для других нод.
Каким должен быть сайт#
- Несколько статических страниц, от трёх до пяти, на правдоподобную и скучную тему, которая подходит к имени домена: небольшое местное дело или хобби-проект. Главная, «О нас», услуги или цены, контакты с адресом и часами работы.
- Текст, написанный именно для этого сайта. Не берите шаблон и тексты, которые есть где-то ещё: поисковик найдёт копию, и сайт сразу выделится. Никакого «lorem ipsum» и «сайт в разработке».
- Всё локальное и небольшое. Никаких внешних скриптов, шрифтов, CDN, аналитики, карт, встраиваемых виджетов и кнопок соцсетей. Весь сайт — заметно меньше 2 МиБ; несколько страниц и один файл стилей занимают десятки килобайт.
- Ничего, что требует бэкенда. Без форм, входа, формы обратной связи и магазина. Вместо формы дайте адрес электронной почты.
- Лёгкие картинки. Небольшие локальные SVG-рисунки или оптимизированные файлы, каждая — не больше нескольких десятков килобайт.
- Правдоподобная
404.htmlв том же стиле. Панель отвечает ею на любой неизвестный адрес, так что тот, кто ошибся адресом, увидит то, что показал бы маленький сайт. По желанию так же добавьте429.html. robots.txt— только если он вам нужен. Без него панель отдаёт встроенный файл, который закрывает сайт от известных ИИ-краулеров.- Никаких выдающих слов. Ни на одной странице нет ничего про VPN, прокси, туннели, Mistgate или панель.
- Язык, подходящий к стране домена. На домене
.deтекст по-немецки, на.fr— по-французски. - Правдоподобные, но выдуманные контакты. Выдуманные название, улица и имя. Никаких данных реального человека и реальных телефонов: телефон лучше не указывать или взять номер из диапазона, зарезервированного для вымысла.
Сайт из бесплатного шаблона или похожий на сайты других установок лишает затею смысла. Проще всего получить уникальный сайт, попросив AI-агента: промпт ниже.
Как подключить#
Панель каталог только читает. Положите сайт в каталог вне /home и /root (юнит systemd из Установки панели скрывает их от службы), например в /srv/mistgate-decoy:
mkdir -p /srv/mistgate-decoy
cp -r ./my-site/. /srv/mistgate-decoy/
find /srv/mistgate-decoy -type d -exec chmod 0755 {} +
find /srv/mistgate-decoy -type f -exec chmod 0644 {} +Файлы должны быть доступны на чтение пользователю, от имени которого работает панель; с юнитом из документации это root. Дальше:
-
Добавьте
--decoy-dir /srv/mistgate-decoyвExecStartв/etc/systemd/system/mistgate.service(или задайтеMISTGATE_DECOY_DIR; см. Конфигурацию). -
Перечитайте юнит и перезапустите панель:
systemctl daemon-reload && systemctl restart mistgate. -
Проверьте результат со своего компьютера. Главная страница и случайный адрес должны отвечать как ваш сайт, а админка — по-прежнему открываться:
curl -si https://panel.example.com/ | head -n 20 curl -si https://panel.example.com/no-such-page-7f3a | head -n 20 curl -si https://panel.example.com/<secret>/ | head -n 5Первая команда отвечает
200и вашей главной страницей, вторая —404и вашей404.html, третья —200и страницей админки (подставьте свой адрес админки; в режимах с секретным хостом и отдельным портом откройте её так, как обычно). Откройте главную и в браузере: страницы, файл стилей и картинки должны загрузиться.
Чтобы обновить сайт, замените файлы. Панель читает каталог при каждом запросе, поэтому изменения видны сразу и перезапуск не нужен; перезапускать приходится, только когда вы добавляете или меняете сам флаг --decoy-dir.
Пусть сайт сделает AI-агент#
Агент, который умеет писать файлы, придумает целый сайт за несколько минут. Промпт ниже заставляет его выбрать случайную тему и название, подходящее к вашему домену, написать все тексты с нуля и собрать обычный HTML с одним файлом стилей. Скопируйте блок, заполните три строки в разделе «Заполните» и отправьте агенту (Claude Code, Codex CLI или любому, кто пишет файлы).
DOMAIN— домен панели.LANGUAGE— язык текстов сайта.DIR— новый или пустой каталог. Если агент работает на вашем компьютере, укажите локальную папку и скопируйте её на сервер сами (scp -r); если агент работает на сервере по SSH, укажите/srv/mistgate-decoy.
Ты делаешь небольшой статический сайт маленького дела или хобби-проекта. Он будет лицом
веб-сервера для посторонних, поэтому должен выглядеть как обычный тихий правдоподобный сайт.
Сделай его с нуля: он не должен походить ни на какой шаблон и ни на какой другой сайт.
== Заполните ==
DOMAIN: example.com # доменное имя сайта; название дела должно ему соответствовать
LANGUAGE: русский # язык всех текстов (он должен подходить к стране DOMAIN)
DIR: /srv/mistgate-decoy # новый или пустой каталог для файлов
== Тема ==
Тему выбери сам, случайно. Это небольшое местное дело или хобби-проект, подходящий к DOMAIN.
Сначала запиши 30 разных идей, затем выбери одну по случайному числу (например,
"shuf -i 1-30 -n 1", если у тебя есть shell); не бери просто первую идею. Примеры ниже
показывают только разброс: настройщик пианино, пекарня в маленьком городе, бюро переводов,
ремонт велосипедов, пасечник, портной, переплётчик, аквариумный магазин, шахматный клуб,
гончарная мастерская, репетитор по математике, чайная лавка, слесарь-замочник, фотостудия,
уроки гитары. Придумай своё, а не бери пример как есть. Выбери название, согласованное с
DOMAIN (производное от него или такое, что могло бы к нему относиться), и выдуманный город
или район в стране, к которой относится DOMAIN.
== Содержание ==
1. Все тексты напиши сам, с нуля, на языке LANGUAGE: живые, конкретные, разнообразные. Без
lorem ipsum, без заглушек, без «скоро открытие» и «сайт в разработке», без текста,
скопированного откуда-либо. Дай делу небольшой характер: короткая история, несколько
услуг или товаров с выдуманными ценами, часы работы, пара честных подробностей.
2. Страниц от 3 до 5 (например, главная, о нас, услуги или цены, контакты и, возможно,
короткая страница новостей или вопросов и ответов), плюс 404.html в том же стиле с
коротким дружелюбным текстом и ссылкой на главную.
3. Контакты вымышленные: выдуманные улица и дом, выдуманное имя человека (не известное),
адрес почты на DOMAIN вроде info@DOMAIN. Никаких данных реального человека, реальных
компаний, ИНН и регистрационных номеров. Телефон указывай, только если он из диапазона,
зарезервированного для вымысла (например, США 555-0100–555-0199, Великобритания
020 7946 0xxx); иначе не указывай вовсе.
4. Нигде не упоминай VPN, прокси, туннели, серверы, хостинг, панель и Mistgate и не пиши
ничего технического о самом сайте.
== Технические правила ==
1. Обычный HTML5 и ОДИН файл стилей, /style.css. Без JavaScript. Без форм, входа и всего,
что требует бэкенда.
2. Никаких внешних ресурсов: ни CDN, ни веб-шрифтов (бери системные), ни аналитики, карт,
встраиваемых виджетов, iframe, кнопок соцсетей, удалённых картинок, ни ссылок на другие
сайты. Все адреса в файлах локальные.
3. Структура: каждая страница в своей папке с index.html (/index.html, /about/index.html,
/contact/index.html, ...), а 404.html лежит в корне. Все ссылки и путь к файлу стилей
пиши абсолютными от корня (/style.css, /about/), потому что 404.html показывается по
любому адресу.
4. Картинки: немного, нарисованные тобой маленькие локальные SVG-файлы (или без них). Без
стоковых фото. Каждый файл меньше 50 КБ. Небольшой /favicon.svg не помешает.
5. На каждой странице есть lang, charset, viewport, <title> и meta description, подходящие
к странице. Используй нормальные заголовки и alt-тексты.
6. Общий размер всех файлов меньше 500 КБ.
7. Не копируй вид известных шаблонов и фреймворков. Выбери свою раскладку (вид шапки и
навигации, сетку, отступы), свою палитру и своё сочетание системных шрифтов, чтобы сайт
заметно отличался от привычных. Он должен нормально выглядеть на телефоне.
8. Не создавай robots.txt и ничего, чьё имя начинается с точки.
== Безопасность ==
1. Пиши файлы только внутри DIR и создавай только DIR и его подпапки. Если DIR уже есть и
не пуст, остановись и спроси меня.
2. Больше ничего не трогай: никаких других каталогов, служб и настроек, пакетов и сетевых
запросов, никаких команд, кроме тех, что пишут и проверяют эти файлы.
== Когда закончишь ==
1. Проверь работу: все страницы ссылаются только на существующие локальные файлы, ни в
одном файле нет «http://» и «https://» (кроме пространства имён SVG), и ни одно слово из
пункта 4 раздела «Содержание» не встречается.
2. Выведи список файлов с размерами и общий размер (например,
"find DIR -type f -exec ls -l {} +" и "du -sb DIR"), затем одну строку с выбранной темой
и названием. Больше ничего.Когда агент закончит, подключите каталог. Если панель вам устанавливает агент, в инструкции для AI-агента это уже есть необязательным шагом.