Dog是一个类似于dig的DNS查询命令行工具。它具有丰富多彩的输出,支持DNS-over-TLS和DNS-over-HTTPS协议,可以输出JSON格式。系统环境Ubuntu20.04.1LTS安装Dog是一款用Rust编写的DNS查询工具。Dog需要高于1.45.0的rustc版本。我们使用apt安装的版本不符合这个要求。接下来,我们将通过其他方式安装rustc。接下来需要先安装libssl-dev安装包:bob@ubuntu-20-04:~$sudoaptinstall-ycargolibssl-dev<以上代码可复制粘贴,向左滑动即可>下面安装rust,因为是按照官方文档Rust安装的,有时候下载没有进度,所以先修改这里的镜像源,改成国内的,然后执行安装:bob@ubuntu-18-04:~$exportRUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-staticbob@ubuntu-18-04:~$exportRUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustupbob@ubuntu-18-04:~$curlhttps://sh.rustup.rs-sSf|sh<上面的代码可以复制粘贴,可以向左滑动>在下面的地方,选择选项1,安装完成后需要执行下面的命令才能使用cargo命令bob@ubuntu-18-04:~$source$HOME/.cargo/env<以上代码可复制粘贴,可向左滑动>查看下方rustc版本:bob@ubuntu-18-04:~$rustc--versionrustc1.47.0(18bf6b4f02020-10-07)<以上代码可以复制粘贴,可以向左滑动>从github下载dog安装包,解压:bob@ubuntu-20-04:~$wgethttps://github.com/ogham/dog/archive/v0.1.0。tar.gzbob@ubuntu-20-04:~$tarxvfv0.1.0.tar.gz<以上代码可复制粘贴,可向左滑动>进入解压目录构建狗程序:bob@ubuntu-20-04:~$cddog-0.1.0/<以上代码可以复制粘贴,可以向左滑动>使用默认仓库地址更新会比较慢,按ctrl+c结束更新,在home目录下会生成一个.cargo文件文件夹,进去新建一个config配置文件,添加如下内容这样修改默认仓库,更新速度会快很多:bob@ubuntu-2个0-04:~/dog-0.1.0$cat~/.cargo/config[source.crates-io]registry="https://github.com/rust-lang/crates.io-index"#替换为你首选的镜像源replace-with='sjtu'#replace-with='ustc'#清华大学[source.tuna]registry="https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"#中国科学技术大学[source.ustc]registry="git://mirrors.ustc.edu.cn/crates.io-index"#上海交通大学[source.sjtu]registry="https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"#rustcccommunity[source.rustcc]registry="git://crates.rustcc.cn/crates.io-index"<以上代码可以复制粘贴,向左滑动>修改完成后,回到dog-0.1.0目录,重建dog程序,运行测试:bob@ubuntu-18-04:~/dog-0.1.0$cargobuildbob@ubuntu-18-04:~/dog-0.1.0$cargotest<以上代码可复制粘贴,可向左滑动>确保dog命令从任何目录运行,将二进制文件放在目录中的/usr/local/bin中bob@ubuntu-18-04:~/dog-0.1.0$sudocp-p~/dog-0.1.0/target/debug/dog/usr/local/bin<以上代码可以复制粘贴,和可以向左滑动>运行dog工具查看以下版本:bob@ubuntu-18-04:~$dog--versiondog●命令行DNS客户端v0.1.0[]buildon2020-11-19(pre-release!)https://dns.lookup.dog/bob@ubuntu-18-04:~$<以上代码可复制粘贴,向左滑动>即可使用源码中的命令包来完成脚本。当需要提示时,按两次TAB键,显示子命令:bob@ubuntu-18-04:~$source~/dog-0.1.0/completions/dog.bash<以上代码可以复制粘贴,你可以向左滑动>dog命令的使用方法现在,让我们看看如何使用dog命令查询不同的DNS记录。查询A记录bob@ubuntu-18-04:~$dogwww.baidu.comCNAMEwww.baidu.com.5s"www.a.shifen.com."一个www.a.shifen.com。4s180.101.49.12Awww.a.shifen.com.4s180.101.49.11<以上代码可复制粘贴,可向左滑动>查询NS记录bob@ubuntu-18-04:~$dogaliyun.comNSNSaliyun.com。5s"ns3.aliyun.com."NSaliyun.com.5s"ns5.aliyun.com."NSaliyun.com.5s"ns4.aliyun.com."<以上代码可复制粘贴,可向左滑动>使用指定域名服务器地址查询bob@ubuntu-18-04:~$doggoogle.comMX@1.1.1.1MX谷歌网站。6m23s30“alt2.aspmx.l.google.com.”MXgoogle.com。6m23s40“alt3.aspmx.l.google.com。”MXgoogle.com。6m23s10“aspmx.l.google.com。”MXgoogle.com。6m23s50“alt4.aspmx.l.google.com。”MXgoogle.com。6m23s20"alt1.aspmx.l.google.com."<以上代码可复制粘贴,可向左滑动>JSON格式输出bob@ubuntu-18-04:~$dogAwww.baidu.com-J{"responses":[{"additionals":[],"answers":[{"class":"IN","domain":"www.a.shifen.com.","name":"www.baidu.com.","ttl":5,"type":"CNAME"},{"address":"180.101.49.11","class":"IN","name":"www.baidu.com."a.十分网.","ttl":4,"type":"A"},{"address":"180.101.49.12","class":"IN","name":"www.a.shifen.com.",ttl":4,"type":"A"}],"authorities":[],"queries":[{"class":"IN","name":"www.baidu.com.",type":1}]}]}<上面代码可以复制粘贴,可以向左滑动>查看帮助bob@ubuntu-18-04:~$dog--help<上面代码可以复制粘贴,可以向左滑动>以上是良旭教程网为各位小伙伴分享的Linux相关知识
