Фильтрация рекламы на роутере с прошивкой Padavan. Наименее ресурсозатратным и наиболее простым в настройке из способов фильтрации рекламы на роутере является использование возможностей локального DNS-DHCP сервера роутера, Dnsmasq. Данный метод не лишен недостатков: убрать всю рекламу со страниц не получится, на месте не загрузившихся баннеров останутся пустые места, поэтому плагин AdBlock в браузере или аналогичные решения для ПК принесут гораздо более приемлемый результат. Но этот способ приятен и полезен при наличии в домашнем хозяйстве различных мобильных устройств, которые, по какой-то причине, сами фильтровать рекламу не могут. Возможно 2 варианта: Использование опции address=/adsite.com/(без указания ресолвера), Dnsmasq в таком случае сразу возвращает NXDOMAIN, что предотвращает загрузку рекламного содержимого с этого сайта. Использование Hosts-файла с указанием в качестве адреса несуществующего IP (например 0.0.0.0), что приводит к аналогичному результату. Какой вариант выбрать: первый (он рекомендуется и в man к Dnsmasq, как более правильный), если только вы уже не используете директиву 'conf-file=' в dnsmasq.conf (например https://github.com/DontBeAPadavan/rublock-via-vpn/wiki), в этом случае правильная работа не гарантируется, тогда используйте второй вариант, он не хуже. Стоит сказать, что при наличии Entware список антирекламы будет максимально полным. Для этого установите wget из Entware (opkg install wget). Дело в том, что встроенный в прошивку wget криво поддерживает HTTPS и рекламные списки предоставляемые по этому протоколу загружаться не будут. Впрочем, если у вас потребности в Entware нет, то включать его только ради блокировки рекламы смысла не имеет, т. к. есть только один файл требующий HTTPS и его содержимое на 95% дублируется остальными. Первый вариант Добавляем в пользовательский файл конфигурации http://192.168.1.1/Advanced_DHCP_Content.asp данный параметр, указывающий дополнительный файл настроек для Dnsmasq: Код: conf-file=/tmp/addresses Далее в http://192.168.1.1/Advanced_Scripts_Content.asp по вашему вкусу, добавляем следующие строки: Код: sleep 9 PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin URLS="http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext \ http://winhelp2002.mvps.org/hosts.txt \ http://hosts-file.net/ad_servers.txt \ http://someonewhocares.org/hosts/hosts \ http://www.malwaredomainlist.com/hostslist/hosts.txt \ https://adaway.org/hosts.txt" wget --no-check-certificate -T 10 -qO- $URLS | sed 's/\t/ /g' | sed 's/\r//' | sed 's/ \{1,\}/ /g' | grep "^\(127.0.0.1\|0.0.0.0\)" | cut -d " " -f 2 | tr A-Z a-z | sort -u | sed 's/^/address=\//' | sed 's/$/\//' > /tmp/addresses && logger "Addresses-file has been successfully updated." sed -i '/address=\/local\//d' /tmp/addresses sed -i '/address=\/localhost\//d' /tmp/addresses sed -i '/address=\/localhost.localdomain\//d' /tmp/addresses sed -i '/address=\/l-stat.livejournal.net\//d' /tmp/addresses sed -i '/address=\/c.allegrostatic.pl\//d' /tmp/addresses sed -i '/address=\/adv.gpm-digital.com\//d' /tmp/addresses sed -i '/address=\/yastatic.net\//d' /tmp/addresses sed -i '/address=\/qip.ru\//d' /tmp/addresses killall -SIGHUP dnsmasq Второй вариант Добавляем в пользовательский файл конфигурации http://192.168.1.1/Advanced_DHCP_Content.asp данный параметр, указывающий дополнительный host-файл для Dnsmasq: Код: addn-hosts=/tmp/hosts Далее в http://192.168.1.1/Advanced_Scripts_Content.asp по вашему вкусу, добавляем следующие строки: Код: sleep 9 PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin URLS="http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext \ http://winhelp2002.mvps.org/hosts.txt \ http://hosts-file.net/ad_servers.txt \ http://someonewhocares.org/hosts/hosts \ http://www.malwaredomainlist.com/hostslist/hosts.txt \ https://adaway.org/hosts.txt" wget --no-check-certificate -T 10 -qO- $URLS | sed 's/\t/ /g' | sed 's/\r//' | sed 's/ \{1,\}/ /g' | sed 's/^127.0.0.1/0.0.0.0/g' | grep "^0.0.0.0" | cut -d " " -f 1,2 | tr A-Z a-z | sort -u > /tmp/hosts && logger "Hosts-file has been successfully updated." sed -i '/0.0.0.0 localhost/d' /tmp/hosts sed -i '/0.0.0.0 localhost.localdomain/d' /tmp/hosts sed -i '/0.0.0.0 l-stat.livejournal.net/d' /tmp/hosts sed -i '/0.0.0.0 c.allegrostatic.pl/d' /tmp/hosts sed -i '/0.0.0.0 yastatic.net/d' /tmp/hosts sed -i '/0.0.0.0 adv.gpm-digital.com/d' /tmp/hosts sed -i '/0.0.0.0 qip.ru/d' /tmp/hosts killall -SIGHUP dnsmasq Затем применяем/сохраняем все изменения и выполняем нужное действие для срабатывания пользовательского скрипта (я выбрал скрипт "Выполнить после полного запуска маршрутизатора", поэтому перезагружаю роутер).