Linux dig命令常见用法

Linux dig命令常见用法

DIG命令(Domain Information Groper命令)是常用的域名查询工具,通过此命令,你可以实现域名查询和域名问题的定位,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。

一、dig安装

无论是简单的 DNS 解析查找还是更高级的故障排查和,dig 都能够胜任,除了 dig 命令,还有一种跟 dig 功能是差不多的命令nslookup,这样你可以更好的理解。

使用如下命令安装dig工具

sudo yum install bind-utils #Centos系统

sudo apt-get install dnsutils #Ubuntu系统

man dig查看用法

二、dig用法

常见用法

基本语法dig [@server] [name] [type]

@server:请求所指向的 DNS 服务器的主机名或IP地址。如果没有指定

DNS 服务器,则使用系统当前配置的 DNS 服务器

name :要查找的域名

type :要检索的 DNS 记录的类型,默认为 A 记录类型

一般查询

dig www.baidu.com

root@VM-4-17-opencloudos \~\]# dig www.baidu.com ;\<\<\>\>DiG9.11.36-RedHat-9.11.36-5.oc8.2\<\<\>\> www.baidu.com ;;global options:+cmd ;;Got answer: ;;-\>\>HEADER\<\<- opcode: QUERY, status: NOERROR, id:56216 ;; flags: qr rd ra; QUERY:1, ANSWER:3, AUTHORITY:0, ADDITIONAL:0 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com.266 IN CNAME www.a.shifen.com. www.a.shifen.com.60 IN A 180.101.50.188#解析出来的地址1 www.a.shifen.com.60 IN A 180.101.50.242#解析出来的地址2 ;;Query time:1 msec #查询时间 ;; SERVER:183.60.83.19#53(183.60.83.19) #默认的dns服务器 ;; WHEN:SunJul0719:27:17 CST 2024 ;; MSG SIZE rcvd: 90 指定dns服务器查询 比如说我想解析www.baidu.com 这个域名,指定使用全国通用的 dns 服务器(114.114.114.114) 图片 dig @114.114.114.114 www.baidu.com命令默认显示A记录 如果要查找 MX 记录,直接@指定dns就好 dig @114.114.114.114 www.baidu.com MX 前面我们讲到,dig命令会在ANSWER 部分中默认显示 A 记录,下面我们来看下命令输出的信息 ![图片](https://i-blog.csdnimg.cn/direct/f7094bcf72f741c89d3d08b1ad8c635a.png) 可以看到一共有五列,我们以最后一行行为例: 第一列 www.wshifen.com:要查找的域名 第二列 172 :生存周期,告诉 DNS 解析器在请求一个新查询之前缓存查询多长时间 第三列 IN:查询的类,IN 指互联网 第四列 A:DNS 查询类型( A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等) 第五列 220:域名关联的 IP 地址,可能存在多个 由前面的输出信息我们可以看到,显示内容很多,这时候有小伙伴会想:如何减少 dig 命令输出的内容呢?我只想要最有用的,其他的我看得头昏眼花。 可以加上 +nocomments 选项 dig @114.114.114.114 www.baidu.com +nocomments ![图片](https://i-blog.csdnimg.cn/direct/62efd4fbc2274bfa933f2a35ad60e053.png) 可以看到,加上+nocomments 选项后返回的内容有一部分注释是被去掉了 这时候有的小伙伴还会说:不行不行,信息还是太多了,我只要 ANSWER 部分。该如何让命令只输出 ANSWER 部分呢? dig www.baidu.com +noall +answer ![图片](https://i-blog.csdnimg.cn/direct/658b5b1800074860ba1e565eecacbf84.png) 可以看到,加了 +noall 和 +answer 选项之后,会显示出干净且易于阅读的内容 只输出结果 如果我只想要返回解析出来的结果呢?可以使用 +short选项,这样就干净多了 dig www.baidu.com +short ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d367067c562a4caea7569fcf8dc6f51e.png) 前面我们提到过,DNS 记录的类型(type)有很多种,例如 A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等 我们可以在命令的末尾加上对应的类型名以此来返回解析后特定类型信息 返回MX类型 dig www.baidu.com MX 返回 CNAME 类型 dig www.baidu.com CNAME 或者使用特殊关键字 ALL 将所有类型记录放在一起 dig www.baidu.com ALL 查看 DNS 解析过程 如果我们不确定 DNS 配置在哪里有问题,我们可以使用 dig 命令来查看 DNS 解析的每一过程,只需要加上 +trace 选项即可 dig www.baidu.com +trace ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/50aec7bc5240425191fd322a21b7a7ab.png) * DNS 反向查找 DNS 正向查找就是通过域名找解析 IP;反向查找就是通过 IP 地址找域名查找 ip 95.217.163.246 对应的域名dig -x 95.217.163.246 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6555a12500524878ad7729280e70ee53.png) dig批量查询 有小伙伴会想:我每次查询一个域名效率太慢了,如果批量查询域名,有什么好的方式吗? 首先我们把要查询的域名放在一个文件里面,每行一个 \[root@VM-4-17-opencloudos \~\]# cat dns.txt blog.csdn.net www.baidu.com 批量查询时dig命令加上-f选项 加上+short简化输出内容dig -f dns.txt +short ![图片](https://i-blog.csdnimg.cn/direct/2993d5796a9840ffa873d8f8048cf0e5.png) K8S中的dig查询 在K8S中验证coredns解析查询域名ip的的过程 localhost\> kubectl get svc -A \|grep dns #查找coredns的svc kube-system kube-dns ClusterIP 10.186.0.2 53/UDP,53/TCP,9153/TCP 45d localhost\> kubectl get svc -A \|grep zook #找一个服务验证 default zookeeper ClusterIP 10.186.182.211 2181/TCP 45d default zookeeper-1 ClusterIP None 2888/TCP 45d localhost\> dig zookeeper.default.svc.cluster1.local@10.186.0.2 +short #验证结果和实际ip一致 10.186.182.211

相关推荐
盘古开天16666 分钟前
如何用废弃电脑变成服务器搭建web网站(公网访问零成本)
服务器·电脑·免费公网ip
xuanzdhc3 小时前
Linux 基础IO
linux·运维·服务器
愚润求学3 小时前
【Linux】网络基础
linux·运维·网络
bantinghy3 小时前
Linux进程单例模式运行
linux·服务器·单例模式
小和尚同志4 小时前
29.4k!使用 1Panel 来管理你的服务器吧
linux·运维
帽儿山的枪手4 小时前
为什么Linux需要3种NAT地址转换?一探究竟
linux·网络协议·安全
shadon1789 天前
回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务
linux
AWS官方合作商9 天前
AWS ACM 重磅上线:公有 SSL/TLS 证书现可导出,突破 AWS 边界! (突出新功能的重要性和突破性)
服务器·https·ssl·aws
小米里的大麦9 天前
014 Linux 2.6内核进程调度队列(了解)
linux·运维·驱动开发
程序员的世界你不懂9 天前
Appium+python自动化(三十)yaml配置数据隔离
运维·appium·自动化