![Snow Leopard 不喜欢 dnsmasq?](https://linux22.com/image/1217627/Snow%20Leopard%20%E4%B8%8D%E5%96%9C%E6%AC%A2%20dnsmasq%EF%BC%9F.png)
我的 Macbook 运行 Snow Leopard 无法解析本地网络(具有本地 DNS 服务器)上的某些主机。正在运行nslookup
并dig
正常运行(它们从预期的服务器获取预期的地址)。正在运行ping <IP address>
正常运行(我收到了数据包), 但 ping home.local
没有(它返回“未知主机”)home.local
是我的家庭网络上的服务器的名称(运行 Debian 和dnsmasq
)。
我的 Windows 笔记本电脑可以home.local
通过名称 ping 通,另一台 Macbook(运行 Leopard)也可以。我的 Snow Leopard 笔记本电脑可以通过名称 ping 通我的另一台 Macbook,但无法ping 通其他主机
家庭 DNS 服务器是运行的 Debian (etch) 盒dnsmasq
,路由器上的 DHCP 服务器配置为将 Debian 盒的 IP 地址用作 DNS 服务器。所有笔记本电脑都选择了正确的网络设置(ipaddress、默认 gw、dns 服务器),我可以从我的 Snow Leopard Macbook 毫无困难地访问公共互联网上的主机(即 DNS 查询转到dnsmasq
我的 Debian 盒并转发到我的 ISP 的 DNS 服务器)。我无法通过名称 ping 通的唯一服务器是我本地网络上的服务器。
答案1
我在家里的路由器上通过 Tomato 使用 dnsmasq,并且没有遇到任何与 Snow Leopard 相关的问题。
你如何知道来自 Mac 的查询正在通过你的服务器?您可以在日志中看到请求吗?如果可以,本地网络上的主机的请求是什么样的?它们是否会显示在日志中?
查看“网络偏好设置”、“高级”、“DNS”选项卡。确保没有可编辑(黑色)条目。列出的 DNS 服务器应由您的 DHCP 服务器提供,包括您的本地服务器。
dscacheutil
还可以尝试通过而不是进行测试nslookup
,这将确保您看到与计算机上其他应用程序相同的结果。您可以执行如下查询:
dscacheutil -q host -a name <hostname>
另外尝试刷新本地 DNS 缓存:
dscacheutil -flushcache
答案2
鉴于这些:
- 你正在运行 Snow Leopard,并使用 etch 的 dnsmasq,但它不起作用
- SidneySM 运行的是 Snow Leopard,并使用了 Tomato 的 dnsmasq,它
我怀疑你用的是一个旧版本的 dnsmasq,它与 Snow Leopard 不兼容。
- 目前 Tomato (v1.25) 搭载的是 dnsmasq 2.47(通过检查番茄源)
- 当前的蚀刻dnsmasq似乎是 2.35-1+etch4
- 最新的etch dnsmasq 的反向移植似乎是 2.45-1
- 最新的 dnsmasq 来自项目主页似乎是 2.50
- (当前的edgy (ubuntu) dnsmasq似乎是 2.33(如果你正在使用的话)
检查你的 etch 服务器的 dnsmasq 版本:
$ dpkg -l | grep dnsmasq
如果它比当前 etch 包 2.35-1+etch4 旧,请升级到最新版本,重新启动一切并重试:
$ sudo apt-get install dnsmasq
如果当前软件包不起作用,请安装来自 backports 的版本。您可能需要将 backports 存储库添加到 /etc/apt/sources.list 文件中才能访问它们。或者下载 backports .deb 并直接安装软件包:
$ sudo dpkg -i path/to/downloaded/dnsmasq-backports-package.deb
如果 backports 包不起作用,你可以自己抓取最新的 dnsmasq源代码并自行编译。如果您运行的是 Ubuntu 的 Edgy 版本,则可能需要执行此操作,因为 Edgy 的存储库已被删除。