我希望能够通过简单名称“pos”访问计算机 192.168.0.3。而不是“pos.com”或其他名称。使用下面的设置,我可以 ping dev.pos,但不能 ping pos。我必须 ping mydomain.pos 才能获得回复。
在 Tomato 中的“基本”>“识别”中,我将域名设置为mydomain.
(带句点)
local-ttl=1
bogus-priv
domain=mydomain
expand-hosts
local=/pos/
address=/pos/192.168.0.3
可能是什么问题呢?
更新:当我从番茄路由器的“ping 工具”ping 时,我在 ping“pos”时得到了正确的响应。只是没有从与其连接的任何计算机得到响应。
更新 0.5:运行 nslookup 并输入pos.
(带句点)有效;没有则不行。
更新 2:我注意到的另一个问题是,访问这些 DNS 条目时,我的本地 DNS 缓存不会更新。因此,要进行测试:
cmd
ipconfig /flushdns
ping google.ca
ipconfig /displaydns
' Notice that there are entries
ipconfig /flushdns
ping dev.pos
ipconfig /displaydns
' Notice that there aren't any entries for dev.pos
进一步研究后我发现此链接。但是更改我的配置以匹配并没有任何帮助。
进入我的以太网适配器设置并将“按顺序将这些 DNS 后缀附加到“。””解决了这个问题。不过这感觉很麻烦。我现在必须在所有连接的计算机上更改此设置,任何未更改此设置的计算机都必须使用“pos”。
答案1
对于那些仍在努力解决这个问题的人:我有同样的问题,并且我在 Tomato 中解决了这个问题(经过大量的反复试验),通过在 DHCP/DNS -> Dnsmasq 自定义配置中添加以下内容(其中“计算机”是工作站; “dom”是域,“11.22.33.44”是工作站的 IP):
local-ttl=1
expand-hosts
domain=dom
address=/computer.dom/11.22.33.44
路由器的域(在标识部分)可能应该设置为相同(在本例中为:dom)但不确定。
现在“ping 计算机”从 Dnsmasq 获得了正确的答复。
答案2
dnsmasq
不会自动将域搜索列表推送到使用 DHCP 获取 IP 地址的主机。需要为此设置 DHCP 参数。您还应该将路由器的地址推送为 DNS 服务器。查看 dnsmasq 文档以了解 DHCP 可以发送的一些数据。
- DHCP 选项 6 是名称服务器列表
- DHCP 选项 119 是搜索列表的域名列表
编辑:如果您希望能够仅通过服务器名称来引用服务器,则应在 中定义一个域dnsmasq
。(不要使用,local
因为这会与 zeroconf 冲突。)某些路由器使用lan
,并且localnet
是传统名称。将此域设置为搜索列表中的第一个域。
答案3
我不能确切地说出为什么,但是使用address=/pos.mydomain/192.168.0.3
而不是address=/pos/192.168.0.3
有效。
答案4
我的每台机器都有一个它们报告的主机名,或者您可以将主机名与中的静态 DHCP 条目一起设置Basic -> Static DHCP/ARP/IPT
。
然后我在该部分中设置了域Basic -> Identification
。
即使没有 FQDN,路由器也会通过主机名来解析网络上机器的 DNS。
无需额外的手动配置或脚本。