Маршрутизация
Выбирайте, какой трафик идёт через прокси, какой — напрямую, а какой блокируется, с помощью готовых профилей или собственных правил.
Маршрутизация решает, куда направляется каждое соединение: через прокси, напрямую или никуда. Встроенный профиль Default направляет всё через прокси, поэтому эта страница нужна, только если вы хотите иначе.
Как работает маршрутизация
Профиль маршрутизации — это список правил плюс outbound по умолчанию. Throne проверяет правила сверху вниз, и первое подходящее правило решает, куда пойдёт соединение. Если ни одно правило не подошло, используется outbound по умолчанию.
| Outbound | Куда идёт трафик |
|---|---|
proxy |
Через запущенный профиль, а когда WARP включён — ещё и через WARP. |
direct |
Прямо в интернет. |
block |
Никуда. Соединение отклоняется. |
warp-bypass |
Через запущенный профиль, но без WARP. См. WARP. |
| Сохранённый профиль | Через этот профиль вместо запущенного. Только в расширенных правилах. |
Одновременно активен один профиль маршрутизации. Переключить его можно в списке внизу меню Маршрутизация (Routing) или в меню трея → Выбор маршрутизации (Select Routing). Активное подключение перезапускается с новыми правилами. Группа также может использовать собственный профиль маршрутизации, см. Профиль маршрутизации для группы.
Скачивание готовых профилей
- Откройте
Маршрутизация(Routing) →Скачать профили(Download Profiles) и выберитеChina,IranилиRussia. - Оставьте флажок
Автообновление(Auto update) установленным и нажмитеOK. - Выберите один из новых профилей внизу меню
Маршрутизация(Routing). Само скачивание не делает его активным.
| Профиль | Что он делает |
|---|---|
Bypass China, Bypass Iran, Bypass Russia |
Проксирует всё, кроме сайтов и IP-адресов этой страны и вашей локальной сети. |
Proxy China Blocked, Proxy Russia Blocked |
Направляет всё напрямую, кроме сайтов, заблокированных в этой стране. |
Proxy Antizapret, Proxy Refilter (Россия) |
Направляет всё напрямую, кроме сайтов из списка блокировок Antizapret или Re:filter. |
Профиль «Bypass» подойдёт, если большинство сайтов, которые вы посещаете, находятся за рубежом. Профиль «Proxy … Blocked» пропускает через ваш сервер меньше трафика, но заблокированный сайт, которого нет в списке, не откроется.
Списки ведутся в репозитории throneproj/routeprofiles. Если скачивание не удаётся, выберите другое Зеркало наборов правил (Remote Rule-set Mirror) (см. Наборы правил) и повторите попытку.
Профили маршрутизации
Профили маршрутизации находятся на вкладке Маршрутизация (Route) окна Настройки (Settings) → Настройки маршрутизации (Routing Settings); это также первый пункт меню Маршрутизация (Routing). Если щёлкнуть профиль в меню Маршрутизация правой кнопкой мыши, он сразу откроется в редакторе. Изменения применяются, когда вы нажимаете OK; если подключение активно, нажмите Перезапустить (Restart) в уведомлении «Настройки изменены, перезапустите для применения» (Settings changed, restart to apply).
Есть три вида профилей:
- Структурированные профили — их редактируют в Throne с помощью простых правил и расширенных правил. Большинству пользователей нужны только они.
- Удалённые профили — скачиваются по URL.
- Raw-профили — пишутся в виде JSON sing-box.
Чтобы создать структурированный профиль:
- На вкладке
Маршрутизация(Route) нажмитеСоздать(New) →Структурированный профиль(Structured profile). - Введите
Название(Name) и выберитеOutbound по умолчанию(Default outbound). - Добавьте правила на вкладке
Основные настройки(Basic) илиДополнительно(Advanced) и нажмитеOK. - Сделайте профиль активным в меню
Маршрутизация(Routing).
На вкладке DNS профилю можно задать собственные DNS-серверы, см. DNS для профиля маршрутизации. Вкладка Конечные точки (Endpoints) появляется, если у вас есть профили OpenVPN или OpenConnect, и запускает их рядом с прокси, см. раздельное туннелирование.
На вкладке Основные (Common) есть также эти настройки (только в расширенном режиме, см. Простой и расширенный режим):
| Настройка | Что делает |
|---|---|
Стратегия разрешения доменов по умолчанию (Default Domain Strategy) |
Предпочтение IPv4 или IPv6, когда Throne определяет адрес сервера или сайта, который идёт напрямую. |
Стратегия разрешения доменов в запросах (Resolve Domain Strategy) |
Определяет IP-адрес каждого домена до применения правил, так что IP-правила срабатывают и для доменов. |
Зеркало наборов правил (Remote Rule-set Mirror) |
Откуда скачиваются наборы правил и профили, хранящиеся на GitHub. По умолчанию: jsDelivr (Cloudflare). |
Простые правила
На вкладке Основные настройки (Basic) профиля есть четыре поля: Напрямую (Direct), Прокси (Proxy), Блокировать (Block) и Warp-bypass. Каждая строка в поле направляет подходящий трафик туда, куда указывает это поле.
| Строка | Что совпадает |
|---|---|
domain:example.com |
Только example.com. |
suffix:example.com |
example.com и все его поддомены. |
keyword:example |
Любой домен, который содержит example. |
regex:^cdn[0-9]*\.example\.com$ |
Домены, подходящие под регулярное выражение (синтаксис Go RE2). |
ruleset:geosite-youtube |
Всё, что входит в набор правил, по имени или по URL файла .srs. |
ip:10.0.0.0/8 |
Диапазон IP или отдельный адрес, например 1.2.3.4. |
processName:Telegram.exe |
Программа по имени файла. |
processPath:C:\Program Files\App\app.exe |
Программа по полному пути. |
- Пишите по одной записи в строке. Префиксы чувствительны к регистру:
processName, а неprocessname. - Имя процесса должно совпадать точно, с учётом регистра и
.exeв Windows. Точное имя показывает вкладка «Подключения». - Редактор отмечает строки, которые не может использовать. Исправьте их до переключения вкладок: при переключении они отбрасываются.
Пример: проксировать всё, кроме местных сайтов, и блокировать рекламу. Установите Outbound по умолчанию (Default outbound) в значение proxy. В поле Напрямую (Direct):
ruleset:geosite-ir
ruleset:geoip-ir
В поле Блокировать (Block):
ruleset:geosite-category-ads-all
Замените ir кодом своей страны, например cn или ru.
Пример: через прокси идут только одна программа и один сайт. Установите Outbound по умолчанию (Default outbound) в значение direct. В поле Прокси (Proxy):
processName:Telegram.exe
suffix:example.org
Каждое поле превращается в правила на вкладке Дополнительно (Advanced), например Simple Address Bypass для адресов из поля Напрямую и Simple Process Name Proxy для программ из поля Прокси. Правила добавляются в порядке Напрямую, Блокировать, Прокси, Warp-bypass, и срабатывает первое совпадение, поэтому строка в поле Прокси ни на что не влияет, если более широкая строка в поле Напрямую подходит под тот же трафик. Чтобы сделать исключение, например проксировать example.ir, когда geosite-ir идёт напрямую, добавьте suffix:example.ir в поле Прокси, затем на вкладке Дополнительно переместите Simple Address Proxy выше правила, которое содержит geosite-ir.
Расширенные правила
Вкладка Дополнительно (Advanced) показывает все правила профиля по порядку. Кнопки Поднять выше (Move Up) и Опустить ниже (Move Down) меняют порядок. Снимите флажок правила, чтобы отключить его, не удаляя; это работает и для правил из полей вкладки Основные настройки (Basic). В простом режиме эта вкладка появляется, только если в профиле есть правила, которые вкладка Основные настройки показать не может.
Чтобы добавить правило, нажмите Создать (New) и выберите Действие (Action). Затем отметьте нужные атрибуты на вкладке + и заполните их, по одной записи в строке.
| Действие | Что делает |
|---|---|
route |
Направляет подходящий трафик в outbound правила. Новое правило использует direct, пока вы не отметите outbound и не выберете другой. |
reject |
Блокирует подходящий трафик. В расширенных правилах используйте его вместо block. |
hijack-dns |
Отвечает на DNS-запросы с помощью DNS Throne. |
route-options |
Задаёт параметры, например override_address или tls_spoof, и переходит к следующим правилам. |
sniff |
Определяет протокол и домен соединения и переходит дальше. |
resolve |
Определяет IP-адрес домена и переходит дальше. |
bypass |
Только в Linux. См. документацию sing-box. |
route, route-options и bypass также предлагают tls_fragment и tls_record_fragment. Они разбивают TLS-рукопожатие, как параметры фрагментации TLS в профиле, что помогает соединениям direct с сайтами, которые фильтр блокирует по имени.
| Атрибуты | Что проверяют |
|---|---|
domain, domain_suffix, domain_keyword, domain_regex |
Запрошенный домен. |
ip_cidr, ip_is_private |
Адрес назначения. |
rule_set |
Имена наборов правил или URL файлов .srs. |
port, port_range |
Порт назначения, например 443 или 1000:2000. |
source_ip_cidr, source_port и подобные |
Откуда пришло соединение, например с другого устройства в вашей сети. |
process_name, process_path, process_path_regex |
Программа на этом компьютере. |
network, protocol, ip_version |
tcp, udp или icmp; обнаруженный протокол, например tls или bittorrent; 4 или 6. |
inbound |
mixed-in (порт прокси) или tun-in (режим TUN). |
wifi_ssid, wifi_bssid |
Сеть Wi-Fi, к которой вы подключены. Недоступно в macOS. |
invert |
Правило срабатывает, когда его условия не выполняются. |
Внутри одного правила атрибуты домена, IP и rule_set срабатывают, если совпадает любой из них. Все остальные атрибуты тоже должны совпасть.
Чтобы направить трафик через конкретный сервер, отметьте outbound и выберите сохранённый профиль — он показан как [group] name. Throne запускает его рядом с профилем, который запустили вы. Профили дополнительного ядра (Extra Core) и полные пользовательские конфигурации так использовать нельзя.
Наборы правил
Набор правил (rule-set) — это список доменов или диапазонов IP в отдельном файле. Используйте его как ruleset:<name> в поле или в атрибуте rule_set расширенного правила.
- Встроенные имена: их более 2000. Имена, начинающиеся с
geosite-, содержат домены, напримерgeosite-youtubeилиgeosite-category-ads-all. Имена, начинающиеся сgeoip-, содержат диапазоны IP, напримерgeoip-irилиgeoip-telegram. Редактор подсказывает имена при вводе. - Собственные файлы: URL любого бинарного набора правил sing-box. Имя файла должно содержать
.srs.
Наборы правил скачиваются при запуске профиля. Маршрутизация (Routing) → Обновить наборы правил (Update Rule-Sets) скачивает свежие копии. Если GitHub в вашей сети заблокирован или работает медленно, измените Настройки маршрутизации (Routing Settings) → Основные (Common) → Зеркало наборов правил (Remote Rule-set Mirror). Зеркало также применяется к списку AdBlock и к профилям маршрутизации, которые хранятся на GitHub.
Удалённые профили
Удалённый профиль — это структурированный профиль, который Throne скачивает по URL, как профили из меню Скачать профили. Провайдеры также могут передать его ссылкой throne://remoteroute/.
Чтобы добавить его, на вкладке Маршрутизация (Route) нажмите Создать (New) → Удалённый профиль (Remote profile), введите URL, отметьте Автообновление (Auto update) и нажмите OK. По этому адресу может отдаваться ссылка throne://route/, её текст в Base64 или JSON профиля. Raw-профили не могут быть удалёнными.
Для автоматических обновлений нужен также параметр Настройки (Settings) → Основные настройки (Basic Settings) → Подписка (Subscription) → Автообновление профилей маршрутизации (Routing profiles auto update), который по умолчанию выключен (только в расширенном режиме). Чтобы обновить профиль сразу, нажмите Обновить (Update) на вкладке Маршрутизация (Route).
Профиль маршрутизации для группы
Группа может подключаться с собственным профилем маршрутизации вместо профиля из меню Маршрутизация (Routing). Например, серверы одного провайдера могут использовать Bypass Iran, а все остальные группы — Default.
- Щёлкните вкладку группы правой кнопкой мыши и выберите
Редактировать выбранную группу(Edit selected Group). - Выберите
Профиль маршрутизации(Routing Profile). ВариантПо умолчанию (…)(Default (…)) следует менюМаршрутизация. - Нажмите
OK.
Решает группа профиля, который вы запускаете. Для цепочки или автовыбора это группа самой цепочки или автовыбора, а не входящих в них профилей. Заголовок окна и всплывающая подсказка значка в трее показывают используемый профиль маршрутизации, а вкладка «Подключения» изменяет именно его. Профиль маршрутизации группы приносит с собой и свои настройки DNS, если они у него есть.
Из подписки
Некоторые провайдеры передают вместе с подпиской профиль маршрутизации в формате Happ. Чтобы использовать его, откройте параметры группы, отметьте Использовать профиль маршрутизации из подписки (Use the subscription's routing profile) в разделе Подписка (Subscription), нажмите OK и обновите подписку.
Throne сохраняет его как структурированный профиль маршрутизации с названием, которое дал провайдер. Если у группы Профиль маршрутизации (Routing Profile) — По умолчанию (…) (Default (…)), новый профиль становится профилем маршрутизации группы. Каждое обновление заменяет его правила. Настройки DNS из подписки никогда не используются.
- Чтобы изменить его насовсем, клонируйте его кнопкой
Дублировать(Clone) и выберите клон в полеПрофиль маршрутизации(Routing Profile) группы. - Профиль принадлежит группе. При удалении группы удаляется и он.
Raw-профили
Raw-профиль — это полный объект route sing-box в формате JSON для возможностей, которых нет в редакторе правил. Создайте его кнопкой Создать (New) → JSON-профиль (Raw profile).
Outbound указываются числами: -1 — это proxy, -2 — direct, -5 — warp-bypass, а ID профиля — этот сохранённый профиль. После "outbound": редактор подсказывает ваши профили. Если final отсутствует, Throne использует proxy.
Имена встроенных наборов правил в raw-профилях не определены, и Throne не добавляет шаг DNS, который получают структурированные профили. Для режима TUN начинайте правила так:
{
"rules": [
{ "action": "sniff" },
{ "protocol": "dns", "action": "hijack-dns" },
{ "domain_suffix": ["example.com"], "outbound": -2 }
],
"final": -1
}
Запретить изменения (Prevent modifications) использует JSON точно в том виде, в каком он написан, что может сломать DNS, профили Xray и цепочки. AdBlock, Включить DNS-маршрутизацию (Enable DNS Routing) и действия вкладки «Подключения» не работают с raw-профилями, а Throne для Android не может их использовать.
Вкладка «Подключения»
Вкладка Подключения (Connections) внизу главного окна показывает открытые соединения, сгруппированные по программам, с адресом назначения, протоколом, outbound и объёмом трафика. Наведите курсор на столбец Outbound, чтобы увидеть правило, которое сработало для соединения; final означает, что ни одно правило не сработало.
Щёлкните соединение правой кнопкой мыши, чтобы изменить, куда идёт такой трафик:
Напрямую(Direct),Прокси(Proxy) илиБлокировать(Block) показывают список целей с флажками: каждый уровень домена, например*.example.com, название сайта как ключевое слово, IP-адрес, если у соединения нет домена, и программу. Отмеченная цель добавляется в это поле используемого профиля маршрутизации и удаляется из других полей.Другой сервер(Specific server) делает то же самое, но направляет цели через выбранный вами сервер.
Затем нажмите Перезапустить (Restart) в уведомлении «Настройки изменены, перезапустите для применения» (Settings changed, restart to apply). Цель добавляется в уже существующее правило этого поля. Если поле было пустым, его новое правило добавляется в конец списка, где более широкое правило выше может сработать первым, поэтому проверьте порядок на вкладке Дополнительно (Advanced).
Эти действия недоступны для raw-профилей, для профилей с Запретить изменения (Prevent modifications), для удалённых профилей с Автообновление (Auto update) и для профилей, которые обновляет подписка. Чтобы изменить удалённый профиль или профиль из подписки, сначала клонируйте его, см. Удалённые профили и Из подписки.
Если вкладки нет, включите Настройки (Settings) → Основные настройки (Basic Settings) → Интерфейс (Style) → Статистика подключений (Connection statistics) (только в расширенном режиме).
AdBlock
Маршрутизация (Routing) → Включить AdBlock (Enable AdBlock) блокирует рекламу в активном структурированном или удалённом профиле с помощью списка adblocksingbox из проекта 217heidai/adblockfilters. Он срабатывает раньше ваших собственных правил, поэтому реклама блокируется и в прямом, и в проксируемом трафике.
Если какой-то сайт перестал работать, выключите AdBlock, чтобы проверить, не блокирует ли его список. Чтобы блокировать рекламу только в одном профиле, вместо этого добавьте ruleset:geosite-category-ads-all в его поле Блокировать (Block).
Обмен профилями
Выберите профиль на вкладке Маршрутизация (Route) и нажмите Экспорт (Export) (Ctrl+C), чтобы скопировать его как ссылку throne://route/.
Чтобы импортировать профиль, щёлкните ссылку или скопируйте её и нажмите Ctrl+V в главном окне. Профиль добавится, но не станет активным. Импорт (Import) (Ctrl+V) на вкладке Маршрутизация (Route) также выбирает его, поэтому он станет активным, когда вы нажмёте OK.
Ссылка содержит название, outbound по умолчанию, правила (включая отключённые) и собственные настройки DNS профиля. Правила, которые направляют трафик в сохранённый профиль, ссылаются на него по имени; если на другом устройстве профиля с таким именем нет, они используют proxy. Конечные точки OpenVPN и OpenConnect передаются без учётных данных. Формат ссылки описан на странице Глубокие ссылки.
На Android
В Throne для Android есть те же профили маршрутизации, правила и наборы правил. Откройте Маршруты (Routing) в боковом меню и нажмите на профиль, чтобы сделать его активным. Отличия:
- Правила для приложений. Поле
Приложения(Apps) проверяет приложения Android;Неизвестные приложения(Unknown apps) — соединения, приложение которых не удаётся определить.Регулярное выражение имени пакета(Package name regex) проверяет имена пакетов. На компьютере эти правила никогда не срабатывают. - Правила для сети.
Тип сети(Network type) проверяет Wi-Fi, мобильную сеть или Ethernet, аЛимитная сеть(Metered network) — лимитные сети. Версия для компьютера пропускает такие правила при импорте ссылки. - Правила для Wi-Fi требуют доступа к местоположению с вариантом «Разрешить в любом режиме» (Allow all the time) и включённой геолокации.
- Raw-профили и конечные точки VPN из импортированных ссылок не поддерживаются.
AdBlockиАвтообновление удалённых профилей(Auto update remote profiles) находятся вНастройки(Settings) →Маршрутизация(Routing).- Если набор правил не удаётся скачать,
Всё равно подключиться(Connect anyway) подключает без него. Его правила ни с чем не совпадают, пока он не будет скачан через прокси.