如何在OS X下从命令行显示当前的DNS服务器?


50

我想从命令行显示OS X上当前网络设置所使用的DNS服务器。

Answers:


72

有几种方法-这里有两种:

cat /etc/resolv.conf

-要么-

scutil --dns

1
它非常烦人,networksetup -getdnsservers不适用于DHCP分配的DNS服务器。我总是忘了scutil。“ sc”代表系统配置?它肯定不会配置太多系统...
Geoff Nixon

1
还需要注意的是,dig或者nslookup不一定提供有关macOS应用程序如何从本地系统解析域名的真实图片,尤其是在配置了多个(特定于域的)DNS时,例如,将VPN客户端用于多个并发连接。代替nslookupdig,用于dscacheutil -q host -a name somehostname.com测试DNS解析。它考虑了所有已配置的DNS服务器及其优先级顺序。
维尔

3
cat /etc/resolv.conf似乎不再是“可靠”的解决方案。这是我在使用macOS High Sierra时收到的通知:(很抱歉,格式-注释不支持简单的换行符)#macOS通知##不咨询该文件的DNS主机名解析,地址#解析或此系统上大多数#进程使用的DNS查询路由机制。##要查看此系统使用的DNS配置,请使用:#scutil --dns
PatrikN

我喜欢scutil --dns | grep nameserver刚刚获得DNS服务器。
SamAndrew81

2

以下shell命令对于列出当前DNS条目很有用:

grep nameserver <(scutil --dns)

要为脚本过滤掉它,您可以将输出通过管道传递给awk '{print $3}'grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"命令。


2
这和scutil --dns | grep nameserver正确的语法一样(只是语法不同)?
SamAndrew81
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.