mistgate Документация

Частые вопросы

Короткие ответы на частые вопросы о Mistgate: Docker, память, приложения, размер флота, IPv6, Cloudflare, переезд, лицензия и куда сообщать о проблемах.

На этой странице

Почему нет образа Docker?#

Mistgate — это два статических бинарника на Go: панель со встроенной базой SQLite и админкой и агент ноды. Панели больше ничего не нужно. Агент сам управляет хостом: таблицами nftables, настройками sysctl, туннельными интерфейсами, лимитом journald, своим защищённым unit systemd и самообновлением. В контейнере ему всё равно понадобились бы сеть хоста и широкие права, поэтому он работает прямо под systemd с небольшим набором возможностей. См. «Требования».

Сколько памяти он ест?#

  • Панель: цель — около 80 МБ RAM в простое (это цель, а не замер). Вход по паролю ненадолго берёт ещё 64 МиБ на хеширование пароля.
  • Агент ноды: его unit systemd выставляет лимиты по объёму RAM сервера: среда Go целится примерно в 60% RAM, выше примерно 70% systemd притормаживает агента, выше примерно 85% останавливает. Пункт доктора Память предупреждает, когда памяти на хосте мало (см. «Здоровье»).

Какие приложения подходят?#

Каждый человек получает одну ссылку подписки, а каждое приложение — формат, который умеет читать:

  • Hysteria2: приложение для подписок вроде Happ (список URI) или приложение на ядре mihomo, например Clash Verge или FlClash (профиль Mihomo YAML). Браузер по этой ссылке получает страницу человека с инструкциями.
  • AmneziaWG: приложение AmneziaVPN, с ключом на каждое устройство.

Профиль Hysteria2 с самоподписанным сертификатом проверен с официальным клиентом Hysteria2 и с Mihomo; с Happ он пока не проверен. Новые форматы подписок (Xray JSON, sing-box) в планах. См. «Подписки».

Сколько пользователей и нод он выдержит?#

Встроенного ограничения на число пользователей и нод нет. Mistgate рассчитан на небольшой флот, который ведёт один человек: одна панель с одной базой SQLite и ноды, каждая из которых держит с ней одно соединение.

Поддерживается ли IPv6?#

  • Нодам IPv6 не нужен. Пункт доктора IPv6 предупреждает только тогда, когда у ноды есть IPv6-адрес, через который нельзя выйти наружу: у клиентов, получивших AAAA-записи, сайты тогда подвисают.
  • WARP ходит через свой IPv4-адрес, поэтому для WARP нода без IPv6 подходит.
  • Панель слушает тот адрес, который задан в --listen; :443 — это и IPv4, и IPv6.
  • Ограничения частоты и блокировки входа считают одну сеть IPv6 /64 одним клиентом.

Можно ли поставить панель за Cloudflare?#

Сайт-ширму, админку и подписки можно спрятать за прокси Cloudflare, если настроить три вещи:

  1. Сертификаты. Let's Encrypt через --acme-domain рассчитывает, что к панели подключаются напрямую. За прокси дайте панели свой сертификат через --tls-cert и --tls-key, например origin-сертификат Cloudflare.
  2. Адреса клиентов. Перечислите диапазоны адресов Cloudflare в --trusted-proxy, чтобы ограничения частоты, сессии и журнал аудита видели настоящие адреса клиентов.
  3. Агенты нод. Агентам нужно прямое TLS-соединение: они работают по взаимному TLS с собственным CA панели и выбирают точку подключения секретным именем SNI, а прокси, который сам завершает TLS, это ломает. Дайте им отдельный адрес через --agent-listen и укажите в --agent-addr адрес, который не проксируется (IP или имя без прокси в DNS). Ноды, подключённые раньше, продолжают ходить по адресу из своей команды установки: подключите их заново новой командой установки.

При этом Cloudflare видит трафик админки, включая её секретный адрес. Проверка Cloudflare Turnstile на входе с этим не связана и работает в обоих случаях (см. «Безопасность»). Флаги — в «Конфигурации», работа за обратным прокси — в «Установке панели».

Можно ли переехать с другой панели?#

Инструмента для переезда нет. Поставьте панель, добавьте серверы как ноды и заведите пользователей заново. На сервере, где раньше стоял другой VPN, пункты доктора Следы других VPN и Чужие правила файрвола покажут, что от него осталось (x-ui, Xray, старые интерфейсы WireGuard, чужие правила nftables); удалять ли это, решаете вы.

Есть ли готовый релиз для скачивания?#

Пока нет: собирайте из исходников командой make build. До версии 1.0 API, хранимые настройки и протокол ноды ещё могут меняться.

Что для меня значит AGPL?#

Mistgate распространяется по лицензии GNU Affero General Public License v3.0 only. Чтобы пользоваться им без изменений для себя и своих пользователей, ничего особенного не нужно. Если вы изменили панель и даёте другим пользоваться своей версией по сети, раздел 13 лицензии требует предложить им исходный код вашей версии.

Рядом с версией в админке есть ссылка Исходный код. По умолчанию она ведёт в репозиторий проекта; форк указывает свой через serve --source-url <url> (или MISTGATE_SOURCE_URL). Пустое значение скрывает ссылку. Это краткий пересказ, а не юридическая консультация: решает файл LICENSE в репозитории.

Куда сообщать об ошибках и уязвимостях?#

  • Ошибки и вопросы: откройте issue в репозитории на GitHub. Укажите версию панели (видна в админке, её печатает mistgate version) и версию агента ноды.
  • Уязвимости: только закрыто, никогда не в публичном issue: откройте вкладку Security репозитория и выберите Report a vulnerability. См. «Безопасность».

Править страницу на GitHub