Данная статья является логическим завершением небольшой дискуссии с тов. vvzvlad, которая развернулась под топиком "Чистим домашний интернет от очень назойливой рекламы (Ad's blocker для OpenWRT)", где автор с помощью wget, sed и cron на OpenWRT успешно сливает файлы рекламных хостов, парсит и подсовывает dns-серверу dnsmasq.

Переадресовывая клиента при запросе «рекламного» домена, например, на loopback (127.0.0.1 — 127.255.255.255), вместо котента рекламы клиент получит благодатное «ничего» (разумеется, при условии, что у нас не работает локальный веб-сервер который слушает локалхост). Механизм фильтрации довольно старый и не лишен недостатков. Например, нельзя указать маски хостов (*.ad-domain.tld) или «вырезать» рекламу, баннеры которой хостятся на запрашиваемых ресурсах. Но зато не привязан к какому-то либо протоколу и довольно прост в эксплуатации. Более того, если его использовать, например, на домашнем или офисном маршрутизаторе, который используется в качестве DNS сервера, реклама успешно порежется на всех гаджетах, где IP нашей железки прописан первым в качестве DNS сервера.

Но что если у нас вместо роутера с кастомной прошивкой используется… MikroTik (RouterOS), функционал которого накладывает некоторые ограничения? Под катом вы узнаете каким образом удалось успешно "сконвертировать" файл хостов в пригодный для него формат, как автоматизировать это дело и что для хабралюдей в качестве бонуса был создан небольшой сервис как раз для автоматизации этого процесса (маленький, абсолютно бесплатный и с открытыми исходниками).

Настраиваем MikroTik


Настройка самой железки вряд ли вызовет какие-либо трудности. Укажем IP маршрутизатора в качестве первого DNS сервера в DHCP — «IP» > «DHCP Server» > «Networks» > %default config%. Первым прописываем IP самого MikroTik-а, нажимаем «OK»:



DNS сервер работает «из коробки», и можно даже не менять его стоковые настройки:


Единственная интересная для нас кнопка — «Static» («Статические маршруты»), в которых мы должны прописать «рекламные» домены, указав куда такие запросы перенаправлять.

Конвертируем файл хостов


Файл хостов имеет формат:

# Any comments
127.0.0.1 localhost
127.0.0.1 domain-a.tld
127.0.0.1 domain-b.tld

Формат скрипта для MikroTik, использующий статические DNS маршруты:

# Any comments
/ip dns static
add address=127.0.0.1 name=localhost
add address=127.0.0.1 name=domain-a.tld
add address=127.0.0.1 name=domain-b.tld

Для получения актуальных списков первого и преобразования их во второй мы выполним простые команды в шелле на, например, десктопе (bash):

  1. Скачиваем списки и аккуратно складываем их под именами ./hosts_list.1, ./hosts_list.2 и т.д.:
    $ src=('http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext' 'https://adaway.org/hosts.txt'); i=0; for file in ${src[*]}; do i=$((i+1)); wget --no-check-certificate -O "./hosts_list.$i" "$file"; done;

  2. Грепаем всё что начинается на '127.0.0.1 ', удаляем комменты, оставляем только имена доменов, убираем дубликаты, убираем пустые строки и оформляем каждый домен в виде команды для импорта:
    $ in="./hosts_list.*" && out="./adblock_dns.rsc" && host='127.0.0.1'; echo "/ip dns static" > $out && grep '127.0.0.1 ' $in | grep -v '^#' | cut -d' ' -f 2 | sort -u | grep . | sed "s/^/add address=$host name=/" >> $out && rm -f $in; wc -l $out;

    Да, надо бы использовать регулярку и вообще всё переделать, но самое главное — я передал тебе свою мысль, дальше дело за тобой


На выходе у нас получится файл adblock_dns.rsc, который не лишним будет дополнительно проверить на корректность содержимого.

Импортируем в MikroTik


Для того, чтобы импортировать полученный файл, мы цепляемся к маршрутизатору по ftp, заливаем adblock_dns.rsc, после чего цепляемся по ssh или открываем терминал, в котором выполняем:

  1. Делаем резервную копию (полученный бэкап лучше сохранить у себя на машине):
    /system backup save

  2. Если у тебя в таблице нет важных маршрутов, то можем грохнуть все имеющиеся записи:
    /ip dns static remove [/ip dns static find]

  3. Импортируем загруженный файл:
    /import adblock_dns.rsc

  4. Убираем за собой:
    /file remove adblock_dns.rsc


Теперь можешь (опционально) перезагрузить MikroTik, проверить корректность получения адресов DNS серверов по DHCP и попытаться открыть какой-либо ресурс, который ранее был наводнен рекламой — её должно стать ощутимо меньше.

Эмпирически доказано что при импортировании ~5500 записей Mikrotik hAP lite (650MHz @ RAM 32 Mb) встает почти колом при попытке в GUI открыть таблицу статических маршрутов. Перезагрузка помогает


