• dig 简明教程


    哈喽大家好,我是咸鱼

    不知道大家在日常学习或者工作当中用 dig 命令多不多

    dig 是 Domain Information Groper 的缩写,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。

    无论是简单的 DNS 解析查找还是更高级的故障排除和分析,dig 都能够胜任

    那么今天咸鱼将和大家一起了解一下 dig 命令的一些常见用法以及示例

    除了 dig 命令,还有一种跟 dig 功能是差不多的 命令 nslookup

    安装

    如果 Linux 发行版没有安装 dig 命令,则可以通过下面的命令来安装

    • Debian 和 基于 Debian 的发行版
    apt install dnsutils
    
    • Red Hat 和基于 RHEL 的发行版
    dnf install bind-utils
    # 或
    yum install bind-utils
    
    • Arch Linux 和基于 Arch 的发行版
    pacman -S dnsutils
    

    以我的测试环境为例(CentOS 7.9)
    image

    常见用法

    # 基本语法
    dig [@server] [name] [type]
    
    • @server:请求所指向的 DNS 服务器的主机名或IP地址。如果没有指定 DNS 服务器,则使用系统当前配置的 DNS 服务器
    • name :要查找的域名
    • type :要检索的 DNS 记录的类型,默认为 A 记录类型

    比如说我想解析 www.baidu.com 这个域名,指定使用 Google 的 dns 服务器(8.8.8.8)
    image

    # A 记录
    dig @8.8.8.8 www.baidu.com
    

    如果要查找 MX 记录

    dig @8.8.8.8 www.baidu.com MX
    

    前面我们讲到,dig 命令会在 ANSWER 部分中默认显示 A 记录,下面我们来看下命令输出的信息
    image
    可以看到一共有五列,我们以最后一行行为例:

    • 第一列 www.wshifen.com:要查找的域名
    • 第二列 192 :生存周期,告诉 DNS 解析器在请求一个新查询之前缓存查询多长时间
    • 第三列 IN:查询的类,IN 指互联网
    • 第四列 A:DNS 查询类型( A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等)
    • 第五列 104.193.88.77:域名关联的 IP 地址

    由前面的输出信息我们可以看到,内容还是挺多的,这时候有小伙伴会想:如何减少 dig 命令输出的内容呢?我只想要最有用的,其他的我看得头昏眼花

    可以加上 +nocomments 选项

    dig @8.8.8.8 www.baidu.com +nocomments
    

    image
    可以看到,加上 +nocomments 选项后返回的内容有一部分注释是被去掉了的

    这时候有的小伙伴还会说:不行不行,信息还是太多了,我只要 ANSWER 部分。该如何让命令只输出 ANSWER 部分呢?

    dig www.baidu.com +noall +answer
    

    image
    可以看到,加了 +noall +answer 选项之后,会显示出干净且易于阅读的内容

    如果我只想要返回解析出来的结果呢?可以使用 +short 选项

    dig www.baidu.com +short
    

    image

    进阶用法

    • 指定返回类型信息

    前面我们提到过,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
    

    image

    • DNS 反向查找

    DNS 正向查找就是通过域名找解析 IP;反向查找就是通过 IP 地址找域名

    # 查找 ip 95.217.163.246 对应的域名
    dig -x 95.217.163.246
    

    image

    • 批量查询

    有小伙伴会想:我每次查询一个域名效率太慢了,我能不能一次查询多个域名呢?

    是可以的,dig 是支持批量查询的

    首先我们把要查询的域名放在一个文件里面,每行一个

    [root@localhost ~]# cat domains.txt 
    www.baidu.com
    archlinux.org
    

    然后执行 dig 命令的时候加上 -f 选项

    # 加上 +short 简化输出内容
    dig -f domains.txt +short
    

    image

    修改 dig 默认选项

    前面我们在使用 dig 命令的时候,为了简化输出信息每次敲命令都得带上+nocomments 选项

    那我们能不能把这个选项设置成默认值,这样在敲命令的时候就不需要额外加上这个选项了

    答案是可以的,我们需要在家目录下创建一个 ~/.digrc 文件,然后添加选项

    [root@localhost ~]# cat ~/.digrc 
    +nocomments
    +short
    

    这样我们执行 dig 命令的时候就算没加上去,也会默认使用这两个选项

  • 相关阅读:
    【小超嵌入式】C++图书管理系统详细分析
    Pytroch Nerf代码阅读笔记(LLFF 数据集pose 处理和Nerf 网络结构)
    pnpm 是凭什么对 npm 和 yarn 降维打击的
    PLSQL下载与安装
    python的opencv操作记录(五) - 空间域与频域转换
    GitHub平台 Bookget操作
    技术管理进阶——你了解成长的全貌吗?
    Wazuh agent的安装、注册与配置管理
    使用vue-cli搭建SPA项目及使用和路由及路由嵌套的使用
    【Linux】自己实现一个bash进程
  • 原文地址:https://www.cnblogs.com/edisonfish/p/17773138.html