Перейти к содержанию

Автообновляемая маршрутизация (Autorouting)

Расширение функционала маршрутизации, позволяющее привязать профиль к удалённому URL-источнику. Профиль периодически скачивается и обновляется автоматически.

Отличие от Routing

Routing Autorouting
Данные Base64-профиль передаётся один раз URL-источник, профиль скачивается по нему
Обновление Только при обновлении подписки Автоматически по интервалу (по умолчанию 24ч)
sourceURL Не устанавливается Устанавливается — профиль привязан к URL
Индикатор Нет Иконка облака в списке профилей

Типы ссылок

Формат ссылки Описание
://autorouting/onadd/{url} Скачивает профиль по URL, устанавливает автообновление и активирует
://autorouting/add/{url} Скачивает профиль по URL, устанавливает автообновление

Важно: ://routing/onadd/{url} не является авторутингом — это одноразовый импорт без автообновления. Только схема ://autorouting/ устанавливает sourceURL и включает автообновление.

{url} — прямая ссылка на JSON-файл профиля (начинается с http:// или https://).

Определение типа

Тип определяется по схеме ссылки:

  • ://autorouting/autorouting (устанавливается sourceURL, включается автообновление)
  • ://routing/routing (одноразовый импорт, без sourceURL, без автообновления)

Примеры:

://autorouting/onadd/https://example.com/profile.json   → autorouting (автообновление)
://routing/onadd/https://example.com/profile.json        → routing (одноразовый импорт)
://routing/onadd/ewogICJOYW1lIjogIlRlc3QiCn0=          → routing (base64)

HTTP-заголовок

Заголовок autorouting содержит URL, по которому доступен JSON-профиль маршрутизации:

HTTP/2 200
autorouting: https://raw.githubusercontent.com/user/repo/main/profile.json

Профиль скачивается при обновлении подписки, сохраняется с привязкой к URL-источнику и периодически обновляется.

Тело подписки

Строка autorouting размещается в теле подписки наряду с серверными конфигурациями:

vless://uuid@server1:443?security=tls#Server1
vless://uuid@server2:443?security=tls#Server2
://autorouting/onadd/https://raw.githubusercontent.com/user/repo/main/profile.json

Приоритет источников

При наличии нескольких источников маршрутизации используется первый найденный:

Приоритет Источник Тип
1 (высший) Заголовок autorouting Автообновляемый
2 Body — строка с URL Автообновляемый
3 Заголовок routing Статический
4 (низший) Body — строка с base64 Статический

Конвертация GitHub URL

Ссылки на файлы в GitHub-репозиториях автоматически конвертируются из «blob» формата в «raw»:

https://github.com/user/repo/blob/main/path/profile.json
https://raw.githubusercontent.com/user/repo/main/path/profile.json

Это происходит прозрачно при импорте и автообновлении. Можно использовать обычные GitHub-ссылки — приложение само подставит правильный URL.


Контент по URL

Файл по URL может содержать:

1. Вложенная deep link ссылка:

Если контент начинается с incy:// — приложение автоматически извлекает данные профиля из ссылки. Это позволяет размещать .deeplink файлы:

incy://routing/onadd/ewogICJOYW1lIjogIlJvc2NvbVZQTiIKfQ==

Приложение извлечёт base64-данные и декодирует профиль.

2. JSON-профиль (рекомендуемый):

{
    "Name": "RoscomVPN",
    "GlobalProxy": "true",
    "RemoteDNSType": "DoH",
    "RemoteDNSDomain": "https://cloudflare-dns.com/dns-query",
    "RemoteDNSIP": "1.1.1.1",
    "Geoipurl": "https://example.com/geoip.dat",
    "Geositeurl": "https://example.com/geosite.dat",
    "DirectSites": ["geosite:ru"],
    "DirectIp": ["geoip:ru"],
    "DomainStrategy": "IPIfNonMatch"
}

3. Base64-закодированный JSON:

ewogICAgIk5hbWUiOiAiUm9zY29tVlBOIiwKICAgICJHbG9iYWxQcm94eSI6ICJ0cnVlIgp9

Приложение пробует: вложенную deep link → JSON → base64 (в порядке приоритета).

Структура полей профиля описана в routing.md.


Автообновление

Механизм

  • Приложение проверяет все профили с sourceURL каждые 30 минут
  • Если с момента последнего обновления (sourceLastUpdated) прошло больше updateInterval — профиль скачивается заново
  • При обновлении сохраняются: ID профиля, sourceURL, updateInterval, хеши геофайлов
  • Если URL геофайлов изменились после обновления — геофайлы перекачиваются автоматически

Интервалы обновления

Значение (сек) Отображение
43200 12 часов
86400 24 часа (по умолчанию)
259200 3 дня
604800 7 дней

Управление в UI

Профили с sourceURL отображают в списке иконку облака. В редакторе профиля доступна секция «Источник обновлений»:

  • URL — можно просмотреть и изменить URL-источник
  • Частота обновления — выбор интервала обновления
  • Обновлено — время последнего обновления
  • Обновить сейчас — ручное обновление профиля
  • Удалить источник — отвязать профиль от URL (превращает в статический)

Обновление существующих профилей

  • Профили с одинаковым Name обновляются, а не дублируются
  • При обновлении автообновляемого профиля сохраняются: sourceURL, updateInterval, хеши геофайлов
  • Если URL геофайлов (Geoipurl, Geositeurl) изменились — геофайлы перекачиваются автоматически