HFK Routers
HFK Routers — это Telegram-бот, который предоставляет пользователям удобный способ оплаты подписки на доступ к прокси-серверу через перепрошитый роутер, приобретённый в HFK Shop.
Что даёт
Бот связывает купленный в HFK Shop роутер с Telegram-аккаунтом пользователя, позволяя мгновенно активировать VPN-доступ и управлять подпиской без техподдержки. Всё, что нужно — ввести короткий код CID из комплекта.
Как работает
Начнём с того, что бот умеет разделять админа и клиента по Telegram ID, задаваемому в переменной окружения. Пройдёмся по цепочке событий от добавления CID в бд до фактического ввода этого CID пользователем.
Админ может добавлять CID в бд с помощью кнопки. CID генерируется следующим образом: с помощью библиотеки Python
uuid
создаётся UUID, который затем кодируется в формат base58 и обрезается до 14 символов с начала. Данный подход был выбран осознанно, поскольку:- UUID уникален почти со 100%-вероятностью;
- Кодировка base58 не содержит схожих символов, таких как “l” и “I” или “0” и “O”.
Тем не менее, после кодировки UUID и последующего укорачивания результата уникальность стремительно падает, поэтому перед добавлением в бд происходит проверка на совпадение.
После успешного взаимодействия с базой данных, бот отправляет POST-запрос на сервер с предустановленной панелью 3x-ui с целью добавить пользователя в подключение (inbound 3x-ui). В качестве subscription_id устанавливается ранее созданный CID, что и позволяет связать роутер с клиентом (client 3x-ui).
Далее админ должен вручную добавить ссылку на подписку (subscription 3x-ui) в перепрошитый роутер и активировать работу ПО. Лучшим вариантом будет поднять reverse-proxy (например, этот), чтобы в случае потери сервера не пришлось менять ссылки вручную в каждом роутере.
Когда клиент получает роутер, он переходит в Telegram-бот и вводит имеющийся CID, идущий в комплекте. В случае совпадения введённого значения и какого-либо CID из базы данных, Telegram ID пользователя связывается с этим CID, а подписка автоматически активируется в качестве пробного периода на 30 дней. Если же совпадения не произошло, пользователь не сможет повторно отправить CID в течение 30 секунд с последнего сообщения. Сделано это для того, чтобы предотвратить попытки брутфорса.
Теперь клиент может выбирать период, на который он хочет продлить подписку, и оплатить её через YooMoney.
Стек технологий
- 🐍 Python + Aiogram 3
- 🧠 PostgreSQL + Redis
- 🐳 Docker + Nginx
- ⚙️ Alembic (миграции БД)
- 🔗 Webhook, anti-spam
Основные фичи
✅ Полностью автоматическая активация роутеров через Telegram
✅ Безопасный, приватный и мгновенный доступ к прокси
✅ Защита от спама и брутфорса (анти-флуд)
✅ Webhook — Более быстрый и безопасный способ получать апдейты от Telegram
Исходный код
В открытом доступе сейчас лежат только наработки, готовый исходный код будет выложен позже.
Ссылки
Готовый бот: https://t.me/hfk_routers_robot
GitHub-репозиторий проекта: https://github.com/NoisyCake/DEMO_hfk_routers_bot
Автор: https://t.me/noisycake
ТКГ: https://t.me/hfk_blog
Teletype: https://teletype.in/@noisycake
