在 OS-X Lion iMac 上启用 BIND (named) 后,DNS 查找仅在使用 BIND 检查后才查看 /etc/hosts,因此我无法使用 hosts 文件覆盖地址。据我所知(使用 dtruss 和沙盒日志),BIND 似乎甚至无法访问 /etc/hosts(或 /etc/resolv.conf),因此一定是其他 OS-X DNS 机制在执行此操作。
我能以某种方式告诉 BIND 查阅 /etc/hosts 吗?
感谢您的时间和帮助
威廉
附言:使用 BIND 9.7.3-P3 构建,其中 '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking' '--prefix=/usr' '--sysconfdir=/private/etc' '--localstatedir=/private/var' '--enable-atomic=no' '--with-openssl=yes' '--with-gssapi=yes' '--enable-symtable=none' 'CFLAGS=-arch x86_64 -arch i386 -g -Os -pipe -gdwarf-2 -D__APPLE_USE_RFC_2292' 'LDFLAGS=-arch x86_64 -arch i386 ' 'CXXFLAGS=-arch x86_64 -arch i386 -g -Os -管道 '
答案1
BIND 不查询 /etc/hosts。在 Unix/Linux 中,这由名称服务交换机 (nsswitch) 处理,它通常查询主机,然后查询 DNS。
在 Mac OS X 中,这由目录服务处理。
如果遇到问题,您可能需要清除 DS 缓存。检查man
页面中的DirectoryService
和dscacheutil
。
答案2
实际上,听起来您实际上想问的是如何让 Lion 的解析器首先查询 /etc/hosts,然后查询它配置的任何名称服务器。您可能会发现这很有用:
https://stackoverflow.com/questions/6841421/mac-osx-lion-dns-lookup-order