Автоматизация


Один из простейших вариантов автоматизации — скрипт на баше, который по крону поддерживает в актуальном состоянии adblock_dns.rsc, находящийся в открытом доступе по, скажем, ftp. Его основа была уже описана выше, осталось только оформить его по твоему усмотрению (необходима отдельная машина).

Ещё один вариант — это использование MetaRouter на самом или соседнем MikroTik-е, на котором установлен тот же OpenWRT (избавляемся от необходимости в отдельной машине; этот вариант не расписан подробно за неимением достойного MikroTik-а под руками).

Второй скрипт (на MikroTik) забирает его (adblock_dns.rsc), делает бэкап и, если и файл скачался успешно, и бэкап сохранился успешно, его импортирует, предварительно (внимание) грохнув все имеющиеся маршруты:

:local hostScriptUrl "ftp://user:login@ftp_host:21/adblock_dns.rsc";

:local scriptName "adblock_dns.rsc";
:local backupFileName "before_stopad";
:local logPrefix "[StopAD]";

do {
 /tool fetch mode=ftp url=$hostScriptUrl dst-path=("./".$scriptName);
 :if ([:len [/file find name=$scriptName]] > 0) do={
   /system backup save name=$backupFileName;
   :delay 1s;
   :if ([:len [/file find name=($backupFileName.".backup")]] > 0) do={
     /ip dns static remove [/ip dns static find];
     /import file-name=$scriptName;
     /file remove $scriptName;
     :log info "$logPrefix AD block script imported, backup file (\"$backupFileName.backup\") created";
   } else={
     :log warning "$logPrefix Backup file not created, importing AD block script stopped";
   }
 } else={
   :log warning "$logPrefix Backup file not downloaded, script stopped";
 }
} on-error={
 :log warning "$logPrefix AD block script download FAILED";
};

Бонус для хабралюдей


А что делать, если у тебя дома/офисе/гараже стоит MikroTik и хочется или просто порезать рекламу, или автоматизировать обновление хостов, не поднимая никакие метароутеры и хосты с файлами по ftp, вот чтоб просто и без заморочек?
Правильно, нужно чтобы это поднял кто то за тебя. И в качестве бонуса — такая штука уже поднята.

Смысл заключается в следующем — тебе достаточно перейти на нужную страницу, указать свои настройки и получить URL, по которому будет доступен скрипт с указанными тобой настройками. Там же будет предоставлен и исходник готового скрипта для тебя. Возможности, которые реализованы на данный момент:

  • Выбор из списка публичных файлов-хостов (спасибо AdAway для Android);
  • Хочется указать свои источники? Без проблем! (можно, например, указать три публичных хост-файла и два своих, расположенных на том-же gist.github.com, получив таким образом довольное удобное средство управления статическими маршрутами на подопечных маршрутизаторах);
  • Настраиваемый адрес (IP v4) перенаправления;
  • Указание ограничения (лимита) количества записей в итоговом скрипте (для того чтоб «случайно» не положить «слабую» железку);
  • Указание своих маршрутов (будут просто добавлены первыми в генерируемый скрипт);
  • Возможность указания исключений — нужные домены никогда не будут «заблокированы»;
  • Довольно удобная генерация готового скрипта для MikroTik;

Парсер написан на PHP (потребует php5-curl), лицензия MIT, исходники доступны по ссылке mikrotik-hosts-parser. Сколько сервис проживет — не берусь загадывать, но надеюсь что достаточно долго. Стойкую к хабраэффекту площадку любезно предоставил тов. drakmail, за что спасибо ему и команде Generate.Club.

Ссылка: MikroTik DNS Stop AD

Диклеймер: 1. Команда Generate.Club не имеет отношения к сервису. 2. Не хорошо допускать кого-либо к исполнению кода на твоих маршрутизаторах. Поэтому призываю пользоваться им исключительно в ознакомительных целях. Если всё нравится, сделай форк, настрой под себя да пользуйся на здоровье. За возможные перебои в работе, хабраэффект или ошибки ответственности никто не несет. 3. Я приложу все усилия, чтобы всё работало «как надо» максимально продолжительное время, но нужно понимать степень ответственности.

При обнаружении ошибок в работе сервиса или опечаток в тексте — пожалуйста, сообщайте об этом в личку. Заранее спасибо!

