Маршрутизатор

Синтаксис правил маршрутизации

Короткий справочник для тех, кто правит конфиги руками. В конструкторе всё это подставляется само.

Как записать сайт

В Xray (и в Happ, который работает на Xray) условие по сайту — это строка с префиксом. Главная ловушка: строка без префикса означает не «этот сайт», а «адрес содержит эту строку».

ЗаписьЧто значитСовпадётНе совпадёт
domain:example.comсам сайт и все поддоменыexample.com, www.example.com, a.b.example.comnotexample.com
full:example.comтолько этот адресexample.comwww.example.com
example (без префикса)адрес содержит строкуexample.com, myexample.netexam.com
regexp:\.example\.(com|net)$регулярное выражениеa.example.com, b.example.netexample.org
geosite:youtubeготовый список сайтовyoutube.com, googlevideo.com, ytimg.com…—
ext:file.dat:tagсписок из своего файлазависит от файла—

Регулярные выражения проверяются на каждый запрос, поэтому медленнее остальных. Если можно обойтись domain:, лучше обойтись.

IP-адреса

domainStrategy: когда сверять IP

Порядок правил

Правила проверяются сверху вниз, срабатывает первое подходящее. Поэтому частные правила ставят выше общих: «mail.google.com напрямую» должно стоять выше, чем «google.com через VPN». Правило «всё остальное» — всегда последнее.

В Happ правила проверяются не по одному, а группами: все «блок», все «через VPN», все «напрямую» — в порядке, заданном в RouteOrder. Конструктор подбирает этот порядок так, чтобы как можно меньше нарушить ваш, и предупреждает, если что-то сдвинулось.

Что такое geosite и geoip

Это готовые списки сайтов и IP-адресов, которые приложение скачивает файлами geosite.dat и geoip.dat. Самые полные — от v2fly и Loyalsoldier. Если в правиле указана категория, которой нет в файле, приложение не запустится — конструктор проверяет это заранее. Состав всех категорий — в разделе категории geosite.