发现替代mDNSResponder参数的替代方法?


13

这是对该问题的直接跟进。在Yosemite之前,我将“ -AlwaysAppendSearchDomains”参数添加到mDNSResponder plist文件中,以便所有本地解析程序查找都添加了搜索域,而不管标签中是否有句点要查找。例如,无论我尝试将SSH转换为主机名foo.bar还是foo,都应尝试baz.com的搜索域,不仅是默认情况,而且不仅是后一种情况。

现在,看起来mDNSResponder已经消失,取而代之的是发现的。我找不到类似的选项来使它始终附加搜索域。有什么建议吗?我宁愿不走使用非默认本地解析器的路线,但我认为它是一种选择。现在,我只输入较长的FQDN,但实际上我不愿意。

谢谢,皮特


我以前曾尝试启用禁用的mDNSResponder,但是自DP8以来,这似乎一无所有:(我现在已经将有关-AlwaysAppendSearchDomains选项以及如何处理此问题的支持票升级给了优胜美地工程师,因此我将在以后发布更多内容。在这里发现,当他们联系我几天。
DJH

@ djh,Apple工程师有运气吗?
Sigsegv 2014年

此问题已在10.10.1更新中修复:Allows you to append search domains for partially qualified domain names when performing DNS lookups (consult the discoveryd man page for more information)。请参阅下面的@Teknisten答案。
2014年

这似乎与较新版本的macOS不太相关,因为它们已删除10.10.4 macrumors.com/2015/06/30/apple-releases-os-x-10-10-4
Scott Willeke

Answers:


18

从10.10.1开始,解决此问题的最简单方法是将其添加--AlwaysAppendSearchDomainsProgramArgumentsplist文件中/System/Library/LaunchDaemons/com.apple.discoveryd.plist

然后重新启动com.apple.discoveryd.plist

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.discoveryd.plist

所有这些根据以下人员打印的帮助:

/usr/libexec/discoveryd --help

据我所知,这与对mDNSResponder所做的相同。


很遗憾,没有在El Capitan工作。
德米特里·韦克霍图洛夫

4

在终端中运行sudo Discoveryutil mdnsactivedirectory yes。根据https://discussions.apple.com/message/26927843#26927843,这是解决方案。

只要启动没有密码的终端,就可以使其自动运行:

  • 苏多维苏多
    • 在底部添加一行 %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • 如果管理员组不起作用,请groups在终端上运行并使用适当的组-可能是“ staff”或“ everyone”。或者只使用一个单独的用户名而不加前导%
  • 测试可见更改
    • 须藤-k
    • sudo su并验证您正在询问密码。然后在不输入密码的情况下按Control-c
    • sudo discoveryutil mdnsactivedirectory并确认没有要求您输入密码
  • 在〜/ .bash_profile中添加一行 sudo discoveryutil mdnsactivedirectory yes
  • 将终端添加到用户的登录项
    • 在10.10:系统偏好设置->用户和组中,选择用户
    • 转到“登录项”选项卡,然后添加/ Applications / Utilities / Terminal

您如何使它永久化?重新引导后,您将需要再次执行此命令。
JoeriBe 2014年

这似乎对我不起作用,至少使用非本地主机名。我仍然需要输入“ ssh foo.bar.baz.com”而不是“ ssh foo.bar”,即使“ .baz.com”在我的搜索路径中。
Sigsegv 2014年

您不应该在用户中添加~/.bash_profile必须在系统守护程序级别进行的配置修改discoveryd
2015年

1

不幸的是,没有解决方案,但是我发现您至少可以使用“ discoveryutil”检查解析器配置,如下所示:

mdbraber-mba:~ mdbraber$ sudo discoveryutil configresolver
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope None, order 0
    server 192.168.143.1
    search domain ourhouse
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope InterfaceID, order 0
    server 192.168.143.1

显然第一个解析器列出了一个搜索域,尽管它似乎不能在OS X <10.10版本下运行。不知道为什么还有第二个没有列出搜索域的解析器。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.