Ballard
Куратор хакинга
Фильтрация рекламы на роутере с прошивкой Padavan.
Наименее ресурсозатратным и наиболее простым в настройке из способов фильтрации рекламы на роутере является использование возможностей локального DNS-DHCP сервера роутера, Dnsmasq.
Данный метод не лишен недостатков: убрать всю рекламу со страниц не получится, на месте не загрузившихся баннеров останутся пустые места, поэтому плагин AdBlock в браузере или аналогичные решения для ПК принесут гораздо более приемлемый результат. Но этот способ приятен и полезен при наличии в домашнем хозяйстве различных мобильных устройств, которые, по какой-то причине, сами фильтровать рекламу не могут.
Возможно 2 варианта:
Стоит сказать, что при наличии Entware список антирекламы будет максимально полным. Для этого установите wget из Entware (opkg install wget). Дело в том, что встроенный в прошивку wget криво поддерживает HTTPS и рекламные списки предоставляемые по этому протоколу загружаться не будут. Впрочем, если у вас потребности в Entware нет, то включать его только ради блокировки рекламы смысла не имеет, т. к. есть только один файл требующий HTTPS и его содержимое на 95% дублируется остальными.
Далее в пользовательский скрипт по вашему вкусу, добавляем следующие строки:
Далее в пользовательский скрипт по вашему вкусу, добавляем следующие строки:
Затем применяем/сохраняем все изменения и выполняем нужное действие для срабатывания пользовательского скрипта (я выбрал скрипт "Выполнить после полного запуска маршрутизатора", поэтому перезагружаю роутер).
Наименее ресурсозатратным и наиболее простым в настройке из способов фильтрации рекламы на роутере является использование возможностей локального DNS-DHCP сервера роутера, Dnsmasq.
Данный метод не лишен недостатков: убрать всю рекламу со страниц не получится, на месте не загрузившихся баннеров останутся пустые места, поэтому плагин AdBlock в браузере или аналогичные решения для ПК принесут гораздо более приемлемый результат. Но этот способ приятен и полезен при наличии в домашнем хозяйстве различных мобильных устройств, которые, по какой-то причине, сами фильтровать рекламу не могут.
Возможно 2 варианта:
- Использование опции address=/adsite.com/(без указания ресолвера), Dnsmasq в таком случае сразу возвращает NXDOMAIN, что предотвращает загрузку рекламного содержимого с этого сайта.
- Использование Hosts-файла с указанием в качестве адреса несуществующего IP (например 0.0.0.0), что приводит к аналогичному результату.
Стоит сказать, что при наличии Entware список антирекламы будет максимально полным. Для этого установите wget из Entware (opkg install wget). Дело в том, что встроенный в прошивку wget криво поддерживает HTTPS и рекламные списки предоставляемые по этому протоколу загружаться не будут. Впрочем, если у вас потребности в Entware нет, то включать его только ради блокировки рекламы смысла не имеет, т. к. есть только один файл требующий HTTPS и его содержимое на 95% дублируется остальными.
- Первый вариант
Код:
conf-file=/tmp/addresses
Код:
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
- Второй вариант
Код:
addn-hosts=/tmp/hosts
Код:
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