nslookup与/etc/resolv.conf一起使用,但ping和ssh不


12

在我们本地的大学网络中,(通过DHCP获得)我在/etc/resolv.conf中进行了以下设置:

search a.domain.com b.domain.com domain.com
nameserver x.x.x.x
nameserver y.y.y.y

这些设置在“系统偏好设置”中也相同。发生以下问题:

nslookup server

工作正常,并且正在使用其中一个名称服务器正确请求server.a.domain.com。但是,如果我尝试ping通,

ping server

因无法访问的主机而失败。

ping server.a.domain.com

作品。用nslookup获得的ip地址手动将服务器添加到/ etc / hosts也可以使ping正常工作,但是此“解决方案”绕过了名称服务器,因此并不理想(我还必须添加大约20个其他条目)。知道是什么原因造成的吗?为什么ping不使用nslookup / searchdomains的结果?

ssh server

也会失败,这是真正的问题/不便。

我已经将AlwaysUseSearchDomains添加到mDNSResponder中,但是此修复程序仅在使用server.foo时有助于解决该问题。

我正在使用OS X Lion 10.7.3。


Ping数据包可能被网络设备阻止。ssh数据包也是如此-他们可能不希望您做您想做的事情。
托尔比约恩Ravn的安德森

请参阅下面的解决方案,这不是问题。
tholu

“无法访问的主机”表示网络连接问题(或阻止了ICMP),而不是DNS解析问题
Daniel Serodio 2014年

Answers:


2

好吧,您阅读了顶部的评论/etc/resolv.conf吗?

# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.

正确的解决方法是描述在系统偏好设置通过网络面板中添加搜索域在这里


是的 搜索域将根据DHCP配置自动在“系统偏好设置”的“网络”面板中输入(因此显示为灰色且不可更改)。在中可以找到完全相同的值/配置/etc/resolv.conf
tholu 2012年

那我不知道该怎么说 我可以通过DHCP获得以太网和WiFi设置,并且可以通过“系统偏好设置”面板更改搜索域。
旧版专业版,

searchdomains在“系统偏好设置”和“ /etc/resolv.conf”中是正确的-问题是ping和ssh没有使用它。如果他们使用nslookup的输出,那么一切都会正常运行,但是以某种方式,他们却没有。但是,它们查找/ etc / hosts。
tholu

我通过“系统偏好设置”一一手动添加了searchdomains(尽管它们是灰色的),现在它可以工作了。谢谢!
tholu 2012年

4

我有同样的问题。我使用的解决方案是创建一个/ etc / resolver目录。在该目录中,为您要解析的每个域创建一个名为的文件。每个文件中应该有两行

nameserver 10.0.100.2
domain  home.cainmanor.com

上面的文件将命名为/ etc / resolver / home。它可能需要命名为home.cainmanor.com,但我现在无法对其进行测试。

祝好运!


我通过“系统偏好设置”一一设置搜索域来工作,从而覆盖了OS X显然无法正确解析的DHCP设置。我无法尝试您的解决方案,但谢谢!
tholu 2012年

当您的公司VPN客户端在临时系统首选项方面做错事情时,这种方法很好用。
彼得

1

我相信,问题出在searchdomains配置之内:ping / ssh尝试使用gethostbyname2()失败,因为named不再运行了(至少在Lion中),/etc/resolv.conf因此忽略了已配置的searchdomains。/etc/hosts是最后的选择gethostbyname2(),因此ssh在/etc/hosts。应该由苹果恕我直言解决。

手动逐个添加搜索域以解决问题,请参见上面的解决方案。


当我通过“系统偏好设置”->“网络”面板将搜索域添加到OS 10.7.3中的WiFi连接(通过DNS配置)后,便像我期望的那样被ping和ssh使用。我没有手动/直接触摸/etc/resolv.conf或/ etc / hosts,但是系统偏好设置中的更改会自动反映在/etc/resolv.conf中。OS X在很多方面与其他Unix系统不同,这就是其中之一。
Old Pro

1
谢谢,通过手动逐个手动添加searchdomains使其起作用,请参阅我对上面建议的解决方案的评论。
tholu 2012年

添加搜索域并不能解决问题……还有其他解决方案吗?

您是如何添加它们的?
tholu

1

当我的Mac Book Pro(OS X版本10.10.1)处于睡眠状态时,我经常会遇到此问题。唤醒它,并且我无法使用网络上计算机的主机名进行ssh命令(并且ping也不起作用)。nslookup工作正常。在/ var / log中看不到任何相关消息。只需保留几分钟,然后就可以再次使用.....


0

我在其他地方回答了这个问题,因为这对我来说很简单,而在其他任何地方都找不到适合我的答案。

在其他线程上建议重新启动mDNSResolver数十次之后:

sudo killall -HUP mDNSResponder

我终于尝试了其他东西。我禁用了Wi-Fi并删除了我所有的首选网络。然后,我重新建立了Wi-Fi连接,一切正常。

  1. 苹果菜单->系统偏好设置-> Wi-Fi(在左侧)
  2. “关闭Wi-Fi”,然后选择“高级”
  3. 删除您遇到问题的Wi-Fi连接(如果需要,也可以全部删除)。为此,请选择要删除的Wi-Fi网络,然后按“-”
  4. 点击“应用”和“确定”
  5. 重新打开Wi-Fi。
  6. 选择您的Wi-Fi网络,然后再次登录。

这终于对我有用。可能应该是我尝试过的第一件事,但是我是Linux专家,首先关注控制台修复。

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.