惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
The GitHub Blog
The GitHub Blog
美团技术团队
Security Latest
Security Latest
The Cloudflare Blog
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Exploit Database - CXSecurity.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
P
Proofpoint News Feed
V
Vulnerabilities – Threatpost
Schneier on Security
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Security Affairs
腾讯CDC
H
Hacker News: Front Page
Microsoft Security Blog
Microsoft Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 三生石上(FineUI控件)
C
Check Point Blog
S
Security @ Cisco Blogs
Google DeepMind News
Google DeepMind News
Cisco Talos Blog
Cisco Talos Blog
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Security Archives - TechRepublic
Security Archives - TechRepublic
I
InfoQ
量子位
Apple Machine Learning Research
Apple Machine Learning Research
AWS News Blog
AWS News Blog
TaoSecurity Blog
TaoSecurity Blog
月光博客
月光博客
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
A
Arctic Wolf
Hacker News: Ask HN
Hacker News: Ask HN
D
Docker
Hugging Face - Blog
Hugging Face - Blog
I
Intezer
雷峰网
雷峰网
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
SecWiki News
SecWiki News
N
News and Events Feed by Topic

蛮荆

如何获取更多的免费服务器 Kubernetes 调度器队列 - 设计与实现 Kubernetes 调度器 - 核心流程 Kubernetes Networking Model & CNI Kubernetes 控制器管理总结 Kubernetes CronJob 设计与实现 Kubernetes Job 设计与实现 Kubernetes HPA 设计与实现 Kubernetes Deployment 滚动更新实现原理 Kubernetes GC 设计与实现 Kubernetes Pod 驱逐 - 设计与实现 Kubernetes Daemonset 设计与实现 Kubernetes ReplicaSet 设计与实现 Kubernetes EndPoint 设计与实现 Kubernetes Informer 设计与实现 降本增效之应用优化 (三) 日志存储与检索 Kubernetes Pod 设计与实现 - 创建流程 Kubernetes 探针设计与实现 Unix 编程艺术名句摘录 Kubernetes - CRI 概述 Golang 编译速度为什么这么快? Kubernetes Pod 设计与实现 - Pause 容器 Kubernetes - kube-proxy 代理模式工程优化 Kubernetes 应用最佳实践 - 优雅关闭长连接 Kubernetes Service 类型和会话亲和性 Kubernetes 为什么需要 Ingress Kubernetes 架构 - 控制平面和数据平面 降本增效之应用优化 (二) 大报表 Go 语言如何获取 CPU 利用率 降本增效之应用优化 (一) Redis 业务规则引擎演变过程简述 微服务中的熔断算法 漏桶算法和令牌桶算法 jsonparser 为什么比标准库的 encoding/json 快 10 倍 ? zap 高性能设计与实现 HTTP Router 算法演进 fastcache 高性能设计与实现 Web 常见的三个安全问题 ants Code Reading Go 线程安全 map 方案选型 布隆过滤器 死锁、活锁、饥饿、自旋锁 sync.Pool Code Reading Go 内存管理概述 Go netpoll Code Reading goroutine 泄漏与检测 time/Timer Code Reading GMP Scheduler Code Reading Go channel 的 15 条规则和底层实现 为什么 Linux “一切皆文件” context.Context Code Reading runtime/HACKING.md Goland 最佳实践 互联网开发与金庸武学 为什么 Redis 6.0 引入多线程模型? Kubernetes 应用最佳实践 - 金丝雀发布 容器中如何正确配置 GOMAXPROCS ? singleflight Code Reading sync.Map Code Reading sync.Cond Code Reading sync.WaitGroup Code Reading sync.RWMutex Code Reading sync.Mutex Code Reading sync.Once Code Reading Go 无锁编程 sync/atomic Code Reading goroutine 交替打印奇偶数 GODEBUG Go 并发模式 Go 汇编 UUID 通用技术选型 Kubernetes 应用最佳实践 - 水平自动伸缩 Go 高性能 Tips fasthttp 为什么比标准库 net/http 快 10 倍 ? 技术文章配图指南 ChatGPT 初体验 Docker 网络原理概览 iptables 的五表五链 Kubernetes 应用最佳实践 - 亲和性和污点容忍度 Go 的反射与三大定律 Docker 官方提供的最佳实践 Go 语言内置的设计模式 HTTP1 到 HTTP3 的工程优化 Kubernetes 应用最佳实践 - Sidecar 模式 Kubernetes 应用最佳实践 - init 容器和钩子函数 为什么 recover 必须在 defer 中调用? 为什么 defer 的执行顺序和注册顺序不同? Go map 设计与实现 Go 切片扩容底层实现 Go 语言中的零拷贝 Go Delve 云原生和边缘计算简介 Kubernetes Pod 服务质量等级 Kubernetes 应用最佳实践 - 探针 Kubernetes 应用最佳实践 - 资源请求和限制 CDN 原理 Kubernetes 应用最佳实践 - 开篇 缓存策略和模式 Go 内存模型 Kubernetes 核心概念
DNS 命令行工具
2017-01-15 · via 蛮荆

