dnsmasq adblocking只能在服务器端工作

我试图通过dnsmasq创build一个服务器端的adblocking机制,但是我只在服务器本身获得结果,而不是连接到本地networking的计算机。

首先,我的路由器是默认的DNS服务器,所以我必须设置所有设备来使用dnsmasq服务器作为主DNS。 当我尝试访问我的一个自托pipe网站时,我可以检查它的工作原理:如果我可以在本地访问它们,那么dnsmasq dns就可以工作。 在这方面,一切都好。

然后是广告拦截部分。 我通过在我的服务器和我的主计算机上input这个命令来检查阻塞是否工作:

# 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的configuration目录:

    CONF-DIR =的/ usr /本地/ etc / dnsmasq.d

  • 把文件dnsmasq.adlist.conf放到那里,由脚本从站点获取一个广告服务器列表,并在dnsmasq可读条目中编译它们。

因此,为了简短起见,dnsmasq阻止的域从服务器内正确redirect,但不能从其他设备redirect。 这就像dnsmasq无法播放新添加的域列表。

我可以提供任何你喜欢的信息来帮助我解决这个问题。 它也可能指出在此adblocking实验之前的configuration错误。 无论如何,我希望这是容易的,以确定…

我的服务器在FreeBSD 9.3上

这个问题可能发生,如果有caching您的请求,而不是刷新您的DNScaching。

通常,操作系统cachingDNS条目,这使DNS中的更改不能直接看到。

对于Windows,您可以通过类似的方式清除您的DNScaching。

 ipconfig /flushdns 

我没有在一段时间内使用nslookup,但没有这样的结果意味着名称parsing是针对80.67.0.2而不是192.168.1.51(我认为是你的路由器)?

我猜不知道你的电脑没有使用你的dnsmasq实例进行名称parsing。