Перейти к содержимому
Чэнь Дахуан
Все посты
4 мин чтения Оригинал

Я перенёс агрегацию прокси-подписок на Cloudflare

Объединяет несколько прокси-сервисов и собственные ноды в одну подписку, а правила маршрутизации настраиваются на стороне сервера — клиенту остаётся только подписаться.

Chen Dahuang

Chen Dahuang

Инди-разработчик

Я перенёс агрегацию прокси-подписок на Cloudflare

Я пользуюсь прокси-сервисами уже три-четыре года, а в какие-то моменты поднимал и собственные VPS-ноды. Всегда была одна занудная штука: три-пять подписок плюс несколько своих боксов разбросаны по клиенту, добавляешь их по одной, а правила маршрутизации приходится настраивать заново в каждом клиенте. Новое устройство, новый клиент или настройка кому-то из семьи — и ты прогоняешь весь ритуал снова.

Потом я подумал: незачем держать подписки по отдельности внутри клиентов. Собери их в одну ссылку, задай правила на стороне сервера — и пусть клиент просто подписывается. Чисто. Подход Sub-Store я использовал и раньше, но он крутится на собственном сервере, и уход за ним меня тяготил. Поэтому в этот раз я написал свою версию на Cloudflare — sub-store-cloudflare, открыл код на GitHub.

Она на самом деле делает одну вещь

Смешивает несколько источников подписок в одну подписку.

Конкретно можно бросить внутрь пару вещей:

  • Ссылки на подписки от нескольких прокси-сервисов
  • Текст нод с твоего VPS (vless, trojan, ss, vmess — всё подходит)
  • Даже вставить временный кусок нод

Попав внутрь, Worker забирает их и дедуплицирует, фильтрует по заданным тобой правилам, а затем по необходимости переименовывает, добавляет флаги и резолвит домены. Всё выходит слитым в одну комбинированную подписку — клиент подписывается на эту единственную ссылку, и готово.

Правила живут на стороне сервера. В комплекте идут несколько распространённых шаблонов Mihomo — acl4ssr, белый/чёрный список Loyalsoldier, ai-streaming и тому подобное — с группами маршрутизации и наборами правил, настроенными в облаке. Кормишь подписку клиентам вроде mihomo/clash, surge, sing-box, shadowrocket — и скачивается уже готовая подписка со встроенными правилами маршрутизации: никакого ручного написания правил или поддержки URL набора правил на той стороне.

Почему именно Cloudflare

Причины прагматичные:

  • Без сервера. Workers + D1, и бесплатной квоты хватает на личное использование — экономишь и деньги на сервер, и его обслуживание.
  • Сам домен workers.dev — уже за пределами «стены». Твой клиент подключается и тянет подписку без проблем — никакой матрёшечной ерунды в духе «сервер за рубежом, но ноде всё равно нужен лестничный трафик, чтобы тянуть свою же подписку».
  • После деплоя это веб-админка плюс endpoint для скачивания. Поменял клиент на телефоне — всё равно можешь открыть веб-страницу и изменить конфиг.

Стек я намеренно держал маленьким: Worker + Static Assets + D1 + Worker Secrets. KV, R2, Durable Objects, Queue, Cron — всё это вне критического пути, чем меньше, тем лучше.

Два пути развёртывания — осознанно

Первый — для тех, кто просто хочет пользоваться: жми кнопку Deploy to Cloudflare в репозитории. Cloudflare сам тянет репозиторий, создаёт Worker и D1, просит у тебя два токена и по завершении выдаёт ссылку управления с токеном. Пошагово, без командной строки.

Второй — для меня самого и для тех, кто любит ковыряться: установка в один клик силами AI-агента.

В репозитории лежит агентный протокол (AGENTS.md + SKILL внутри агента). Ты вписываешь свои источники подписок, нужные комбинированные подписки и шаблоны правил в локальный конфиг-файл, запускаешь pnpm run install:cloudflare — и агент проверяет твой логин в Cloudflare, создаёт базу, записывает секреты, мигрирует, деплоит, импортирует конфиг, верифицирует ссылки и в конце отдаёт тебе ссылку управления и ссылку для скачивания.

Свой собственный сервис я развернул именно так, поэтому рекомендую этот путь — меньше возни. При работе с Codex / Claude Code просто скопируй промпт из agent/install.prompt.md в репозитории.

Для кого это

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

Код полностью open source, AGPL. Фронтенд повторяет замысел оригинального Sub-Store; оригинал живёт в контейнере и покрывает более широкую экосистему клиентов. Моя версия — более стройная Cloudflare-native форма: проще изменять и деплоить напрямую, а не построчный клон.

Заинтересованные могут полистать репозиторий — README довольно полный, следуй шагам развёртывания.

Если было полезно — поделитесь со знакомым.
Поделиться в X

Похожие статьи