我试过在 Debian 上安装 dig,但 apt-get 实用程序似乎不知道它是什么。
它是一些更大的软件包的一部分吗?我在哪里可以找到这个?
过去,同事们总是告诉我 4.2.2.2 似乎工作得更快,并且必须将其与 Google 的公共 DNS* 结合起来。使用 8.8.8.8 作为主要和 4.2.2.2 作为次要。但是Google只提供了8.8.8.8和8.8.4.4,那么4.2.2.2是谁提供的呢?如果为真,为什么 4.2.2.2 更快?
*注意:这些 IP 地址用于挖掘域并确定本地 DNS 更改是否已在整个 Internet 上传播。
当我查看 dig 的手册页时,我得到以下信息:
+[no]trace
Toggle tracing of the delegation path from the root name servers for the name
being looked up. Tracing is disabled by default. When tracing is enabled, dig
makes iterative queries to resolve the name being looked up. It will follow
referrals from the root servers, showing the answer from each server that was
used to resolve the lookup.
Run Code Online (Sandbox Code Playgroud)
那么这在实践中是如何工作的呢?dig在功能上等效的等效命令系列(没有 +trace)是什么?
好的,这是设置:我有一个本地路由器,它通过 DHCP 将自己宣传为 DNS 服务器。路由器上的 DNS 解析器只是将请求转发到 ISP 名称服务器并缓存回复。
现在是否可以在不访问路由器的情况下找到 ISP 名称服务器?我在想一些dig/nslookup魔法。
如何在 Ubuntu 14.04 minimum 上安装“dig”?
我试过:
apt-get install dig
Run Code Online (Sandbox Code Playgroud)
它没有用。似乎它包含在一些不同的包中,但我不知道是哪一个。
考虑以下命令运行dig,我只是查询google.com的 IP 地址:
$ dig google.com
; <<>> DiG 9.16.1-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32427
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 276 IN A 142.250.71.14
;; Query time: 1437 msec
;; SERVER: 192.168.225.1#53(192.168.225.1)
;; WHEN: Sun May …Run Code Online (Sandbox Code Playgroud) 当我发现 'any' 类型的一些奇怪行为时,我正在玩 'dig' 向朋友展示它是如何工作的。
我相信使用 'dig any' 会自动获取所有记录类型,但由于某种原因,这似乎不会发生。
这是我的输出...
; > DiG 9.4.3-P3 > 任何 sourceforge.net ;; 问题部分: ;sourceforge.net。在任何 ;; 回答部分: sourceforge.net。2390 中 216.34.181.60 sourceforge.net。3279 在 NS ns-1.sourceforge.com。 sourceforge.net。3279 在 NS ns-1.ch3.sourceforge.com。 sourceforge.net。3279 在 NS ns-2.ch3.sourceforge.com。 ;; 附加部分: ns-2.ch3.sourceforge.com。3221 在 216.34.181.22
注意它是如何丢失 MX 记录的?这样我就可以运行“dig MX”并获得 MX 记录就好了。所以我决定再次运行'dig any'来检查我没有发疯,我得到了以下结果......
;; 问题部分: ;sourceforge.net。在任何 ;; 回答部分: sourceforge.net。2379 在 216.34.181.60 sourceforge.net。3268 IN NS ns-1.ch3.sourceforge.com。 sourceforge.net。3268 IN NS ns-2.ch3.sourceforge.com。 sourceforge.net。3268 在 NS ns-1.sourceforge.com。 sourceforge.net。3597 在 MX 10 mx.sourceforge.net。 ;; 附加部分: ns-2.ch3.sourceforge.com。3210 中 216.34.181.22 mx.sourceforge.net。1653 …
在 linux 上,我可以使用以下命令列出 DNS 表中以“80”结尾的所有条目:
dig axfr my.domain | grep 80
Run Code Online (Sandbox Code Playgroud)
我如何在 Windows 上使用 NSlookup 做到这一点?我试过启动 NSlookup 并输入
ls my.domain
Run Code Online (Sandbox Code Playgroud)
这给了我完整的清单。但是如何像在 linux 上使用 grep 一样过滤结果集?
我试过了:
C:\Users\user>nslookup -ls my.domain | find "80"
*** Invalid option: ls
Run Code Online (Sandbox Code Playgroud)
但它给出了上述错误。
出于好奇,dig .今天我进来了。令我惊讶的是,我得到了一个IP:
$ dig .
; <<>> DiG 9.10.3-P4-Ubuntu <<>> .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45964
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;. IN A
;; ANSWER SECTION:
. 291 IN A 172.217.23.174
;; Query time: 150 msec
;; SERVER: 10.0.0.138#53(10.0.0.138)
;; WHEN: Fri Feb 22 18:03:53 STD 2019
;; MSG SIZE rcvd: 33
Run Code Online (Sandbox Code Playgroud)
现在,这个IP似乎属于Google,http://172.217.23.174/实际上重定向到 …
DNS 通常使用 UDP 数据包。然而,当响应大于一定大小时,它会切换到 TCP。
例如,如果我们在使用 DIG 或 NSLOOKUP 运行 DNS 查询命令时可以指定 TCP/UDP,那将非常有用。
有没有办法用 DIG 做到这一点?
这个问题来自这个话题。当我这样做时,我会得到剩余的秒数,直到查询的名称服务器中的 A 记录过期:
dig stackexchange.com
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我会得到权威的 TTL 值:
dig any stackexchange.com
Run Code Online (Sandbox Code Playgroud)
所以,我不明白为什么dig any stackexchange.com当我真正进行递归查询时,我得到所有 TTL 值,就好像我做了一个权威问题一样。
在想检查一些 DNS 记录后,我意识到我当前的版本 (9.8.3-P1) DiG随 Mac OS X (El Capitan 10.11.6) 一起提供,不支持我需要的 RR 类型。
所以现在我正在寻找一个可以在我的系统上运行的最新版本。现在我的问题是,在哪里可以获得该工具的当前版本?我知道在大多数 Linux 发行版上它都随dnsutils包一起提供,但我不知道 Mac OS X。如果有必要,我愿意自己编译它,但我还没有找到源文件。