Документация для разработчиков VPN-сервисов#
Введение#
Наше приложение интегрирует адаптированное ядро Mihomo, специально оптимизированное под особенности Tunnel. Данное решение заменило предыдущую систему подписок, обеспечивая:
- Повышенную стабильность работы подписок
- Улучшенную совместимость с пользовательскими конфигурациями
- Расширенные возможности для управления трафиком
Форматы сообщений провайдера#
Поддержка Markdown#
Сообщения от провайдера поддерживают базовый синтаксис Markdown для форматирования:
## Заголовок второго уровня
### Заголовок третьего уровня
Обычный текст, *курсив*, **жирный**, ***жирный курсив***.
[Текст ссылки](https://example.org)
Поддержка BBCode#
Для управления выравниванием текста доступны следующие BBCode-теги:
[center]Текст по центру[/center]
[left]Текст слева[/left]
[right]Текст справа[/right]
[justify]Текст по ширине[/justify]
Важно:
- Максимальная длина сообщения провайдера — 1000 символов
- В несовместимых клиентах сообщения отображаются без стилизации (plain text)
Поддержка ссылок-подписок#
Собственный протокол#
Приложение поддерживает собственный протокол tunnel:// для ссылок-подписок. Наши ссылки tunnel:// могут не всегда поддерживаться другими клиентами, мы это понимаем. Однако, все другие клиенты игнорируют параметры ссылок указанные в документации ниже, потому вы можете указать в классическом формате для вас ссылку с параметрами регулирования торрентов, белых списков и так далее. Например, укажите clash:// ссылку с параметрами торрент-регулирования. Другие клиенты это проигнорируют, мы - нет.
Совместимость с другими клиентами#
Для обеспечения обратной совместимости поддерживаются ссылки-обёртки следующих клиентов:
| Протокол | Клиент |
|---|---|
clash:// |
Clash |
mihomo:// |
Mihomo |
sing-box:// |
Sing-Box |
hiddify:// |
Hiddify |
happ:// |
HApp |
Управление торрент-трафиком#
Параметр x-tunnel-torrent#
Для ограничения торрент-трафика в подписке используется параметр x-tunnel-torrent со следующими значениями:
| Значение | Поведение | Описание |
|---|---|---|
0 |
Блокировка | Торрент-клиенты исключаются из VPN/TUN для данной подписки |
1 |
Ограниченный доступ | Трафик направляется только через ноды с соответствующими метками |
2 |
Полный доступ | Торрент-клиенты разрешены на любой ноде подписки |
| Отсутствует / неверное значение | Полный доступ (режим 2) |
Используется поведение по умолчанию |
Определение нод для торрент-трафика (режим 1)#
При значении x-tunnel-torrent=1 приложение ищет ноды, содержащие в имени (отображаемое имя, remark или исходный remark) следующие фрагменты (без учёта регистра):
torrentp2psharefreenetworkx-tunnel-torrent=1xtt1
Примеры допустимых имён нод:
🇩🇪 Germany torrent.
🇳🇱 P2P relay
🇫🇮 FreeNetwork
🇩🇪 Германияxtt1🇩🇪
Примеры ссылок с параметрами#
# Блокировка торрентов
https://sub.example.com/profile?token=demo&x-tunnel-torrent=0
# Ограниченный доступ
https://sub.example.com/profile?token=demo&x-tunnel-torrent=1
# Полный доступ
https://sub.example.com/profile?token=demo&x-tunnel-torrent=2
Белые списки (WLSub)#
Функциональность#
Приложение поддерживает автоматическое переключение на серверы "обхода Белых Списков" через механизм Smart Connect. Для работы этой функции требуется:
- Наличие серверов с флагом "БС-подписка" (обязательное условие)
- Передача параметра
wlsub=trueв ссылке подписки
Параметр wlsub#
https://sub.example.com/profile?token=demo&x-tunnel-torrent=1&wlsub=true
Особенности:
- Пользователь может отключить функцию через чекбокс в приложении
- Автоматическое переключение происходит на основе анализа текущей сети клиента
Рекомендации по разработке#
Форматирование сообщений: Используйте Markdown и BBCode для улучшения пользовательского опыта, но учитывайте, что в других клиентах форматирование не отображается
Управление торрентами: Чётко документируйте для пользователей политику использования торрентов в вашем сервисе
Метки нод: Для поддержки режима
x-tunnel-torrent=1используйте рекомендованные метки в именах нодWLSub: При реализации функции обхода белых списков обязательно добавьте соответствующие серверы с флагом "БС-подписка"
Тестирование: Проверяйте совместимость параметров подписки с различными клиентами