Answers:
首先,如果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的内容。
简短的简短答案是这样的:
而且,最重要的是-如果您没有使用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
法案
如果要查看活动的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配置。
我通常会在以下示例中使用(在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
告诉你吗?它在第二行给了我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