Commy Cloud — защита подписки от блокировки домена

У вас сотни или тысячи выданных ссылок https://sub.example.ru/sub/<токен>. Домен блокируют, отбирают или он истекает — и у каждого клиента подписка перестаёт обновляться. Сегодня это лечится только новой ссылкой каждому.

Commy Cloud решает это без вас-посредника: клиенты Commy сами узнают новый адрес и, после одного подтверждения пользователя, переезжают на него. Токены в ссылках остаются прежними.

Как это работает

  1. Вы создаёте в дэшборде проект. В вашем браузере создаётся ключ подписи (Ed25519) — файл остаётся у вас, на сервер уходит только публичная половина.
  2. Вы подписываете манифест: основной адрес подписки, зеркала и точку встречи — адрес в Commy Cloud, где всегда лежит свежий манифест.
  3. Вы добавляете манифест заголовком commy-manifest к ответам подписки (в Remnawave — одна настройка). Клиент запоминает ваш ключ при первом ответе.
  4. Домен заблокировали. Клиент не дозвался — пробует зеркала с тем же путём и токеном, затем спрашивает точку встречи.
  5. Вы публикуете новый манифест с новым адресом. Клиент проверяет подпись вашим ключом и спрашивает пользователя: «Провайдер сменил адрес подписки: старый → новый. Подпись проверена. Перейти?»

Почему это безопасно

  • Commy Cloud — только курьер. Подделать манифест без вашего ключа нельзя, а ключа у Cloud нет. Даже полный взлом Cloud никого не уведёт.
  • Смена адреса — всегда с согласия пользователя. Если украдут и ваш ключ, пользователь увидит неожиданный «переезд» и сможет отказаться.
  • Откат запрещён. Номер выпуска только растёт: старый подписанный манифест не вернуть.
  • Мы не видим ваших пользователей. Точке встречи клиент шлёт голый GET без токена и HWID. Мы считаем только визиты по дням; IP не хранятся — уникальность считается по хешу с суточной солью.

Подключение за 5 минут

  1. Зарегистрируйтесь: https://commy.makhkets.ru/cloud/signup.
  2. Новый проект → идентификатор (например, axm) и название. Браузер скачает файл ключа — сохраните его надёжно: без него переезд невозможен.
  3. На странице проекта заполните основной адрес (https://sub.example.ru), зеркала (если есть) и нажмите Подписать и опубликовать, выбрав файл ключа.
  4. Скопируйте строку заголовка и добавьте её к ответу подписки:
    • Remnawave: Настройки подписки → Custom response headers → commy-manifest = строка;
    • Caddy: header Commy-Manifest "v1.…";
    • nginx: add_header Commy-Manifest "v1.…" always;
  5. Готово. Клиенты, обновившие подписку, защищены. В дэшборде видно, сколько установок Commy спрашивают точку встречи.

Когда домен заблокировали

Опубликуйте новый манифест: новый основной адрес, при желании — новые зеркала. Клиенты увидят переезд при следующем обращении к точке встречи — сразу, если старый адрес молчит, и в пределах суток, если домен отобран и отвечает чужим содержимым.

Ещё в Cloud

  • Страница подписки https://commy.makhkets.ru/s/<проект>#<адрес подписки> с вашим названием, цветом и кнопками «Добавить в Commy / Happ / INCY / v2RayTun…» и QR-кодом. Адрес после # браузер не отправляет на сервер.
  • История и журнал: кто, когда и что опубликовал.
  • Доступность адресов с сервера Cloud.
  • API для автоматизации.

Commy Cloud сейчас бесплатен. Протокол открыт (спецификация), сервер — в репозитории Commy: точку встречи можно поднять у себя.