我使用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 和域配置设置,但无济于事。还有什么我可以尝试的吗?
答案 0 :(得分:3)
尝试使用尾随点查询以显式设置root:
host dlksfhoiahdsfiuhsdf.com.
答案 1 :(得分:3)
可能不是dnsmasq这样做,而是你当地的解析器库。如果您使用unixish,请尝试从/etc/resolv.conf中删除“搜索”或“域”行
答案 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 来复制您的问题并且它不会产生此行为。这是我能找到的唯一可能接近相关的其他参数。
您的主机文件是什么样的?也许有些奇怪的事情让它认为所有奇怪的域都是你的网络本地的?