Материалы Tunnel

Для разработчиков VPN-подписок

Документация совместимости Tunnel для разработчиков VPN-сервисов с поддержкой Clash или Mihomo ссылок.

Документация для разработчиков 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) следующие фрагменты (без учёта регистра):

  • torrent
  • p2p
  • share
  • freenetwork
  • x-tunnel-torrent=1
  • xtt1

Примеры допустимых имён нод:

🇩🇪 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. Для работы этой функции требуется:

  1. Наличие серверов с флагом "БС-подписка" (обязательное условие)
  2. Передача параметра wlsub=true в ссылке подписки

Параметр wlsub#

https://sub.example.com/profile?token=demo&x-tunnel-torrent=1&wlsub=true

Особенности:

  • Пользователь может отключить функцию через чекбокс в приложении
  • Автоматическое переключение происходит на основе анализа текущей сети клиента

Рекомендации по разработке#

  1. Форматирование сообщений: Используйте Markdown и BBCode для улучшения пользовательского опыта, но учитывайте, что в других клиентах форматирование не отображается

  2. Управление торрентами: Чётко документируйте для пользователей политику использования торрентов в вашем сервисе

  3. Метки нод: Для поддержки режима x-tunnel-torrent=1 используйте рекомендованные метки в именах нод

  4. WLSub: При реализации функции обхода белых списков обязательно добавьте соответствующие серверы с флагом "БС-подписка"

  5. Тестирование: Проверяйте совместимость параметров подписки с различными клиентами