如何防止dnsmasq将我的域名附加到无效的域请求?

时间:2008-08-08 13:01:49

标签: dns dnsmasq

我使用dnsmasq解析家庭网络上的DNS查询。不幸的是,如果域名未知,它会将我自己的域名附加到请求中,这意味着我总是最终在浏览器中查看我自己的站点。

例如,如果我在浏览器中输入http://dlksfhoiahdsfiuhsdf.com,我最终会使用该网址查看自己的网站。如果我尝试这样的话:

host dlksfhoiahdsfiuhsdf.com

而不是预期的:

Host dlksfhoiahdsfiuhsdf.com not found: 3(NXDOMAIN)

我明白了:

dlksfhoiahdsfiuhsdf.com.mydomainname.com has address W.X.Y.Z.

显然,dnsmasq正在将我的域名附加到不可能的名称请求以解决它们,但我宁愿看到未找到的错误。

我尝试过使用 expand-hosts 配置设置,但无济于事。还有什么我可以尝试的吗?

5 个答案:

答案 0 :(得分:3)

可能不是dnsmasq这样做,而是你当地的解析器库。如果您使用unixish,请尝试从/etc/resolv.conf中删除“搜索”或“域”行

答案 1 :(得分:3)

尝试使用尾随点查询以显式设置root:

host dlksfhoiahdsfiuhsdf.com.

答案 2 :(得分:1)

可能还有其他原因,但最明显的原因是/etc/resolv.conf的配置,以及大多数DNS客户端都喜欢对错误非常简洁的事实。

benc$ host thing.one
Host thing.one not found: 3(NXDOMAIN)

(好吧,我用于DNS配置的是什么?)

benc$ cat /etc/resolv.conf 
nameserver 192.168.1.1

(编辑...)

benc$ cat /etc/resolv.conf 
search test.com
nameserver 192.168.1.1
benc$ host thing.one
thing.one.test.com has address 64.214.163.132

没有费心去做数据包跟踪,可能的行为是它返回它尝试的最后一个FQDN的错误。

答案 3 :(得分:1)

你有一个通配符域吗?

dnsmasq将附加名称转发到外部dns服务器并获取通配符。

您可以使用--server = / yourinternaldomainhere /来确保不会转发您的内部域名查找。

在这种情况下,

语法将是:

- 服务器= /域/ iptoforwardto

并且在这种情况下,将iptoforwardto区域留空,因为您不希望它在任何地方转发。

答案 4 :(得分:0)

我尝试从我自己的配置中删除 domain-needed 来复制您的问题并且它不会产生此行为。这是我能找到的唯一可能接近相关的其他参数。

您的主机文件是什么样的?也许有些奇怪的事情让它认为所有奇怪的域都是你的网络本地的?