Updated

gSpot
2025-11-13 18:16:16 +03:00
parent 8ad21262fc
commit b1fb0b64bb
6 changed files with 26 additions and 31 deletions
+9 -3
@@ -47,9 +47,13 @@ Ruantiblock - решение для обхода блокировок (при п
ruantiblock-fqdn
ruantiblock-ip
zapret-info-fqdn
zapret-info-fqdn-only
zapret-info-ip
rublacklist-fqdn
rublacklist-fqdn-only
rublacklist-ip
antifilter-fqdn
antifilter-fqdn-only
antifilter-ip
Так можно задать в UCI:
@@ -57,7 +61,7 @@ Ruantiblock - решение для обхода блокировок (при п
uci set ruantiblock.config.bllist_preset="zapret-info-fqdn"
uci commit ruantiblock
По сути, режим обновления блэклиста является комбинацией источника и типа обхода блокировок (`ip`, `fqdn`). Первые два режима обновления блэклиста (`ruantiblock-fqdn`, `ruantiblock-ip`) не требуют установки модуля-парсера (см. далее).
По сути, режим обновления блэклиста является комбинацией источника и типа обхода блокировок (`ip`, `fqdn`, `fqdn-only`). Первые два режима обновления блэклиста (`ruantiblock-fqdn`, `ruantiblock-ip`) не требуют установки модуля-парсера (см. далее).
**Типы обхода блокировок:**
@@ -67,6 +71,8 @@ Ruantiblock - решение для обхода блокировок (при п
2. `fqdn` - из блэклиста извлекаются доменные имена (FQDN). Из записей, в которых отсутствует доменное имя, извлекаются IP адреса и CIDR диапазоны. Домены заносятся в конфиг dnsmasq и, далее, dnsmasq формирует временный список nftset по мере обращения к этим доменам, записи добавляются и удаляются динамически на основе DNS-запросов и таймаута. Т.е. домены обрабатывает dnsmasq, а CIDR диапазоны и IP адреса помещаются сразу в nftset. В этом варианте разрешение доменного имени в IP адрес происходит при обращении к заблокированному сайту, следовательно IP адрес сайта всегда будет актуальным (даже если устарел в самом списке блокировок).
3. `fqdn-only` - то же, что и `fqdn`, но из записей, в которых отсутствует доменное имя, НЕ извлекаются IP адреса и CIDR диапазоны, т.е. извлекаются только домены. Этот вариант может быть полезен, если заблокированные IP адреса и CIDR диапазоны берутся из другого источника через [записи пользователя](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B2-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B5).
**Источники блэклиста:**
`ruantiblock` - [https://github.com/gSpotx2f/ruantiblock_blacklist](https://github.com/gSpotx2f/ruantiblock_blacklist). Заранее созданные конфиги для nftables и dnsmasq. Загружаются уже готовые файлы, без выполнения каких-либо оптимизаций и обработок. Обновляется раз в сутки. Этот источник даёт блэклист для стандартной конфигурации ruantiblock и ваш роутер не выполняет никакой тяжёлой работы по обработке данных. Включен по умолчанию и не требует установки модуля-парсера.
@@ -76,11 +82,11 @@ Ruantiblock - решение для обхода блокировок (при п
`rublacklist` - [https://rublacklist.net](https://rublacklist.net). Блэклист от Роскомсвободы. В режиме `fqdn`, также, содержит много лишних данных и огромный размер выгрузки, но имеет удобный API. Бывают проблемы с надёжностью (недоступность сайта и пр). Можно использовать в случае недоступности других источников. Обновление из этого источника выполняется довольно долго из-за размера выгрузки.
`antifilter` - [https://antifilter.download](https://antifilter.download). Этот источник для устройств, которым не хватает оперативной памяти для полных списков блокировок. Доступен только вариант `ip` - оптимизированный список IP адресов (все адреса приведены к маске /24). Очень компактен в размере, но покрывает большое количество лишних IP адресов в диапазонах. Ссылку на файл блэклиста из этого источника можно добавить в [список удалённых записей пользователя](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B2-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B5) и получать IP адреса напрямую без установки парсера отключив основной блэклист. Файл имеет простой формат совместимый с форматом файла записей пользователя.
`antifilter` - [https://antifilter.download](https://antifilter.download). Довольно надёжный источник, существует много лет. Очень удобный формат в виде простого списка. Также, отсюда можно взять оптимизированный список IP адресов (все адреса приведены к маске /24) для устройств, которым не хватает оперативной памяти для полных списков блокировок (очень компактен в размере, но покрывает большое количество лишних IP адресов в диапазонах). [URL](https://antifilter.download/list/allyouneed.lst) оптимизированного списка можно добавить в [список удалённых записей пользователя](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B2-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B5) и получать IP адреса напрямую, без установки парсера, отключив основной блэклист. Файл имеет простой формат совместимый с форматом файла записей пользователя.
**Модули-парсеры:**
Установка модуля необходима для самостоятельного формирования списка блокировок силами роутера. Модуль выкачивает данные из источника, выполняет их преобразование (включая оптимизации) в необходимый для работы формат. Модуль требуется для всех источников блэклиста (`zapret-info`, `rublacklist`, `antifilter`), кроме `ruantiblock`, который предоставляет уже готовые и оптимизированные конфиги. Ну и как было отмечено ранее, `antifilter` тоже можно использовать напрямую без парсера через записи пользователя.
Установка модуля необходима для самостоятельного формирования списка блокировок силами роутера. Модуль выкачивает данные из источника, выполняет их преобразование (включая оптимизации) в необходимый для работы формат. Модуль требуется для всех источников блэклиста (`zapret-info`, `rublacklist`, `antifilter`), кроме `ruantiblock`, который предоставляет уже готовые и оптимизированные конфиги.
`/usr/libexec/ruantiblock/ruab_parser.lua` - стандартный модуль, написан на Lua. Работает быстро, когда достаточно свободной оперативной памяти. [Установка](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Lua%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C).
+3 -3
@@ -10,9 +10,9 @@
OpenWrt >= 23.05:
wget --no-check-certificate -O /tmp/ruantiblock-mod-lua_2.1.8-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-lua_2.1.8-r1_all.ipk
opkg install /tmp/ruantiblock-mod-lua_2.1.8-r1_all.ipk
rm /tmp/ruantiblock-mod-lua_2.1.8-r1_all.ipk
wget --no-check-certificate -O /tmp/ruantiblock-mod-lua_2.1.9-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-lua_2.1.9-r1_all.ipk
opkg install /tmp/ruantiblock-mod-lua_2.1.9-r1_all.ipk
rm /tmp/ruantiblock-mod-lua_2.1.9-r1_all.ipk
**4. Включение модуля:**
+3 -3
@@ -9,9 +9,9 @@
OpenWrt >= 23.05:
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_2.1.8-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-py_2.1.8-r1_all.ipk
opkg install /tmp/ruantiblock-mod-py_2.1.8-r1_all.ipk
rm /tmp/ruantiblock-mod-py_2.1.8-r1_all.ipk
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_2.1.9-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-py_2.1.9-r1_all.ipk
opkg install /tmp/ruantiblock-mod-py_2.1.9-r1_all.ipk
rm /tmp/ruantiblock-mod-py_2.1.9-r1_all.ipk
**3. Включение модуля:**
@@ -92,7 +92,7 @@
**8. Если возникают проблемы с нехваткой оперативной памяти**
На девайсах с оперативной памятью в 128Мб и менее может проявляться ошибка нехватки памяти при обновлении блэклиста. Размер блэклиста постоянно растёт, памяти начинает не хватать... Например, при использовании lua-парсера это выглядит как сообщение `Killed`:
На девайсах с оперативной памятью в 256Мб и менее может проявляться ошибка нехватки памяти при обновлении блэклиста. Размер блэклиста постоянно растёт, памяти начинает не хватать... Например, при использовании lua-парсера это выглядит как сообщение `Killed`:
root@OpenWrt:~# /usr/bin/ruantiblock update
ruantiblock update...
@@ -105,18 +105,7 @@
Присутствие подобных ошибок или зависаний говорит о наличии проблемы. Во-первых, можно попробовать подключить SWAP-файл (или раздел) на внешнем носителе (конечно, если это возможно на вашем устройстве). Во-вторых, подобрать настройки для оптимизации работы модуля-парсера и сократить количество записей в блэклисте (подробнее [здесь](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B-%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B8-%D1%81%D0%BE%D0%BA%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9-%D0%B2-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B5-%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA)). Далее, если подключен внешний носитель ([extroot](https://openwrt.org/docs/guide-user/additional-software/extroot_configuration)), можно попробовать использовать [python-модуль](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Python%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C), он стабильнее работает в условиях проблем со свободной памятью. Это не является полным решением проблемы, но позволит немного сократить потребление памяти.
Следующая конфигурация даёт самый минимальный размер списка блокировок (и требует менее всего памяти):
uci set ruantiblock.config.nftset_clear_sets="1"
uci set ruantiblock.config.bllist_preset="antifilter-ip"
uci set ruantiblock.config.bllist_ip_limit="0"
uci set ruantiblock.config.bllist_summarize_ip="0"
uci set ruantiblock.config.bllist_summarize_cidr="0"
uci commit ruantiblock
Здесь минимальный список IP адресов, приведённых к подсетям /24 (https://antifilter.download/list/allyouneed.lst). Недостаток в том, что в этих диапазонах большое количество не заблокированных адресов, и трафик к ним будет также проходить через прокси. В общем, в случае нехватки оперативной памяти, это возможный вариант...
Ссылку на список [https://antifilter.download/list/allyouneed.lst](https://antifilter.download/list/allyouneed.lst) также можно добавить в удалённые записи пользователя (формат файла совместим) и не использовать модуль-парсер вообще.
Минимальный размер списка блокировок можно получить используя только [записи пользователя](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B2-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B5), без модуля-парсера. Можно, например, добавить ссылку [https://antifilter.download/list/allyouneed.lst](https://antifilter.download/list/allyouneed.lst) в удалённые записи пользователя (формат файла совместим) для загрузки во время обновления. Этот список содержит IP адреса из реестра приведённые к подсетям /24. Недостаток в том, что в этих диапазонах большое количество не заблокированных адресов, и трафик к ним будет также проходить через прокси. В общем, в случае нехватки оперативной памяти, это возможный вариант...
Ну и, естественно, можно использовать свои собственные списки заблокированных хостов и решать самостоятельно какое количество записей будет в вашем блэклисте.
@@ -65,22 +65,22 @@
**2. Установка ruantiblock**
wget --no-check-certificate -O /tmp/ruantiblock_2.1.8-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock_2.1.8-r1_all.ipk
opkg install /tmp/ruantiblock_2.1.8-r1_all.ipk
rm /tmp/ruantiblock_2.1.8-r1_all.ipk
wget --no-check-certificate -O /tmp/ruantiblock_2.1.9-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock_2.1.9-r1_all.ipk
opkg install /tmp/ruantiblock_2.1.9-r1_all.ipk
rm /tmp/ruantiblock_2.1.9-r1_all.ipk
**3. Установка luci-app-ruantiblock**
Приложение для LuCI (веб-интерфейса OpenWrt). [Подробнее тут](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/luci%E2%80%91app%E2%80%91ruantiblock).
wget --no-check-certificate -O /tmp/luci-app-ruantiblock_2.1.8-r2_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-app-ruantiblock_2.1.8-r2_all.ipk
opkg install /tmp/luci-app-ruantiblock_2.1.8-r2_all.ipk
wget --no-check-certificate -O /tmp/luci-app-ruantiblock_2.1.9-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-app-ruantiblock_2.1.9-r1_all.ipk
opkg install /tmp/luci-app-ruantiblock_2.1.9-r1_all.ipk
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_2.1.8-r2_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-i18n-ruantiblock-ru_2.1.8-r2_all.ipk
opkg install /tmp/luci-i18n-ruantiblock-ru_2.1.8-r2_all.ipk
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_2.1.9-r1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-i18n-ruantiblock-ru_2.1.9-r1_all.ipk
opkg install /tmp/luci-i18n-ruantiblock-ru_2.1.9-r1_all.ipk
rm /tmp/luci-app-ruantiblock_2.1.8-r2_all.ipk /tmp/luci-i18n-ruantiblock-ru_2.1.8-r2_all.ipk
rm /tmp/luci-app-ruantiblock_2.1.9-r1_all.ipk /tmp/luci-i18n-ruantiblock-ru_2.1.9-r1_all.ipk
rm -f /tmp/luci-modulecache/* /tmp/luci-indexcache*
/etc/init.d/rpcd restart
@@ -1,4 +1,4 @@
Оптимизация и уменьшение количества записей в списке блокировок возможны только для режимов обновления блэклиста использующих полный реестр, т.е. источники `zapret-info` и `rublacklist`. Другие два источника (`antifilter`, `ruantiblock`) предоставляют уже оптимизированный список блокировок и описанные ниже методы оптимизации с ними не работают.
Оптимизация и уменьшение количества записей в списке блокировок возможны только для режимов обновления блэклиста использующих полный реестр, т.е. источники `zapret-info`, `rublacklist` и `antifilter`. Источник `ruantiblock` предоставляют уже оптимизированный список блокировок и описанные ниже методы оптимизации с ним не работают.
Некоторые методы уменьшения количества записей в итоговых конфигах nftables и dnsmasq (в примерах опции UCI):