Я пытаюсь создать механизм блокировки рекламы на стороне сервера через dnsmasq, но получаю результаты только на самом сервере, а не на компьютерах, подключенных к моей локальной сети.
Прежде всего, мой маршрутизатор является DNS-сервером по умолчанию, поэтому мне нужно настроить все свои устройства на использование сервера dnsmasq в качестве основного DNS. Я могу проверить, что это работает, когда я пытаюсь получить доступ к одному из моих собственных веб-сайтов: если я могу получить к ним доступ локально, то dnsmasq dns работает. В этом плане все в порядке.
Затем блокировка рекламы. Я проверяю, работает ли блокировка, вводя эту команду как на моем сервере, так и на моем основном компьютере:
# nslookup doubleclick.net
На сервере получаю:
Server: 192.168.1.51
Address: 192.168.1.51#53
Name: doubleclick.net
Address: 192.168.1.51
Так что там работает.
На моем компьютере я получаю:
Server: 80.67.0.2
Address: 80.67.0.2#53
Non-authoritative answer:
Name: doubleclick.net
Address: 70.32.146.212
Так вот это не ...
Моя настройка такова:
Я настраиваю конфигурационный каталог dnsmasq:
conf-dir = / usr / local / etc / dnsmasq.d
Поместите туда файл dnsmasq.adlist.conf, заполненный сценарием, который извлекает список рекламных серверов с сайта и компилирует их в записи, доступные для чтения dnsmasq.
Короче говоря, домены, заблокированные dnsmasq, правильно перенаправляются изнутри сервера, но не с других устройств. Это похоже на то, что dnsmasq не может транслировать недавно добавленный список доменов.
Я могу предоставить любую информацию, которая поможет мне решить эту проблему. Это также может указывать на неправильную конфигурацию до этого эксперимента с блокировкой рекламы. В любом случае, я надеюсь, что это легко докопаться ...
Мой сервер на FreeBSD 9.3
Я не использовал nslookup какое-то время, но разве этот результат не означает, что разрешение имен было выполнено для 80.67.0.2, а не 192.168.1.51 (который, как я полагаю, является вашим маршрутизатором)?
Я предполагаю, что каким-то образом ваш компьютер не использует ваш экземпляр dnsmasq для разрешения имен.
Проблема может возникнуть, если что-то кэширует ваш запрос, а вы не очищаете кеш DNS.
Часто ОС кэширует записи DNS, в результате чего изменения в DNS не видны напрямую.
Для Windows, например. вы можете очистить кеш DNS с помощью чего-то вроде.
ipconfig /flushdns