2017-01-15 计算机网络 Linux 命令

概述

和 DNS 相关的命令主要有两个: dig, nslookup, host

其中,host 命令语法、作用和 dig 类似,本文不再赘述。

dig

dig 是常用的域名查询工具,可以用来测试域名系统工作是否正常。

1. 查询 A 记录

$ dig dbwu.tech

# 输出如下
;; global options: +cmd

...

;; QUESTION SECTION:
;dbwu.tech.			IN	A

;; ANSWER SECTION:
dbwu.tech.		300	IN	A	104.21.71.166
dbwu.tech.		300	IN	A	172.67.147.110

;; Query time: 458 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)

从输出结果中可以看到,dbwu.tech 一共有 2 条 DNS 记录,而且类型都是 A 记录。

如果希望精简输出结果,可以使用 +short 选项。

$ dig dbwu.tech +short

# 输出如下
172.67.147.110
104.21.71.166

如果希望输出全部记录

$ dig dbwu.tech any

# 使用 host 命令实现同等功能
$ host -a dbwu.tech

2. 查询 AAAA 记录

$ dig dbwu.tech AAAA

# 输出如下
;; global options: +cmd

...

;dbwu.tech.			IN	AAAA

;; ANSWER SECTION:
dbwu.tech.		300	IN	AAAA	2606:4700:3031::6815:47a6
dbwu.tech.		300	IN	AAAA	2606:4700:3036::ac43:936e

;; Query time: 81 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)

3. 指定 DNS 服务器

$ dig @8.8.8.8 dbwu.tech

# 输出如下
;; global options: +cmd

...

;dbwu.tech.			IN	A

;; ANSWER SECTION:
dbwu.tech.		300	IN	A	104.21.71.166
dbwu.tech.		300	IN	A	172.67.147.110

;; Query time: 94 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)

4. 迭代查询

使用 dig 命令时,加上 +trace 选项可以强制采用迭代查询。

$ dig +trace dbwu.tech

# 输出如下
;; global options: +cmd

...

# 第一部分,是从 114.114.114.114 查到的一些根域名服务器(.)的 NS 记录
;; Received 251 bytes from 114.114.114.114#53(114.114.114.114) in 26 ms

tech.			172800	IN	NS	a.nic.tech.
tech.			172800	IN	NS	b.nic.tech.
tech.			172800	IN	NS	e.nic.tech.
tech.			172800	IN	NS	f.nic.tech.

...

# 第二部分,是从 NS 记录结果中选一个(d.root-servers.net),并查询顶级域名 tech. 的 NS 记录。
;; Received 665 bytes from 199.7.91.13#53(d.root-servers.net) in 164 ms

dbwu.tech.		3600	IN	NS	adaline.ns.cloudflare.com.
dbwu.tech.		3600	IN	NS	vern.ns.cloudflare.com.

...

# 第三部分,是从 tech. 的 NS 记录中选择一个(a.nic.tech),并查询二级域名 dbwu.tech. 的 NS 服务器。
;; Received 583 bytes from 194.169.218.60#53(a.nic.tech) in 309 ms

dbwu.tech.		300	IN	A	104.21.71.166
dbwu.tech.		300	IN	A	172.67.147.110

...

# 最后一部分,是从 dbwu.tech. 的 NS 服务器(adaline.ns.cloudflare.com)查询最终主机 dbwu.tech. 的 A 记录。
;; Received 175 bytes from 162.159.38.49#53(adaline.ns.cloudflare.com) in 234 ms

dig 迭代查询示例


nslookup

nslookup 命令同样是常用域名查询工具。

nslookup 有两种工作模式: “交互模式”和“非交互模式”。

交互模式

在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。

怎么样进入交互模式?

nslookup 命令,不加任何参数,直接进入交互模式,此时 nslookup 会连接到默认的域名服务器(也就是 /etc/resolv.conf 文件中的第一个 DNS 地址),如果希望使用其他域名服务器,可以在进入交互模式之后,使用 server 参数设置。

$ cat /etc/resolv.conf

# 默认 DNS 服务器
nameserver 8.8.8.8

交互模式示例。

$ nslookup

# 按回车进入交互模式

# 设置域名服务器
> server 8.8.8.8

# 输出如下
Default server: 8.8.8.8
Address: 8.8.8.8#53

# 输入要查询的域名
> dbwu.tech
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	dbwu.tech
Address: 172.67.147.110
Name:	dbwu.tech
Address: 104.21.71.166

> 等待更多输入 ...

# Ctrl + C 推出交互模式

非交互模式

直接输入 nslookup + 域名 就可以。

# 查询域名解析 A 记录
$ nslookup dbwu.tech

