Реклама блокируется на уровне устройства, то есть не только в стандартном браузере, но и во всех остальных приложениях (например, в Chrome и YouTube).
Предыстория
Я пользуюсь блокировщиками на всех своих компьютерах, но все чаще захожу в интернет со смартфона.
Мне нравится мобильный Chrome больше чем Mozilla или Opera, но в Chrome нет поддержки расширений, а присутствие рекламы на смартфоне критичнее чем на десктопе, так как часто ограничен трафик и дисплей в несколько раз меньше.
Плюс мне нравится иногда смотреть видео на YouTube, но реклама, которую нельзя пропустить здорово мешает процессу.
Исходя из таких предпосылок я занялся поиском решения блокировки рекламы на смартфоне.
Пример работы приложения на Samsung Galaxy Tab 4 10.1. habr.ru
Готовых решений по блокировке рекламы довольно много, но, к сожалению, все они имеют хотя бы один крупный недостаток:
- Браузеры с поддержкой расширения для блокировки (Mozilla, Opera).
- Браузеры со встроенной блокировкой рекламы (от Ghostery, от AdBlockPlus).
- Блокировщики рекламы для стандартного браузера Samsung.
- Блокировщики на базе VPN.
- Полу-работающие решения (https://adblockplus.org/android-about).
- Блокировщики работающие на базе root.
Первые три варианта блокируют только в браузере. Я пробовал пользоваться ими, но Chrome мне нравится больше даже с рекламой. Четвертый вариант хорош, но не стабилен. Пятый не фильтрует мобильные данные.
Шестой вариант самый идеальный, если у вас есть root или вы не прочь его получить.
В каждом из вариантов приходиться чем-то жертвовать, поэтому я начал думать, могу ли сделать что-нибудь сам. Решения на тот момент не нашел и прошло много времени пока не наткнулся на платформу от Samsung.
Samsung Knox Standard SDK
Knox это решение разработанное Samsung. Под брендом Knox существуют много продуктов, но остановлюсь на одном, который я использовал.
Knox Standard SDK это бесплатная библиотека, которая работает почти на всех Android смартфонах Samsung и обладает богатым API (около 1100 методов). Если бы меня попросили описать Knox Standard SDK в двух словах, то я бы сказал, что это легальный почти root.
В общем, очень полезная штука, которая позволяет делать много интересных вещей. Например, полноценно заблокировать устройство на одно приложение, тихо включать GPS и запретить его выключение, тихо включать Wi-Fi/Bluetooth, тихо устанавливать/удалять не системные приложения, тихо включать/выключать любые приложения, запретить изменение настроек, запретить выключение устройства и много чего другого.
Вот ссылка на официальный сайт, там есть примеры, гайды и API Reference.
Неизвестность решения в широких кругах, я для себя объясняю тем, что оно создавалось для Enterprise + на мой взгляд, недостаточный маркетинг Samsung.
Идея
Просматривая документацию я понял, что с помощью API можно добиться блокировки рекламы на уровне устройства (как будто есть root доступ как в 6 пункте выше), а не на уровне приложений. Но блокировщик подойдет только владельцам смартфонов Samsung. Я решил, что лучше полное решение на одном устройстве, чем половинчатое на всех. И начал разработку.
Получение ключа
Чтобы начать использовать API нужно зарегистрироваться на сайте seap.samsung.com и сгенерировать бесплатный девелоперский ключ, с помощью которого на устройстве активируется работа библиотеки. Когда проект закончен, нужно получить продакшн ключ.
Девелоперский ключ работает три месяца, по окончанию срока можно сгенерировать новый. Продакшн ключ бессрочный, его нужно привязать к имени пакета и ключу, которым подписывается приложение В этом случае только ваше приложение сможет использовать полученный ключ.
Использование API
Далее нужно импортировать три .jar которые скачиваются после регистрации, в Gradle их нет, поэтому придется копировать вручную.
Не буду тут подробно описывать код: вы можете посмотреть его на GitHub и там все довольно просто сделано. Остановлюсь только на некоторых особенностях.
1. Для работы Knox Standard SDK нужно попросить пользователя ввести приложение в режим администратора, потом активировать полученный ключ и согласиться в сплывающем окне.
2. Оказалось, что на разных версиях Android от Samsung установлены разные версии Knox Standard SDK и обновляются они только с обновлением прошивки.
Поэтому нужно было поддерживать разные версии, в чем в общем-то я преуспел и сейчас блокировщик работает (надеюсь, что) на всех устройствах начиная с версии 2.0. Версию SDK можно посмотреть в информации об устройстве в настройках телефона.
Я буду благодарен, если в случае проблем с приложением, вы напишите в комментариях или откроете issue на GitHub.
А что блокировать?
В первой версии я заходил на популярные сайты из моего списка в Feedly и вылавливал рекламных провайдеров вручную, в сумме получилось около 200 доменов и все работало, но часто реклама просачивалась.
После того как я опубликовал приложение в Google Play, мне на почту прислали письмо со списком рекламных провайдеров:
- adaway.org/hosts.txt
- pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
- hosts-file.net/ad_servers.txt
Отмечу, что пока в проекте используются первые две ссылки, что в сумме ~2600 ссылок и этого хватает, чтобы не видеть рекламу на 95% сайтов.
В версия Knox Standard SDK 5.6 все 2600 ссылок блокируются нормально. Но на более старых 2600 ссылок смартфон принимать отказывается, стабильно блокируется только 1500.
И вот возникает задачка, какие 1500 из 2600 ссылок выбрать? Как отсортировать список по популярности? Я начал думать и гуглить.
Довольно быстро нашел, что Alexa Rank отдает файлом в .csv 1 млн самых посещаемых доменов в мире за последний месяц в порядке популярности. Я предположил, что если домен содержится в этом списке и одновременно домен (или его поддомен) содержится в списке провайдеров рекламы, то значит провайдер рекламы популярный и часто встречается на различных сайтах.
С помощью данной гипотезы получилось отсортировать список из 2700 ссылок. Те, домены, которые не встречались в списке 1М я добавлял в конец.
В итоге, тех что встречаются списке получилось ~1300, что вполне подходит под наши ограничения.
На самом деле, я пробовал провернуть тоже самое не только с двумя, но и с тремя списками провайдеров рекламы, что на выходе дает больше 10 тысяч ссылок, и быстрая прокрутка списка показывает, что там много не релеватных сайтов (например, индиийских или китайских). Поэтому пока было решено оставить первые два провайдера.
Хотелось бы в будущем сделать возможность блокировать рекламных провайдеров по языкам (как это делается в расширении AdBlockPlus, например).
Первый блин комом
Где-то в марте, я за неделю сделал прототип, почти вручную собрал провайдеров рекламы (на тот момент около 200). Просто заходил на сайты, на которые обычно хожу и вылавливал рекламные ссылки. Потестил немного, выложил в Google Play, написал на 4pda.ru и начал рассказывать про него всем знакомым.
Через две недели было около 300 скачиваний и 60 активных (в тот момент поддерживался только Marshmallow). Примерно в тоже время мне прислали ссылки с провайдерами рекламы и я на радостях обновил приложение.
А утром пришло письмо от Google, что приложение заблокировано. Видимо не нужно было писать в обновлении большими буквами: «Блокировщик рекламы и трекеров. Блокирует не только в стандартном браузере, а во всех приложениях». Если перефразировать с юмором, то в письме от Google было сказано: «Ты хороший разработчик, но ставишь весь наш бизнес под угрозу, поэтому мы выпилили твое приложение.» Вот так и началась эта история.
Чтобы проект не зависел от Google Play и при этом выжил, решил сделать сайт (где можно скачать приложение напрямую), сделать проект открытым и написать об этом на Хабр.
Что в итоге?
В итоге получили мобильный интернет без рекламы, ускоренную загрузку страниц и бонусом экономию трафика.
Я пользуюсь двумя смартфонами Galaxy S7 и OnePlus 2 и возвращаясь в Chrome или YouTube на OnePlus удивляюсь как, оказывается, мешает и много места занимает реклама на мобильном дисплее.
Вот несколько примеров с работающим блокировщиком и без него. Тест проводился на одинковых смартфонах с выключенным и включенным блокировщиком. Я только вбивал домен в браузер и ждал пока загрузиться страница.
habr.ru
theverge.com
rbc.ru
adme.ru
Заключение
Большим плюсом решения является простота и удобство для пользователя, но и минусом — платформозависимость.
Благодарности
За то, что поделились ссылками на провайдеров рекламы, выражаю благодарность semax95.
За подготовку сайта большое спасибо yelnar.
Проект на GitHub
» Создал организацию, в ней содержится три репозитория.
» Само приложение под Android
» Сортировщик рекламных ссылок по популярности
» Сайт
» Ссылка на сайт проекта
» Ссылка на Google Play (до тех пор пока не заблокируют)
Комментарии (104)
fizique
02.11.2016 09:17+15«Ты хороший разработчик, но ставишь весь наш бизнес под угрозу, поэтому мы выпилили твою статью.»
(с) Отдел рекламы ХарбрахабрDreyk
02.11.2016 12:50когда уже отдел рекламы поймет, что люди, которые пользуются баннерорезками все равно не являются их ЦА и не будут кликать на рекламу, так что прибыли они не принесут даже возможной
kolipass
04.11.2016 08:47А если это реклама конференции, хакатона или книги по теме и скилам пользователя? Вот прямо сейчас я кликнул на банер хакатона сбертеха, а если бы меня не просили включить рекламу, то и не увидел бы его.
kolu4iy
02.11.2016 09:32Да… AdAway из Google Play они тоже выпилили, хоть он рута и требует. Слава богу, xda-developers еще есть. Но лично мне кажется, что AdAway — это первое приложение, которое у меня установлено не из маркета. До того — ставил бесплатное или покупал… Так сказать, первый шаг к кривой дорожке.
raiym
02.11.2016 09:43Да. Хотя гугл не блокирует приложения, которые блокируют рекламу с стандартном браузере самсунг.
Для многих рут это ограничение.
Например, если рутануть самсунг, то даже после перепрошивки можно будет узнать, что устройство было рутовано
gresolio
03.11.2016 01:15Тернистый путь… Что же тут поделаешь, это вынужденная необходимость.
Рекомендую присмотреться к Xposed — превосходный инструмент для тонкой настройки ведроида на низком уровне :) Официальный сайт & исходники. Позволяет на лету патчить в памяти приложения, без изменений apk файлов. Для этого используются модули, на данный момент уже создано множество полезных на любой вкус и цвет. Чем то напоминает старенький RomPatcher+ под Symbian, кто помнит такое — тот поймёт :)
shurupkirov
02.11.2016 09:41+1в теме блокировщиков рекламы Директ автоматом предлагает блокировщик рекламы)
https://yadi.sk/i/5Hf6IvEqxxVQdnavion
02.11.2016 12:59Этот тоже работает только с Оперой и браузером от Самсунга.
shurupkirov
02.11.2016 14:05+1Да я к тому, что не вижу смысла Директу давать разрешение на рекламу товара, который убивает Директ
gamburger
02.11.2016 10:22+1Проблема с запуском на Samsung Galaxy S7.
При активации лицензии Knox ошибка: Knox license activation failed
Kastrulya0001
02.11.2016 12:02Когда-то из-за этого я бросил снимать видео уроки. 1М просмотров и 10$. Не готов понять людей, которые смотрели мои уроки и не выдержали просмотра рекламной вставки на 20-30 секунд.
dmitriylyalyuev
02.11.2016 12:50+5Я готов терпеть рекламную вставку в 5-10 сек. Не больше.
А если ролик длиной в 30 сек и реклама на 30 сек — то в сад такие ролики вместе с рекламой!
Dolios
02.11.2016 13:06+3Могу рассказать про себя, хоть я и не смотрел ваши видеоуроки.
1. Меня раздражает реклама прокладок и прочей ненужной мне херни типа рекламы не моего опсоса. Я не помню ни одного случая, когда бы я почерпнул из рекламы что-то полезное.
2. Рекламные ролики натурально орут так, что подскакиваешь. Слушаешь какую-нибудь лекцию и тут: «ААА, РАНЬШЕ Я ПЛАТИЛ, А ТЕПЕРЬ НЕТ ПЛАЧУ!!!!!!!!!!!!!!!!!».
Я понимаю, что это не ваша вина, но, простите, меня это мало касается. Я готов платить за то, чтобы рекламы не было и делаю это постоянно. Например, я всегда покупаю приложения, а не использую «бесплатные» с рекламой. Если такой возможности мне не предоставлено, я просто вырежу рекламу.
doz10us
02.11.2016 13:17+2Личное мнение: реклама в большинстве случаев вырывает из контекста просмотра; либо не актуальна и вне контекста интересов (за счёт использования расширений приватности) либо рекламирует любое слово, вбитое в поисковик; зачастую неприемлема по внешнему виду (анимированные баннеры) либо содержанию.
В случае с YouTube ситуация ещё хуже, т.к. когда у него происходит крупная закупка рекламы брендом, несколько дней практически только она во вставках и отображается, раз за разом.
Далее, агрессивно рекламирующиеся товары вызывают сомнения в их качествах: хороший товар говорит сам за себя.
Про трафик и и вообще экономию ресурса уже говорили.
По совокупности указанных обстоятельств в абсолютном большинстве случаев я не кликну по баннеру и не желаю его смотреть.
Предпочитаю приобретать версии ПО без рекламы, где это возможно, либо аналогичные подписки на по-настоящему полезные сайты. XDA, например.
springimport
02.11.2016 15:56-1Ждите пока YouTubeRed заработает по всему миру.
Реклама в таком виде не нужна.
bromzh
02.11.2016 12:04Samsung galaxy s5 mini. Чего-то не включается: жму на turn on, секунду думает, но потом снова возвращается в состояние disabled.
Но всё равно, спасибо за приложение!
raiym
02.11.2016 12:11Если, вас не трудно скажите пожалуйста какая версия Knox и версия Android.
Я попробую исправитьdmalishev
02.11.2016 12:57Тоже не работает на Samsung galaxy s5 mini.
Android 5.1.1
Knox 2.4.1
Если получится исправить — заранее спасибо!raiym
02.11.2016 12:58Простите я ввел в заблуждение, нужна именно версия Knox Standard SDK на той же самой странице. Посмотрите пожалуйста еще раз
Спасибо, как проблема будет исправлена отпишусь.
dmalishev
02.11.2016 13:02Спасибо за быстрый ответ!
Standard SDK 5.4.1
и на всякий случай
Premium SDK 2.4.1
Customization SDK 2.5.0
Container 2.4.1
CEP 2.0.1
Enerprise Billing 1.2.0
OTP 1.1.1
SE for Android 2.3.0
SSO 2.4.1
TIMA 3.0
VPN 2.2.2raiym
02.11.2016 13:03Спасибо
bromzh
02.11.2016 21:22У меня всё так же. А модель самого телефона — SM-G800F.
raiym
02.11.2016 21:36Что-то J1 и S5 mini подводят
Отпишусь обязательно, если исправлю или даже не исправлю в течение нескольких дней
raiym
04.11.2016 18:02Проблема решена, проверьте пожалуйста.
Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.dmalishev
05.11.2016 12:33Спасибо за обновление! Пока не заработало, все так-же пытается включиться, секунду думает и переключается обратно в disabled.
raiym
04.11.2016 18:02Проблема решена, проверьте пожалуйста.
Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.
MikalaiR
02.11.2016 14:23Такая же проблема, Samsung SM-J120F. Knox Standart SDK 5.5.1
raiym
04.11.2016 18:03Проблема решена, проверьте пожалуйста.
Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.MikalaiR
04.11.2016 19:23Спасибо, заработало, но есть одно но. После включения перестает работать Play Market (и возможно что-нибудь еще), скорее всего какой-то из серверов есть в списках. Сделайте, пожалуйста, возможность загружать свои списки хостов.
raiym
04.11.2016 23:32Да, заметил такую проблему.
Надеюсь исправлю с будущим обновлением.
По поводу кастомных списков, подумаю, спасибо. Если время будет =(
undefined7
02.11.2016 21:10Аналогично, такой же ответ выдаёт, буду благодарен за исправление данной проблемы
raiym
04.11.2016 18:03Проблема решена, проверьте пожалуйста.
Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.undefined7
04.11.2016 21:53Обновил только что до версии 1,5, но к сожалению — так и не включается, та же самая проблема, content blocker is disabled
tenbits
02.11.2016 13:39Отлично, в браузере стало действительно легче "дышать". А реклама в youtube приложении блокируется? А то у меня без рекламы только youtube в браузере. Но и это уже шикарно)
И такой вопрос, по теме Knox и фаервола, или возможно с их API как-то блокировать отдельные приложения для доступа в интернет по мобильной сети? А то в этой области такая же ситуация, или рут нужен, или приложения создают vpn и на том уровне блокируют, но работает это ужасно не стабильно.
raiym
02.11.2016 13:44Да, должно блокироваться и в приложении. Но иногда проскакивает видимо (а может YouTube как-нибудь адаптируется? пока не знаю)
Да, можно. Можно задавать имя пакета приложения и запрещать только ему доступ к интернету. В случае с Adhell я передал * (то есть все приложения)Kondra007
02.11.2016 15:01С ютубом ситуация интересная. Оставлю здесь вопрос-ответ со страницы модуля Xposed AdAway:
Q: Why this application "may" requires an update for each official YouTube App update.
A: Because the YouTube application sources are proguarded, which means the generated classes names (by Proguard) are changing for each release, this should happen only if a clean proguard (producing a new classes map) is done, that's why we need to update the classes names on YouTube AdAway each time.
hdfan2
02.11.2016 14:29Судя по описанию, этот Knox весьма злая штука. В нехороших руках может наделать много бед. Или это всё и без неё доступно? Прошу Android-разработчиков пояснить.
Handy
02.11.2016 16:29В нехороших руках вполне можно наделать много бед, тем более когда приложение использует Knox и девайс админ.
Без использования этого есть и другие средства для злоумышленников, которые как путем обмана, так и путем использования дырок в самой системе могут сделать что угодно. Однако, стоит отдать должное разработчикам, дырки закрываются, и, например Google постоянно выпускает заплатки для своих девайсов.hdfan2
03.11.2016 06:15Дырки и обман — это одно. А вот этот Knox, как я понял, совсем другое, ибо это вполне легально и не использует уязвимости Андроида. Мне просто непонятно, в чём тогда весь смысл андроидовской защиты, если она так легко обходится безо всякого рута. Я-то думал, что возможности малвари, не использующей уязвимости, достаточно ограничены, а тут на тебе, чуть ли не полный доступ.
molnij
03.11.2016 09:27Насколько я понял, вы должны лично согласиться с тем, что выдаете права программе. По аналогии с виндовым UAC'ом. Не сказать, что панацея, но всё же
Handy
03.11.2016 15:14С одной стороны molnij прав, если устройство не рутовано, то для легальных способов навредить нужно выдать права приложению, т.е. например сделать его девайс админом, Knox же (либо другие аналогичные приложения от других производителей) устанавливается как системное приложение производителем, а системное приложение по сути имеет рут, т.е. гораздо больше прав, чем у самого пользователя. И таким образом, если вы даете разрешение приложению на девайс админ, а оно в свою очередь работает с Knox API, то получается что у приложения есть «полурут» (в рамках функций Knox API).
lostinfuture
02.11.2016 15:21Работает, но на мой взгляд не так эффективно как AdAway. Можно как то синхронизировать с их базой URL?
raiym
02.11.2016 15:40В Adhell используется список AdAway
На более старых устройствах блокируется только 1500 урлов.
Если найду способ блокировать все и на старых, то выпущу обновлениеwebgate
03.11.2016 13:12А на новых устройствах есть лимит? Т.е. реальна ли возможность добавления сторонних фильтров как в Ublock Origin, например:
Easylist — более 68к правил,
Adguard(RU) — >14kraiym
03.11.2016 13:13Есть лимит, не могу сказать точно какой, но уже 20К не берет на устройстве которое я тестил
KentSilver
03.11.2016 11:11к автору — добавьте, пожалуйста, поддержку и других девайсов на андройд, в частности при установке на нексус 5 — выдается соотвещение о том, что устройство не поддерживается.
dmitriylyalyuev
Свой ДНС сервер для меня решает эту проблему на всех устройствах.
raiym
для обычного пользователя довольно сложно, мне кажется)
dmitriylyalyuev
Да, немного сложнее. Но я сделал следующее:
1. Поднял PowerDNS с бэком на MySQL.
2. Загружаю списки доменов (если нужны линки, то могу поделиться).
3. Парсер создает sql файл
4. Заливаю в MySQL весь список.
На обновление списка уходит минут 5.
Вот только что обновил:
```shell
100% done
474608 domains were fully parsed, containing 1898439 records
```
Стоит учесть, что тут записи не только типа A, а также SOA. Но все равно много выходит.
Процентов 90% рекламы отрезано.
raiym
Очень много доменов блокируется) А где вы берете ссылки?
dmitriylyalyuev
Я не жадный ;)
http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&startdate[day]=&startdate[month]=&startdate[year]=
http://winhelp2002.mvps.org/hosts.txt
http://malware-domains.com/files/domains.zip
http://adaway.org/hosts.txt
http://someonewhocares.org/hosts/hosts
raiym
Спасибо!
dmitriylyalyuev
В самом начале в качестве DNS был Bind9. Он кушал 700 мегов памяти с таким количеством доменов. Мне это сильно не нравилось и я поднял PowerDNS с конфигами Bin9 в качестве бэкэнда. Стало получше, но стартовало оно ну очень уж долго при обновлении списка доменов.
В результате пришел к PowerDNS + MySQL. При чем дамп для MySQL все так же генерится из конфигов Bind9 :)
Т.е. сначала формирую конфиги для Bind9, потом конверчу их в дамп для MySQL и заливаю в базу.
Теперь рекламы нет даже в AuraHD (приставка для телика с ex.ua, fs.to и IPTV). Собственно ради нее все и затевалось. Достало смотреть рекламу по каждому чиху. :)
Такая вот небольшая история.
sashabeep
А нет ли у вас возможности запилить докер со всем этим добром?
dmitriylyalyuev
В docker и крутится у меня все это. Кроме конфигов. Они отдельно лежат и монтируются в контейнер.
sashabeep
Докер — на гитхаб и в массы!
dmitriylyalyuev
Надо привести в человеческий вид, а то там «каша» сейчас.
Может сделаю это все, как время будет.
dmitriylyalyuev
Накарябал свои кривые мысли кривым почерком — https://habrahabr.ru/post/314260/
Может кому сгодиться мое наколенное поделие. ;)
GebekovAS
Благодарен за ссылки. Сервер поднимать не стал, написал простенькую утилиту, которая парсит из списка ресурсов (ваши ссылки) все адреса и дополняет ими локальный hosts файл. Запустил утилиту на всех машинах (дома и на работе). Первое, что заметил, в скайпе реклама пропала=) Спасибо!
dmitriylyalyuev
Всегда пожалуйста.
Сейчас допиливаю docker образ с dnsmasq. Там уже не нужен будет Мускул. Достаточно запустить контейнер и все. :)
GebekovAS
Это меняет дело. Жду с нетерпением.
dmitriylyalyuev
https://github.com/DmitriyLyalyuev/dnsmasq-no-ads
Стоит писать еще одну статью на Хабр? :)
GebekovAS
Мне хватило Readme.md, но если в процессе написания образа вы открыли для себя что то новое, удивительное и необъятное в одном лишь readme.md, чего не найти на хабре, я бы с удовольствием прочитал=) Спасибо за докер!
dmitriylyalyuev
Если хватило только Readme — значит все получилось не так уж плохо. ;)
Всегда рад если кому-то пригодиться мое поделие. :)
Dreyk
отличное решение, надо себе такое запилить. единственная вещь, которая меня интересует: есть сайты, на которых я выключаю адблок, как быть тут?
dmitriylyalyuev
White listing предусмотрен.
Сейчас допили до более-менее вменяемого состояния. Буду готовить заметку на Хабр. ;)
raiym
(ой, это не мне)
Спасибо)
Пока такой возможности нет(
Dreyk
ну вам тоже =) я понял)
dmitriylyalyuev
Выложил в открытый доступ — https://habrahabr.ru/post/314260/ ;)
raiym
Круто!
dmitriylyalyuev
Допиливаю контейнер с DNSMasq и без Мускула. Скоро на ГитХабе. :)
praeivis
Кому ДНС сервер затруднительно попробуйте Pi-Hole.
PlatinumThinker
https://pi-hole.net/
Хотя конечно установщик кривоватый