Комментарии (54)


  1. Meklon
    03.08.2015 11:32
    +2

    Allow remote requests во включённом состоянии требует наличия правила в firewall для блокировки dns запросов извне. Мне так канал изнасиловали. Все кому не лень решили, что мой dns быстрее отвечает и запрашивали все у моего роутера.


    1. partizannn
      03.08.2015 13:07

      Правильный конфиг запрета подскажите?


    1. denser
      03.08.2015 13:32
      +2

      Тоже самое, а человеку выше, просто блокируйте трафик на интернет интерфейс по порту 53 и протоколу UDP, входящий

      add action=drop chain=input comment="drop external dns request" dst-port=53 in-interface=bridge-wan protocol=udp
      


      1. Chupakabra303
        05.08.2015 13:25

        Ну, неверное, еще и TCP 53 можно закрыть.


        1. denser
          06.08.2015 03:36

          Правило есть, но по нему нет движений, в то время, как по up очень много.


    1. lumenous
      03.08.2015 14:31
      +4

      Это был DNS Amplification =)


  1. sparksounds
    03.08.2015 11:53

    Пол часа назад, заказал Mikrotik hex. Завтра должны доставить, обязательно протестирую, а то из уважения ко всем AdBlock установлен только в одном браузере для тестов.


  1. VBKesha
    03.08.2015 12:13

    А нет чего то подобного чтобы заблокированные сайты в другой канал отправлять?


  1. dkuzevanov
    03.08.2015 12:17

    Mikrotik hAP lite (650MHz @ RAM 32 Mb)

    Ого, а они уже есть в продаже?


    1. cmepthuk
      03.08.2015 12:36
      +6

      Отож. Функционал, конечно, не такой как у «старших» собратьев, но в своей ценовой категории он «рвёт» всех:


      1. dannyzubarev
        03.08.2015 14:54
        -7

        А ему гигабитные и не нужны – не прокачает столько трафика.


        1. dannyzubarev
          05.08.2015 14:03

          Вопрос к минусующим: вы его хоть вживую видели? Даже официальные тесты Микротика показывают, что прокачивает он максимум 395 Mbps при размере пакета в 1518 байт (http://routerboard.com/RB941-2nD). И куда вы собрались гигабитные порты пихать? :)


    1. AxisPod
      03.08.2015 14:44
      +2

      Если бы не 100Мбит/с порты, было бы годно. А то и у не lite те же 100Мбит/с.


      1. dkuzevanov
        03.08.2015 14:45

        Mikrotik hAP AC имеет гигабитные порты (https://market.yandex.ru/product/12430817/spec?hid=723087&track=tabs)


  1. qw1
    03.08.2015 13:47
    +4

    По моему опыту, лучше ресолвить рекламные хосты как 0.0.0.0, а не 127.0.0.1
    Windows при коннекте на локальный порт, который никто не слушает, имеет тайм-аут в 1 секунду. На адрес 0.0.0.0 попытка коннекта отваливается моментально.


    1. Alkop
      03.08.2015 15:26

      RouterOS ожидает адрес отличный от 0.0.0.0 в настройках Static DNS к сожалению..:(


      1. qw1
        03.08.2015 15:54

        Можно попробовать другой невалидный адрес. Например, 255.255.255.255


    1. PsyHaSTe
      06.08.2015 11:04

      Есть мнение, что лучше таймаут 1 секунда, чем бомбить 0.0.0.0 запросами. Потому что не все послушают и успокоятся, кто-то может и

      while((request = GetRequest()) == null)
       {}
      // code
      


      1. qw1
        06.08.2015 11:25

        Это гипотетический сценарий, а немного просевшая скорость загрузки страниц — реальная проблема, которая заставила меня отказаться от 127.0.0.1


  1. w0den
    03.08.2015 14:41
    -5

    Мне кажется, такими способами вы не чистите интернет от назойливой рекламы, вы медленно убиваете большинство по-настоящему хороших проектов, которые существуют только благодаря таким сервисам как AdSense или Директ. Справедливости ради, нужно отметить, что некоторые вебмастера «сдались» уже когда количество пользователей с АдБлоками на их сайтах начало превышать 30-40%.

    Да, назойливую рекламу стоит заблокировать, но речь идёт про всякие попандеры, кликандеры и прочая ересь. Но не стоит слепо следовать таким инструкциям, точнее, использовать подобные готовые списки «плохих» сайтов, которые блокируют всё подряд. Например, почему-то авторы решили, что Google Analytics и LiveInternet также относятся к назойливой рекламы, и конечно, мало кто будет исключить их из списка.

    Но что самое интересное, так это то что сервисы с назойливой рекламы периодически меняют свои домены (а некоторые даже позволяют использовать свои поддомены), в то время как, например Google или Яндекс, этого не делают. И в итоге, получается, что для большего дохода, вебмастеры переходят на сторону «зла», а простые «смертники» удивляются — а почему интернет стал таким грязным и куда делились хорошие проекты?


    1. Alexey2005
      03.08.2015 18:16
      +4

      Я вообще удивляюсь, кто же те люди, которые добровольно щёлкают по всем этим баннерам. И существуют ли такие вообще в природе, или же все клики происходят непреднамеренно.
      Ну, а если я в любом случае никогда не пройду по баннерам, и вообще уже привык их не замечать, то от их удаления рекламщики всё равно ничего не потеряют. Просто часть работы я переношу с собственного мозга (который давно научился пропускать рекламу мимо сознания) на аппаратуру, специально под это заточенную.


      1. w0den
        03.08.2015 21:37
        +2

        И существуют ли такие вообще в природе
        И всё же, это не фантастика, такие люди правда существуют. Конечно, не вся реклама полезная, но иногда действительно помогает найти дополнительную информацию или товары по теме. А если ничем не дополняет материал и никак не мешает — пусть стоит, я ведь ничего не теряю.

        Ну, а если я в любом случае никогда не пройду по баннерам
        То, что Вы не кликайте по баннерам (хотя, а вдруг будет что-то интересное?) это не проблема. Дело в том, что рекламодатели платят не только за клики, но также за показы и Active View. И, как правило, этого достаточно, чтобы заплатить за хостинг сайта (ну, или по крайнее мере его часть). Но отключив рекламу и статистику, от такого посетителя, практически, не будет никакой пользы — только нагрузка на сервер и «красивые» циферки в log-файлов.


    1. 4aba
      03.08.2015 19:15
      +1

      Я начал изучать как это сделать для OpenWRT когда моя девушка и мама почти одновременно на разных сайтах попали на одного мужика который орал в 4 динамика что он зарабатывает по 1000$$$ в час (ну или как то так). Это было последней каплей. Реклама конечно мешала, особенно самолетики, некоторую отшило когда я отказался от флеша. В данном варианте (ну и в OpenWRT) реклама которая лежит на сайте (как у рутрекера или одесского форума) отображается, в отличии от AdBlock, так что рекламу мы видим, и может даже перейдём, и она вполне адекватна, в отличии от заработка в 1000$$$ в час на кликах.


      1. w0den
        03.08.2015 21:41

        Не думаю, что это была реклама AdSense или Директ. По крайнее мере, я никогда не слышал про такие случаи. В любом случае, согласен, раздражающую рекламу стоит заблокировать.

        Насчёт прямых договоров на размещение рекламы, насколько я знаю, это не так просто, а иногда даже невозможно.


        1. reff
          05.08.2015 13:28
          +1

          Гугл небезгрешен. Попадается реклама явных зловредов на платформе Андроид.


          1. w0den
            05.08.2015 23:19

            И всё-таки, это совершено другая проблема — одно дело, когда реклама автоматически начинает «орать в динамиках», и другое, когда мошенникам удаётся перехитрить систему.


            1. qw1
              06.08.2015 02:45

              Под видом «обновления оперы» словить троянца, заточенного под воровство с qiwi и сбербанк-онлайн — это похуже, чем ор в динамиках.


            1. reff
              06.08.2015 11:45
              +2

              Один «орущий в динамики» испортил репутацию всем. Тот, кто обжёгся молоком дует и на чай: вся реклама это зло.
              Мне некомфортно читать, например, cnews, когда статья занимает условные 300 на 300 пикселей, а со всех сторон мигают, нет, МИГАЮТ!!!1два флешовые баннеры, которые не останавливают свое воспроизведение по нажатию на ESC.


    1. RicoX
      03.08.2015 20:10
      +1

      Я вот люблю хорошую рекламу или хотя-бы не раздражающую. Хорошая это когда я ищу, грубо говоря, перфоратор и на сайте мне покажут видеообзор перфораторов, преимущества модели определенной фирмы и расскажут про не очевидные кейсы использования, такую рекламу я смотрю добровольно и подписан на нее. Не раздражает контекстная реклама, а вся прыгающая визжащая мигающая срань должна быть вырезана, те кто ее вешает — сами себе злые буратины, не припомню хороших проектов которые загибаются от того, что кто-то обрезал всю эту дрянь, а вот плохих, которые спихивают все свои проблемы на адблок, предостаточно. Не можешь обеспечить на ресурсе комфортные условия для пользователя — туда и дорога, но ни какие моральные увещевания не заставят меня добровольно смотреть это дерьмо, за интересные мне проекты я просто доначу. Подход к рекламе, который я считаю оптимальным для сайта
      замечу автор зарабатывает на проекте и не ноет что все плохие адблок включили, жрать нечего.


      1. w0den
        03.08.2015 21:56
        +1

        Извините, но Вы хоть читали мой комментарий? Во-первых, я не ныл, а лишь написал то, что думаю об этой «проблеме», опираясь на опыт заказчиков или людей которые действительно многое потеряли из-за АдБлоков. Во-вторых, именно этого я и сказал — что нужно заблокировать назойливую рекламу, но оставить «нормальную», контекстную рекламу от AdSense или Директ. И в-третьих, Алексей зарабатывает не на сайтах, а на то, что он является руководителем строительной компании. И говорит он также про рекламу, которая мешает и раздражает.

        Если честно, я не понимаю, зачем он вообще создал данный ролик — ведь, каждому уважающему себя руководителю известно, что испортить имидж компаний очень дорогое удовольствие. Теперь что, нужно ждать подобные ролики от адвокатских контор, банков, строительных компаний и многих других? — Эй, смотрите! Мы не размещаем рекламу на нашем сайте, у нас и так хорошие доходы.Так что, идите н*х!


        1. RicoX
          03.08.2015 22:52
          +3

          вы медленно убиваете большинство по-настоящему хороших проектов, которые существуют только благодаря таким сервисам как AdSense или Директ. Справедливости ради, нужно отметить, что некоторые вебмастера «сдались» уже когда количество пользователей с АдБлоками на их сайтах начало превышать 30-40%.

          Хорошие проекты зарабатывают именно на своем продукте или контенте, хорошие сайты размещают у себя обзоры (как хабр или GT), пусть проплаченные, но из них можно часто почерпнуть интересную информацию, узнать о новой технологии или полезном проекте — это хорошая реклама, которую не режет ни один блокировщик. Или что имеете в виду вы под «по-настоящему хорошими проектами», можно с примерами? AdSense или Директ чаще всего не блокирован, но даже если есть блок, то это личный выбор пользователя хочет ли он, чтоб за ним следили или нет, я принудительно отключал не гуглояндексовые сервисы, т.к. из за них сайты тормозят адски даже на широком канале. В конце концов веб мастер может размещать рекламу на своем сайте и при этом неплохо жить (так же не блокируется, если контент находится на том же домене, что и сайт), примеры кинуть? А разговоры о сдавшихся вебмастерах — это разговоры в пользу бедных.


          1. w0den
            04.08.2015 14:50

            Хорошие проекты зарабатывают именно на своем продукте или контенте
            При создании платного продукта или сервиса, практически никто не будет размещать рекламу на таких сайтах. И это правильно. Так что опять не понимаю, зачем Вы это написали.

            хорошие сайты размещают у себя обзоры (как хабр или GT)
            Если Вы не заметили, на Хабрахабре до сих пор есть рекламные баннеры (к слову, от AdRiver, который, конечно же, также добавлен в блэклист). И если они зарабатывают так хорошо на обзоры* и корпоративные тарифы, почему не удаляют их? При том, что сейчас Хабрахабр достаточно популярен и рекламодатели сами идут к нему, не говоря уже про контент который создаётся пользователями. Но, так или иначе, если не ошибаюсь, изначально, контекстная реклама была единственный источник дохода.

            Или что имеете в виду вы под «по-настоящему хорошими проектами», можно с примерами?
            Да, всё верно, я имел в виду информационные сайты, такие как Хабр, Роем, Лайфхакер, Цукерберг Позвонит (кстати, посмотрите, как последние «ноют») и многие другие, которые, насколько я знаю, все используют контекстную рекламу. Конечно, я могу ошибаться, но мне кажется, что без инвестора или без рекламы, будет очень трудно развивать информационный сайт. Быть может, я утрирую, но если бы все пользователи использовали АдБлоки или подобные решения, которые блокируют всё подряд, то большинство проектов и не появились бы или по крайнее мере, развивались бы намного медленнее.

            AdSense или Директ чаще всего не блокирован
            Насколько я знаю, совсем наоборот — по умолчанию, эти системы заблокированы. И данная статья, как и другие расширения для браузеров, это тому доказательство.

            В конце концов веб мастер может размещать рекламу на своем сайте и при этом неплохо жить
            Во-первых, это не так просто как кажется. А во-вторых, прочитайте третий абзац из моего первого комментария.

            А разговоры о сдавшихся вебмастерах — это разговоры в пользу бедных.
            Вы только не забывайте, что так или иначе, в итоге больше всего потеряют пользователи. Если вебмастер решил «сдаться», то заморозка проекта или назойливая реклама будет лучшее что может произойти.

            ps. Извините, за прямоту, но я не уверен что понимаю смысл Ваших комментариев и что это такой за способ ведения дискуссии. Сначала, Вы разделяете мою точку зрению о хорошей и плохой рекламе, но в тоже время, обвиняете меня в нытье и приводите ролик, в котором автор рассказывает, как сильно он ненавидит рекламу, но всё-же зарабатывает на проекте (при этом, очевидно, что Вы даже не знали чем он зарабатывает, а также о какой рекламе и, главное, о каких мастерах он говорит). Потом, Вы игнорируйте мой второй комментарий, забываете о Вашем «герое» и возвращаетесь к моему первому комментарию. Почему так? Может я что-то упустил или не так понял?


            1. RicoX
              04.08.2015 15:21

              При создании платного продукта или сервиса, практически никто не будет размещать рекламу на таких сайтах.

              Ваши бы слова… если бы это так и было, многие блокировщики рекламы никогда небыли бы созданы.
              Если Вы не заметили, на Хабрахабре до сих пор есть рекламные баннеры

              Нет не заметил, давно и прочно за блокировщиками, но точно помню в профиле галку отключить рекламу.
              Пример цекербергом не совсем то, вот цитата с вашей же ссылки:
              И эти самые пользователи особо не расстраивают. За исключением того, что нужно о них не забывать и всегда задумываться, как выглядит сайт для тех, кто пользуется этим расширением.

              Хабр и Роем, я высказал свое мнение, но хотелось бы конечно от владельцев проектов.
              На Лайфхакере я вижу рекламу и банеры, несколько ненавязчивых справа при этом у меня двойная блокировка как на маршрутизаторе так и в браузере, значит не все у них так плохо и нужно просто захотеть показать, а не прикручивать кривые агрегаторы, крутящие все подряд, при этом если реклама станет сильно навязчивой, то кто-нибудь обязательно добавит ее в фильтры, а так автоматический баланс между читаемостью сайта и качеством рекламы.
              Насколько я знаю, совсем наоборот — по умолчанию, эти системы заблокированы.

              У меня другой пруф adblockplus.org/acceptable-ads
              Вы только не забывайте, что так или иначе, в итоге больше всего потеряют пользователи. Если вебмастер решил «сдаться», то заморозка проекта или назойливая реклама будет лучшее что может произойти.

              Уйдет информация с одного ресурса — попадет на другой, пользователи не потеряют, вместо кучи мелких площадок будет чуть меньше покрупнее, что даже удобнее конечному пользователю. ИМХО
              при этом, очевидно, что Вы даже не знали чем он зарабатывает, а также о какой рекламе и, главное, о каких мастерах он говорит

              Из чего это очевидно, я подписан на автора и на его мастер классы, привел как пример, что проект может зарабатывать без чужой рекламы, на рекламе себя и своих продуктов/работ/etc. И когда в видео конкретно данного автора проскакивают названия моделей инструмента я скорее куплю для себя именно этот инструмент. Это реклама — да, она полезна — да, она не блокируется — тоже да, т.к. является неотъемлемой частью роликов.
              Еще раз я не против рекламы вообще, если на сайте о пылесосах мне покажут рекламы пылесосов отдельных фирм, я за и эта реклама не будет зарезана, т.к. размещена локально на этом же сайте, если мне на этом же сайте покажут рекламу женских трусов, то пусть горит в аду этот вебмастер, который прикрутил эту дрянь.

              Итого резюмирую. Имеешь сайт с тщательно подобранной под контент рекламой, получаешь и просмотры и и клики, при этом пользователь сам добавит сайт в белый список блокировщиков, хочешь тупо крутить AdRiver и других агрегаторов, которые не особо парятся о качестве контента и соответствии его тематике ресурса — не жалуйся, что пользователи плохие и не дают жить, а все проблемы от адблоков.


              1. w0den
                04.08.2015 17:21

                Ваши бы слова… если бы это так и было, многие блокировщики рекламы никогда небыли бы созданы
                Если честно, я не припомню ни один успешный платный продукт, владельцы которого размещали бы на своём сайте рекламу. А вот зачем были созданы блокировщики рекламы — позвольте напомнить, что изначально они действительно боролись с «нечестью» (попандеры, кликандеры и другая раздражающая реклама), но вот только потом поняли, что можно срубить денежку и начали войну против поставщиков контекстной рекламы и вебмастеров — видите ли, как только платишь им, магическим образом реклама уже становится допустимой.

                Нет не заметил, давно и прочно за блокировщиками, но точно помню в профиле галку отключить рекламу
                Вот поэтому, наверное, и подумали, что Хабр живёт за счёт обзоров, которые на самом деле, не приносят ему никакой доход. Могу ошибаться, но насколько я знаю, гонорар всё-таки получают авторы, а не владельцы Хабра. Насчёт галочке в профиле, вроде это была шутка от разработчиков и на самом деле она ничего не отключала.

                Пример цекербергом не совсем то, вот цитата с вашей же ссылки
                Ключевые слова тут «18-20% визитов с АдБлоком» и «особо не расстраивают». Когда количество визитов с АдБлоком будет превышать 40%, вот тогда и будет проблематично. Но, в любом случае, раз они решились на такой эксперимент, значит, 20% дохода всё-таки имеет какое-то значение. И мне кажется, это правильно.

                На Лайфхакере я вижу рекламу и банеры, несколько ненавязчивых справа при этом у меня двойная блокировка как на маршрутизаторе так и в браузере, значит не все у них так плохо и нужно просто захотеть показать, а не прикручивать кривые агрегаторы, крутящие все подряд, при этом если реклама станет сильно навязчивой, то кто-нибудь обязательно добавит ее в фильтры, а так автоматический баланс между читаемостью сайта и качеством рекламы.
                Вы не поверьте, но у них также крутится реклама от AdSense. И заметьте, пожалуйста, я поддерживал именно такие системы как Адсенс и Директ, а не всякие «кривые агрегаторы», как Вы говорите. Хотя, тут также не всё так просто.

                У меня другой пруф adblockplus.org/acceptable-ads
                Вы заблуждайтесь. Это сайты, которые попали в белый список за денежку (ну, или просто удача улыбнулась). Если Вам интересно, посмотрите какие сайты попали в этом списке и подумайте, все ли эти сайты показывают «хорошую рекламу»?

                Уйдет информация с одного ресурса — попадет на другой, пользователи не потеряют, вместо кучи мелких площадок будет чуть меньше покрупнее, что даже удобнее конечному пользователю
                Ну да, копипасту никто не отменял. Но в долгосрочной перспективе, кто же будет создать контент? Или Вы правда думаете, что те люди, которые бросили свои сайты, сразу же начнут писать статьи для других площадок? Более того, чем меньше источников информации, тем хуже. Какой прок от 10 крупных площадок, если все пересказывают один и тот же текст?

                Из чего это очевидно, я подписан на автора и на его мастер классы, привел как пример, что проект может зарабатывать без чужой рекламы, на рекламе себя и своих продуктов/работ/etc.
                Вы наверное шутите, да? Вы ведь написали: Подход к рекламе, который я считаю оптимальным для сайта… замечу автор зарабатывает на проекте и не ноет что все плохие адблок включили, жрать нечего. Но он же не является вебмастером и он вообще не зарабатывает на рекламе (об этом он сам подчёркивал пару раз в своём видео — никто не платит ему за то, что он рассказывает про какие-то инструменты). Также, он сказал, что ненавидит рекламу которая мешает и имел в виду строительных мастеров (a не вебмастеров) которые показывают такую рекламу на YouTube.

                И когда в видео конкретно данного автора проскакивают названия моделей инструмента я скорее куплю для себя именно этот инструмент. Это реклама — да, она полезна — да, она не блокируется — тоже да, т.к. является неотъемлемой частью роликов.
                Ещё раз — он не получает деньги за такую «рекламу».

                Еще раз я не против рекламы вообще, если на сайте о пылесосах мне покажут рекламы пылесосов отдельных фирм, я за и эта реклама не будет зарезана, т.к. размещена локально на этом же сайте, если мне на этом же сайте покажут рекламу женских трусов, то пусть горит в аду этот вебмастер, который прикрутил эту дрянь.
                Прочитайте, пожалуйста, мои предыдущие комментарии.

                Итого резюмирую. Имеешь сайт с тщательно подобранной под контент рекламой, получаешь и просмотры и и клики, при этом пользователь сам добавит сайт в белый список блокировщиков, хочешь тупо крутить AdRiver и других агрегаторов, которые не особо парятся о качестве контента и соответствии его тематике ресурса — не жалуйся, что пользователи плохие и не дают жить, а все проблемы от адблоков.
                Во-первых, очень-очень-очень мало людей добавляют сайт в белый список (можете поверить мне на слово, либо попробуйте искать в интернете результаты таких экспериментов). Во-вторых, кто сказал что AdRiver это плохой агрегатор? И в-третьих, скажите, пожалуйста, Вы хоть заметили что я против разрежающей рекламе?


                1. vikarti
                  07.08.2015 15:34

                  А вот зачем были созданы блокировщики рекламы — позвольте напомнить, что изначально они действительно боролись с «нечестью» (попандеры, кликандеры и другая раздражающая реклама), но вот только потом поняли, что можно срубить денежку и начали войну против поставщиков контекстной рекламы и вебмастеров — видите ли, как только платишь им, магическим образом реклама уже становится допустимой.
                  для того же хрома есть Adblock Plus (с галочкой про допустимую рекламу) а есть — просто AdBlock (без всяких галочек про допустимую рекламу но с просьбой доната сколько не жалко) так что далеко не для всех магическим образом реклама становится допустима


        1. vikarti
          04.08.2015 08:00

          adblockplus.org/acceptable-ads для Директа и AdSense на своих сайтах использовать нельзя? Или используете но не помогает?


          1. w0den
            04.08.2015 14:52

            К счастью, данная «проблема» меня ещё не затрагивает. Правда, недавно один заказчик отправил им заявку, чтобы включить сайт в белый список. Не знаю точно, чем это закончилось, но если не ошибаюсь, вскоре он включил обратно все настройки Адсенса (то есть, показать все форматы рекламы, а не только текстовые).

            Кстати, если у Вас достаточно большой проект, не исключено что Вам придётся раскошелиться чтобы попасть в белом списке. Ведь, не все знают, что эти компании не такие уж белые и пушистые, и как только им отправляют денежку, тут же забывают какая у них «важная миссия» (не зря же их называют рэкетами).


  1. AcidVenom
    04.08.2015 08:24
    +1

    adblock_dns.auto.rsc на выходе скрипта использовать не хотите? Избавит от команды импорта.


  1. CTpaHHoe
    04.08.2015 10:30
    +1

    спасибо за отличную статью.

    скрипт «съедает» дефисы в названии своих маршрутов. подробности отправил в личку


    1. cmepthuk
      04.08.2015 14:28

      Спасибо за указание ошибки, которая действительно имела место быть. Сейчас она уже исправлена.


  1. chelaxe
    04.08.2015 12:15
    +1

    Можно добавлять комментарий к рекламным строкам в таблице, а позже по ним удалять в этом случае не нужно маршруты пользователя каждый раз прописывать. Вот пример:

    /ip dns static add address=127.0.0.1 name=tracking.klickthru.com comment=adb;
    /ip dns static remove [find comment=adb];


    1. chelaxe
      04.08.2015 12:53

      Можно еще в прокси самого микротика все это заводить. В свое время так и делал, но сейчас перешел на сквид на домашнем сервере.


  1. LPby
    04.08.2015 15:05

    1. После скачивания файлов хостов нужно еще dos2unix использовать. Мне такие списки попадались.
    2. Очищать список не совсем правильно, я использую свои статические записи, так что лучше так:
    /ip dns static remove [ find where address="127.0.0.1" ]


  1. LPby
    04.08.2015 15:12
    +1

    если кому интересно — скрипт на отдельностоящей машине:

    #!/bin/bash
    
    echo "Downloading hosts..."
    curl -s https://adaway.org/hosts.txt | grep "^127" | awk '{print $2}' > /tmp/ad-domains
    curl -s http://winhelp2002.mvps.org/hosts.txt | grep "^0\.0" | awk '{print $2}' >> /tmp/ad-domains
    curl -s "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext" | grep "^127" | awk '{print $2}' >> /tmp/ad-domains
    
    dos2unix /tmp/ad-domains
    
    sort -u /tmp/ad-domains > /tmp/adblock-mikrotik.rsc
    
    sed -i 's/^/\/ip dns static add address="127.0.0.1" name="/g' /tmp/adblock-mikrotik.rsc
    sed -i 's/$/"/g' /tmp/adblock-mikrotik.rsc
    
    echo "Got $(wc -l /tmp/adblock-mikrotik.rsc) lines"
    
    echo "Removing old entryes..."
    ssh 192.168.99.2 "/ip dns static remove [ find where address=\"127.0.0.1\" ]"
    
    
    echo "Uploading adblock-mikrotik.rsc..."
    scp /tmp/adblock-mikrotik.rsc 192.168.99.2:/
    
    echo "Aplying new hosts..."
    ssh 192.168.99.2 "/import adblock-mikrotik.rsc"
    
    rm -f /tmp/adblock-mikrotik.rsc
    rm -f /tmp/ad-domains
    


  1. qwerty1023
    04.08.2015 16:09

    А как обстоят дела с ipv6? Пытаюсь у себя на роутере (другом правда) решать подобную задачу и вылазят проблемы с ipv6 хостами…


    1. cmepthuk
      04.08.2015 16:52

      Разреши уточнить — какие именно проблемы вылазят с ipv6 хостами?


      1. qwerty1023
        04.08.2015 20:18

        У меня для radvd и dhcp6s прописаны были гуглоднсы ipv6, когда перестроил на ип-шник роутера, dnsmasq как-то не очень справляется с резольвингом… Вообщем пока все сумбурно и не ясно до конца, разбираюсь что да как…


      1. qwerty1023
        06.08.2015 10:54

        Немного разобрался, у меня днсом работает dnsmasq, ему в хостс нужно прописывать как ipv4 так и ipv6 адреса одного и того же домена, тогда корректно подменяются адреса по обеим протоколам

        /etc/hosts


        127.0.0.1 tpc.googlesyndication.com
        ::1 tpc.googlesyndication.com


        А вин7 похоже предпочитает ipv6 адрес, если резольвятся и тот и тот.


        1. cmepthuk
          06.08.2015 11:24

          Хорошо, разрешу ipv6 в адресе редиректа и отпишусь в личку, когда будет готово для теста


        1. ValdikSS
          15.08.2015 22:34

          Все современные ОС предпочитают IPv6.


  1. qwerty1023
    04.08.2015 20:18

    ---


  1. baxtep
    03.09.2015 14:55

    +15к записей -> на всех +3 компьютерах дома и мобильных устройствах жуткие тормоза. 951 микротик — загрузка 60%+


    1. sokolster
      05.09.2015 11:52

      ну незнаю

      может обновится пора?
      image


      1. baxtep
        06.09.2015 06:31

        может. а может дело в 127.0.0.1? на скриншоте какой то другой адрес.