Для тех, у кого роутер поддерживает прошивку openwrt, еще один способ блокировки рекламы (
отсюда):
=====
Сидел я и думал, телевизор, WinPhone, (а впоследствии может кофеварка и пылесос) показывают суперназойливую рекламу, надо с этим что-то делать, и раз в WinPhone и телевизор (кофеварку, пылесос) плагина AdBlock нету, то он должен быть там где ходит их трафик, на роутере.
Оказалось ничего сложного тут нету, роутер у меня TP-Link 1043, с usb портом, флешка монтирована в /root, у кого флешки нет, можно использовать /tmp, замените пути.
Для начала научим стандартный dnsmasq работать с внешним host файлом.
В файле /etc/config/dhcp добавить строку:
- Код: Выделить всё
в секции
config dnsmasq
list addnhosts '/root/hosts/adfree'
list addnhosts '/root/hosts/unchanged'
Файл /root/hosts/unchanged я использую для добавления собственных hosts правил, или которых нет в adfree.
По пути /root/hosts/ создаем скриптик upd-adfree.sh который качает свежие списки adfree (ссылка которую использует android телефон) и модифицирует под вид hosts, затем перезагружает dnsmasq для того чтоб он прочитал новые файлы.
- Код: Выделить всё
##adfree
wget http://winhelp2002.mvps.org/hosts.txt -O adfree-tmp
sed 's/^\(.*\).$/\1/' adfree-tmp > adfree
## dns restart to update
/etc/init.d/dnsmasq restart
И дать права на выполнение:
- Код: Выделить всё
chmod +x /root/hosts/upd-adfree.sh
в файле /etc/crontabs/root добавить строку
- Код: Выделить всё
0 0 * * * /root/hosts/upd-adfree.sh
Что означает запускать скрипт каждый день в 0:00.
Активировать cron:
- Код: Выделить всё
/etc/init.d/cron enable
Собственно, всё.
Минусы: Некоторые сайты умеют определять adblock по размеру рекламных окон, такие будут возмущаться.