列出小牛中的DNS服务器


10

如何检查哪个DNS服务器用来解析VPN网络中的特定主机名?

我使用的是公司提供的专有VPN客户端,想查看DNS服务器的IP地址,但是

networksetup -getdnsservers <service name>

根本不列出任何DNS服务器。但是,我可以ping内部网络中的任何服务器,因此DNS显然可以正常工作。

有/无VPN连接的OSX上的DNS查找如何工作?

Answers:


6

首先,如果networksetup -getdnsservers <service name>未显示任何内容,则“系统偏好设置”>“ Netowrk”下的“ DNS服务器:”下没有任何内容。

其次,需要特别注意的是OS X不像大多数系统一样处理DNS。每个https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html本质上,这意味着OS X具有多个DNS客户端,具体取决于您的配置。这些多项服务的结果意味着在某些情况下,使用Safari访问网站(http://www.example.com)会将您带到OS X从DNS检索到的IP地址(例如1.2.3.4),而同时进行挖掘

$ dig www.example.com  

将返回不同的结果。(也许是2.3.4.5)

其原因在于OS X处理DNS的方式。

如果您运行,$ man dig则会得到以下好处:

Mac OS X注意dig命令不使用Mac OS X上运行的其他进程使用的主机名和地址解析或DNS查询路由机制。dig打印的名称或地址查询的结果可能与其他进程发现的结果不同使用Mac OS X本机名称和地址解析机制。DNS查询的结果也可能与使用Mac OS X DNS路由库的查询不同。

$man nslookup将返回类似的东西

Mac OS X注意nslookup命令不使用Mac OS X上运行的其他进程使用的主机名和地址解析或DNS查询路由机制。nslookup打印的名称或地址查询的结果可能与其他进程发现的结果不同使用Mac OS X本机名称和地址解析机制。DNS查询的结果也可能与使用Mac OS X DNS路由库的查询不同。

这实际上是一个冗长的说法,查看正在使用哪些DNS服务器的最佳方法是查看“系统偏好设置”>“网络”。

通常在“ DNS服务器:”中,“搜索​​域:”将允许您搜索不完整的地址。

如果不存在“ DNS服务器:”,则OS X将尝试将“路由器:”中的地址用于DNS。

而且,最有趣的是,还有一些实用程序和其他进程可能没有使用OS X DNS路由库,它们将直接打到/etc/resolv.conf的内容。

简短的简短答案是这样的:

  1. 如果按“系统偏好设置”>“网络”的内容进行操作,则说明大多数进程都在使用同一内容。
  2. 系统偏好设置>网络的内容填充/etc/resolv.conf,但并非总是如此。
  3. 其他一些进程(例如dig和nslookup)正在直接访问/etc/resolv.conf。

而且,最重要的是-如果您没有使用OS X内置的VPN客户端,则可能正在使用其他networksetup -getdnsservers <service name>不会显示的路由和DNS服务器。您知道您的VPN客户端可以向您显示路由和DNS服务器。

我知道这不能完全回答您的问题,但是希望这可以帮助您认识到,要发现Mac上DNS的“真相”并不总是那么容易。通常,您可以安全地假设系统偏好设置>网络或其中的内容networksetup -getdnsservers <service name>是从中获取DNS的位置。但是,如果事情看起来很怪异,请记住,还有其他可能性。使用dig来帮助确定是否存在差异。

最后,对于那些谁不知道如何让读者<service name>networksetup -getdnsservers <service name>,请尝试使用networksetup -listallnetworkservices

法案


感谢您的解释。那就是我所怀疑的:显然是通过路由表中列出的VPN网关查找VPN网络中的任何内容……
Robusta 2013年

我能够在VPN接口上使用tcpdump捕获DNS服务器的地址。
Robusta 2013年

8

如果要查看活动的DNS配置,请在OSX Mavericks(10.9-实际上是10.6.3以上)中进行以下操作:

scutil --dns

-first-条目(解析器#1)据报道是活动配置...尽管我已经看到很多情况,但并非如此。

来自man scutil

 The --dns option reports the current DNS configuration.  The first listed
 resolver(5) configuration is considered to be the "default" configura-
 tion.  Additional "supplemental" configurations follow.  Those containing
 a "domain" name will be used for queries matching the specified domain.
 Those without will be used as a "default" configuration in addition to
 the first listed.

IME,如果您在此处看到的内容与预期不符(即,网络>高级> dns),则可能需要禁用/启用适当的网络适配器才能刷新...

最新OSX的其他提示:

使用10.7或10.8时,搜索域不适用于其中带有点的查找。即-www.test根本不会在www所在的位置附加搜索域。有一个解决方法:

sudo vim /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Add <string>-AlwaysAppendSearchDomains</string>after line 16
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/mDNSResponder</string>
        <string>-launchd</string>
        <string>-AlwaysAppendSearchDomains</string>
    </array>

现在卸载并重新加载mDNSResponder服务:sudo launchctl卸载-w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

网络>高级> dns配置为-PER INTERFACE-。因此,如果您使用无线和有线...则必须同时进行设置。

还有另一种方式-/ etc / resolver-这里的一个示例:/ etc / resolver /文件在Mountain Lion中可以用于DNS解析吗?以及更多信息,请访问:https : //www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/

至于尝试执行nslookup-众所周知,nslookup(以及宿主和挖掘)没有遵循OSX解析机制(极其独特和混合)。使用ping。


这应该是公认的答案。scutil --dns显示操作系统正在使用的实际DNS配置。
Nate

2

我通常会在以下示例中使用(在Unix环境中,这可能有点老套了)。

首先,您可以分别查找IP地址或DNS名称条目,它会向后报告用于提供答案的服务器。您可以在命令行上查找单个条目,或者输入nslookup程序并查找几个条目而不必重新输入命令:

nslookup

Default Server:  redacted.organisation.com
Address:  10.47.xxx.xxx

> ibm.com
Server:  redacted.organisation.com
address:  10.47.xxx.xxx

Non-authoritative answer:
Name:    ibm.com
Address:  129.42.38.1

> sun.com (etc etc, use quit or exit to get out)

其次,此命令(请注意,我在Windows框上运行了该命令,在unix / OS X上,命令ipconfig / all代替了ifconfig -a,并且输出结果可能略有不同),其中列出了系统上每个接口的ip config数据,物理端口,无线连接,VNC等,显示与机器外的每条路由相关的DNS和IP数据,您将获得很多回录,每个真实的网络端口/适配器一个,以及取决于您的各种虚拟端口配置,在我的示例中,我删除了大部分结果,但显示了我的VPN适配器及其所拥有的(已编辑的)DNS条目。

C:\Users\dawilkin>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : XXX-XXXXX
   Primary Dns Suffix  . . . . . . . : XX.XXXXX.com
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : XXX.com
                                       XX.XXX.com
                                       XX.XXX.com
                                       XXX.co.uk
                                       XXX.com

Ethernet adapter Local Area Connection 2:

   Connection-specific DNS Suffix  . : XXX.com
   Description . . . . . . . . . . . : Cisco AnyConnect VPN Virtual Miniport Ada
pter for Windows x64
   Physical Address. . . . . . . . . : 00-XX-9A-XX-XX-00
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.47.XX.XX(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . : 10.47.XX.X
   DNS Servers . . . . . . . . . . . : 10.47.XX.X
                                       10.31.XX.X
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Local Area Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) 82579LM Gigabit Network Connecti
on
   Physical Address. . . . . . . . . : 3C-97-XX-XX-XX-3C
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter Wireless Network Connection 3:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter #
2
   Physical Address. . . . . . . . . : A4-4E-31-42-33-41
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

不幸的是nslookup回答说它无法在我的VPN网络中找到服务器。另外,ifconfig不会列出任何接口的任何DNS服务器,包括对应于VPN的DNS服务器。
Robusta 2013年

也许您正在使用硬编码的主机文件。您是在Internet上还是在组织内查找服务器?
塞斯特

由于Windows ipconfig输出在OSX环境中没有有用的上下文,因此降低表决权-OSX具有它自己独特的(并且有很多风味)DNS解析环境。
敏锐,

杜德,只需投票,我们不需要知道为什么。

1

是什么nslookup告诉你吗?它在第二行给了我DNS服务器。

$ nslookup stackexchange.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   stackexchange.com
Address: 198.252.206.16

当我进入内部服务器(属于VPN)时,nslookup尝试将我的wifi路由器用作DNS,然后找不到服务器:[...〜] $ nslookup> xxxxxxxxxxx.com服务器:192.168.1.1地址:192.168.1.1# 53
Robusta 2013年
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.