-
Notifications
You must be signed in to change notification settings - Fork 5
Способы оптимизации и сокращения количества записей в списке блокировок
Некоторые методы уменьшения количества записей в итоговых конфигах ipset и dnsmasq (переменные конфигурации находятся в /opt/etc/ruantiblock/ruantiblock.conf
):
-
Оптимизация списка доменов в конфиге dnsmasq, путём группировки субдоменов (3 ур-ня и выше) под одной записью 2-го уровня (SLD). Вместо нескольких записей субдоменов в конфиг dnsmasq добавляется всего одна запись второго уровня. Кол-во субдоменов в реестре необходимое для срабатывания этой группировки определяется переменной
SD_LIMIT
. По умолчанию: 16. Т.е. если в реестре встречается >16 субдоменов*.domain.com
, то вместо них добавляется одна записьdomain.com
и весь трафик ко всем субдоменам domain.com проходит через прокси (включая и те сайты в зоне domain.com, которых нет в реестре). В переменнойOPT_EXCLUDE_SLD
определяется список SLD, которые никогда не оптимизируются. Например, в livejournal.com у пользователей свои субдомены, в реестре лишь незначительная их часть, а следовательно, нет смысла ходить на весь livejournal.com через прокси. Такая оптимизация довольно эффективна и позволяет сократить конфигурацию dnsmasq, но не заблокированные субдомены также попадают под правила обхода блокировок... -
Оптимизация списка ip-адресов для ipset. Принцип такой же, что и в предыдущем пункте, только группировка выполняется по принадлежности ip-адреса к подсети класса C (/24). Необходимое для срабатывания этой группировки кол-во ip-адресов (принадлежащих одной подсети) в реестре определяется переменной
IP_LIMIT
. Например, если значение 10, то при наличии в реестре >10 адресов одной подсети /24 (к примеру:192.168.1.1
,192.168.1.2
...192.168.1.10
) вместо них будет добавлена одна запись для всей подсети:192.168.1.0/24
. Таким образом, сокращается размер списка ipset, но под правила для блокировок попадает некоторое кол-во не заблокированных ip-адресов. ПеременнаяOPT_EXCLUDE_NETS
может содержать подсети (в виде:68.183.221. 149.154.162.
и пр.), адреса которых никогда не группируются. Также, довольно эффективный способ оптимизации... -
Фильтрация записей. Исключение из итоговых конфигов ipset и dnsmasq записей ненужных Вам хостов по шаблонам. К примеру, если Вы никогда не посещаете онлайн-казино, то можно добавить шаблоны для исключения подобных сайтов, дабы сократить размер конфигов и, как следствие, потребление оперативной памяти. Подробнее об этой функции...
-
Отключение альтернативных DNS-серверов в конфиге dnsmasq сокращает кол-во строк конфигурации в 2 раза:
ALT_NSLOOKUP=0
. Вместо провайдерского DNS-сервера можно использовать сторонние (8.8.8.8 от google и пр.) в настройках WAN. Для провайдеров, которые блокируют сторонние DNS-серверы, есть dnscrypt-proxy2, https_dns_proxy и пр. -
Если Вы используете VPN сервис с приемлемым качеством коннекта и без ограничений по типу трафика, то можно попробовать вариант с режимом блокировок по ip
BLOCK_MODE="ip"
в совокупности с методом оптимизации списка ip-адресов (п.2). В этом случае, dnsmasq не участвует в обходе блокировок, а в ipset будет добавляться оптимизированный список всех ip-адресов из реестра. Такая конфигурация приведёт к избыточному использованию VPN-соединения, но позволит иcключить из схемы dnsmasq, т.е. в этой конфигурации нет зависимости от разрешения имён и службы DNS (в контексте именно обхода блокировок). -
Готовый конфиг для оптимизации. Источник блэклиста:
zapret-info
, режим обхода блокировок:hybrid
. Включена фильтрация записей блэклиста по шаблонам и группировка ip-адресов (IP_LIMIT=10
). Модуль-парсер: ruab_parser.py. Можно установить выполнив следующие шаги:Отключить ruantiblock:
/opt/usr/bin/ruantiblock.sh destroy
Установка python3 из Entware:
opkg install python3 python3-setuptools python3-openssl
Backup текущего конфигурационного файла:
cp /opt/etc/ruantiblock/ruantiblock.conf /opt/etc/ruantiblock/ruantiblock.conf.bak
Скачать файл с шаблонами для фильтрации доменов:
wget --no-check-certificate -O /opt/etc/ruantiblock/ruab_entries_filter https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/ruantiblock/ruab_entries_filter
Далее установить новый конфиг. Для tor конфигурации:
wget --no-check-certificate -O /opt/etc/ruantiblock/ruantiblock.conf https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/ruantiblock/ruantiblock_tor_opt_optimize.conf
Для VPN конфигурации:
wget --no-check-certificate -O /opt/etc/ruantiblock/ruantiblock.conf https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/ruantiblock/ruantiblock_vpn_opt_optimize.conf
При использовании VPN конфигурации необходимо добавить ip-адрес подсети VPN-сервера в парметр
OPT_EXCLUDE_NETS
в конфиге (/opt/etc/ruantiblock/ruantiblock.conf
), для исключения этой подсети из оптимизации списка ip-адресов (иначе, в случае присутствия заблокированных адресов в подсети, парсер может сгруппировать эти адреса в запись CIDR и VPN-клиент будет заворачивать своё соединение в себя). Например, если ip-адрес VPN-сервера 217.23.3.91:OPT_EXCLUDE_NETS="217.23.3."
. Можно добавлять несколько подсетей через пробел:OPT_EXCLUDE_NETS="217.23.3. 209.58.142."
.Запуск ruantiblock и обновление данных:
/opt/usr/bin/ruantiblock.sh start /opt/usr/bin/ruantiblock.sh update