pil*_*lif 9 dns resolution osx-lion macos
(这个问题在 10.7.1 更新中消失了 - /etc/hosts 现在对我来说一如既往地工作)
我已经将我的 Mac 更新为 Lion,现在我注意到 /etc/hosts 是最后查询的,即使在 DNS 之后也是如此。这很烦人,因为我有很多用于开发的主机名。
名称解析顺序在哪里配置?我可以使用 dscacheutil 检查它,所以这是雪豹机器告诉我的:
pilif@tali ~ % dscacheutil -configuration
DirectoryService Cache search policy:
/Local/Default
/BSD/local
Settings:
AAAA Queries - Disabled (link-local IPv6 addresses)
Default TTL - 3600
Policy Flags - 0
Run Code Online (Sandbox Code Playgroud)
这是狮子告诉我的
pilif@kosmos ~ % dscacheutil -configuration
DirectoryService Cache search policy:
/Local/Default
Unable to get details from the cache node
Unable to get cache configuration information
Run Code Online (Sandbox Code Playgroud)
除了这两个错误之外,我认为 /BSD/Local 是让它更早读取 /etc/hosts 的原因。
有没有人知道这个“缓存搜索策略”的存储位置以及如何将其更改回来?
我知道我可以使用 dcsl 创建主机名条目,但我真的很想保留我在各种机器上使用的 /etc/hosts。
更新:解析顺序显然可以在目录实用程序中配置。不幸的是,此安装 Directroy Utility 不再在“服务”选项卡中列出 BSD 文件。
这个功能从Lion 消失了吗?或者这个安装是软管吗?
我解决了这个问题(因此作为答案发布而不是修改问题):
BSD 文件确实没有在目录实用程序中列出,也没有在 dscacheutil 中列出,但至少 /etc/hosts 仍然被读取,但存在一个问题,即似乎不再支持每个 IP 地址的多个主机名或至少,它们不能在 ATM 上正常工作。
当你的旧 /etc/hosts 看起来像
127.0.0.1 localhost foo foobar
Run Code Online (Sandbox Code Playgroud)
这将导致大约 10 秒的等待时间来解析任何这些主机名。
但是如果你使用
127.0.0.1 localhost
127.0.0.1 foo
127.0.0.1 foobar
Run Code Online (Sandbox Code Playgroud)
解决将是即时的。
RedGrittyBrick 的回答也是有效的,但我特别想继续使用主机文件而不是修改本地目录,因为它在我的各种开发机器之间共享。
也回答我的其余问题(现在我很清楚):
正如我希望您知道的那样,处理此问题的传统 Unix 方法hostresorder是order在/etc/resolv.conf. OS X 确实(或可以)读取和使用这些文件,但 OS X 有一个通过网络首选项管理的单独系统,我相信该系统会在启动时覆盖这些配置文件。
http://hints.macworld.com/article.php?story=20070223050607406
http://docs.info.apple.com/article.html?path=ServerAdmin/10.6/en/od4939886e.html
https://discussions.apple.com/thread/2493759
http://blog.daemon.com.au/go/blog-post/managing-the-host-file-on-leopard
这并不能回答您的问题,但信息和链接可能有助于找到问题。如果我能把它压缩到合适的程度,我会把它放在评论中。
| 归档时间: |
|
| 查看次数: |
17352 次 |
| 最近记录: |