systemd 是否使 dig/nslookup 无用?

The*_*eer 3 dns systemd

我正在尝试调试有关 dns 解析的一些问题,并且正在尝试nslookup(现已弃用)和dig.

但是,我在一个systemd用于配置/etc/resolv.conf.

~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
Run Code Online (Sandbox Code Playgroud)

这似乎dig毫无用处,因为它所做的只是指向127.0.0.53我机器上的 systemd 构造的 dns 服务器。

~$ dig www.google.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31247
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.google.com.            IN  A

;; ANSWER SECTION:
www.google.com.     54  IN  A   216.58.212.164

;; Query time: 29 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Jun 18 10:45:49 CEST 2017
;; MSG SIZE  rcvd: 59
Run Code Online (Sandbox Code Playgroud)

这是一个真实的主张吗?如果你在 systemd 上,其他一切都没有了吗?

der*_*ert 7

不,因为(至少)两个原因:

  1. systemd-resolved 是 systemd 的可选组件。它不需要在运行 systemd 的机器上使用。

  2. dig 有很多选项,即使在 systemd-resolved(或任何其他本地 DNS 缓存,如 dnsmasq)运行时,它也很有用。例如,您可以指定要查询的名称服务器:dig @8.8.8.8 google.com.或任何数量的其他对调试 DNS 有用的选项。