Одна строка вместо шестисот правил
Писать правила по одному быстро перестаёт работать. Рекламные домены, местные сайты, один видеосервис вместе со всеми его CDN: каждая категория — это сотни строк, и если сложить их прямо в блок rules, получится конфигурация, которую невозможно ни читать, ни поддерживать.
Набор правил упаковывает целую категорию в отдельный файл, а в конфигурации остаётся одна строка со ссылкой на него. Список изменился — меняете файл, блок rules при этом не трогаете.
У наборов собственное расписание
Обновление подписки их не обновляет: у каждого provider свой interval.
Четыре поля, без которых набор не заработает
- 1
Источник, behavior, путь, интервал
Каждой записи в rule-providers нужны четыре вещи. type — это http для удалённого списка или file для файла на диске. url либо путь говорят, откуда файл берётся и куда ложится сохранённая копия. interval задаёт периодичность повторной загрузки в секундах. И behavior — ровно одно из трёх значений: domain, ipcidr или classical.
- 2
behavior обязан совпадать с содержимым файла
Файл из голых доменных имён — это domain. Файл из подсетей CIDR — ipcidr. Значение classical подходит только файлу, в каждой строке которого стоит полный префикс правила вроде DOMAIN-SUFFIX или PROCESS-NAME. Ошибётесь — набор либо откажется загружаться, либо загрузится и не даст ни одного совпадения. Эта одна строка и есть самая частая ошибка во всём блоке.
- 3
Ссылка читается в том же порядке сверху вниз
В блоке rules пишется RULE-SET, имя набора и группа политик. Набор не получает особого приоритета только потому, что лежит в файле: он проверяется ровно в том месте, где вы его написали, наравне с обычными правилами, и срабатывает первое совпадение.
Где медленная загрузка превращается в ошибку
Сохраните, перезагрузите профиль и откройте страницу правил. Рядом с каждым набором должно стоять количество правил. Ноль означает, что файл не приехал или не разобрался, а причина почти всегда находится поиском имени provider на странице логов.
- Удалённому набору при запуске нужна сеть: пока её нет, вы получаете ошибку загрузки конфигурации, за которой стоит всего один недостающий файл
- Не ставьте маленький interval — раз в сутки достаточно почти для любого публикуемого списка
- Десяток крупных наборов заметно замедляет первый запуск и поднимает расход памяти; подключайте то, чем действительно пользуетесь
Частые вопросы
Набор правил постоянно не обновляется. С чего начать?
Читайте строку лога, а не сообщение на экране. HTTP 403 или 404 означает, что адреса больше нет или хост отклоняет запрос: ищите другой источник того же списка. Таймаут означает, что адрес недоступен из вашей сети: пустите загрузку через прокси или замените запись локальным файлом. Заодно проверьте, что каталог, указанный в path, существует и доступен на запись.
Как выглядит неправильно выбранный behavior?
Двумя способами. Шумный: набор показывает ноль правил на странице правил, а в логе висит ошибка разбора. Тихий и более неприятный: количество выглядит нормальным, но совпадений нет, и трафик, который вы считали отделённым, спокойно доходит до последнего правила. Возьмите домен из самого набора, откройте его и посмотрите столбец Chains на странице соединений.