# 域名服务器及端口信息
Server:		8.8.8.8
Address:	8.8.8.8#53

# 非权威查询结果
# 由于 8.8.8.8 并不是直接管理 dbwu.tech 的域名服务器 
# 所以查询结果是非权威的
# 使用上面的命令,你只能得到 8.8.8.8 查询的结果
Non-authoritative answer:
Name:	dbwu.tech
Address: 104.21.71.166
Name:	dbwu.tech
Address: 172.67.147.110

上面的输出结果中,DNS 查询结果是非权威性的,那么如何得到权威性的查询结果呢?首先当然是要找到直接管理 dbwu.tech 的域名服务器。

因为 dbwu.tech 是直接托管在 cloudflare 的,所以先来查询其对应的托管 NS 服务器的 IP 地址。

$ dig dbwu.tech NS

# 输出如下
;dbwu.tech.			IN	NS

;; ANSWER SECTION:
dbwu.tech.		983	IN	NS	adaline.ns.cloudflare.com.
dbwu.tech.		983	IN	NS	vern.ns.cloudflare.com.

;; ADDITIONAL SECTION:
vern.ns.cloudflare.com.	899	IN	A	108.162.193.243
vern.ns.cloudflare.com.	899	IN	A	172.64.33.243
vern.ns.cloudflare.com.	899	IN	A	173.245.59.243
adaline.ns.cloudflare.com. 2735	IN	A	108.162.194.49
adaline.ns.cloudflare.com. 2735	IN	A	162.159.38.49
adaline.ns.cloudflare.com. 2735	IN	A	172.64.34.49
vern.ns.cloudflare.com.	900	IN	AAAA	2606:4700:58::adf5:3bf3
vern.ns.cloudflare.com.	900	IN	AAAA	2803:f800:50::6ca2:c1f3
vern.ns.cloudflare.com.	900	IN	AAAA	2a06:98c1:50::ac40:21f3
adaline.ns.cloudflare.com. 2735	IN	AAAA	2606:4700:50::a29f:2631
adaline.ns.cloudflare.com. 2735	IN	AAAA	2803:f800:50::6ca2:c231
adaline.ns.cloudflare.com. 2735	IN	AAAA	2a06:98c1:50::ac40:2231

;; Query time: 1099 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)

上面的输出结果中有很多 NS 服务器的 IP 地址,这里直接使用第一个 IP 地址: 108.162.193.243 来作为域名服务器进行查询,这样就可以得到权威的查询结果了。

$ dig dbwu.tech 108.162.193.243

# 输出如下
;dbwu.tech.			IN	A

;; ANSWER SECTION:
dbwu.tech.		201	IN	A	172.67.147.110
dbwu.tech.		201	IN	A	104.21.71.166

...

;; QUESTION SECTION:
;108.162.193.243.		IN	A

# 可以看到,这里的查询结果显示为 [权威查询结果]
;; AUTHORITY SECTION:
.			3600	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2024061600 1800 900 604800 86400

;; Query time: 478 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)

反向查找

根据 IP 地址反查 DNS,也称为反向 DNS 查找,可以使用 dig, nslookup 命令,下面是对应的示例。

使用 dig 反向查找

$ dig -x 8.8.8.8

...

;; ANSWER SECTION:
8.8.8.8.in-addr.arpa.	1510	IN	PTR	dns.google.

;; Query time: 32 msec

或者直接查询精简版本:

$ dig -x 8.8.8.8 +short

# 输出如下
dns.google.

使用 nslookup 反向查找

$ nslookup 8.8.8.8

# 输出如下
# 根据输出结果可以看到,IP 8.8.8.8 是 Google 的 DNS
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
8.8.8.8.in-addr.arpa	name = dns.google.

$ nslookup 1.1.1.1

# 输出如下
# 根据输出结果可以看到,IP 1.1.1.1 是 CloudFlare 的 DNS
Server:         fe80::82cf:a2ff:fe70:ab71%11
Address:        fe80::82cf:a2ff:fe70:ab71%11#53

Non-authoritative answer:
1.1.1.1.in-addr.arpa    name = one.one.one.one.

Authoritative answers can be found from:
1.1.1.in-addr.arpa      nameserver = ns7.cloudflare.com.
1.1.1.in-addr.arpa      nameserver = ns3.cloudflare.com.
ns7.cloudflare.com      internet address = 162.159.4.8
ns7.cloudflare.com      internet address = 162.159.6.6
ns3.cloudflare.com      internet address = 162.159.0.33
ns3.cloudflare.com      internet address = 162.159.7.226
ns7.cloudflare.com      has AAAA address 2400:cb00:2049:1::a29f:606
ns7.cloudflare.com      has AAAA address 2400:cb00:2049:1::a29f:408
ns3.cloudflare.com      has AAAA address 2400:cb00:2049:1::a29f:21
ns3.cloudflare.com      has AAAA address 2400:cb00:2049:1::a29f:7e2

在线工具