Dog是用于DNS查询的命令行工具,其工作方式与dig类似。它具有丰富多彩的输出,支持DNS-over-TLS和DNS-over-HTTPS协议,可以输出JSON格式。系统环境Ubuntu20.04.1LTSDog-DNS查询命令行工具Dog-DNS查询安装命令行工具Dog是一个用Rust编写的DNS查询工具。Dog需要高于1.45.0的rustc版本。我们使用apt安装的版本不符合这个要求。接下来,我们将通过其他方式安装rustc。接下来需要先安装libssl-dev安装包:bob@ubuntu-20-04:~$sudoaptinstall-ycargolibssl-devinstallrust下面,因为rust是按照官方文档安装的,有时候下载没有任何进展,先在这里修改把镜像源改成国内,然后执行安装:bob@ubuntu-18-04:~$exportRUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/r。..bob@ubuntu-18-04:~$exportRUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/r...bob@ubuntu-18-04:~$curlhttps://sh.rustup.rs-sSf|shDog-用于DNS查询的命令行工具Dog-用于DNS查询的命令行工具在下面的地方,选择选项1.Dog-用于DNS查询的命令行工具Dog-用于DNS查询的命令行工具Dog-用于DNS查询的命令行工具Dog-安装了用于DNS查询的命令行工具。需要执行以下命令才能正常使用cargo命令:bob@ubuntu-18-04:~$source$HOME/.cargo/env查看rustc的版本如下:bob@ubuntu-18-04:~$rustc--versionrustc1.47.0(18bf6b4f02020-10-07)Dog-DNS查询命令行工具Dog-DNS查询命令行工具从github包下载doginstall,解压:bob@ubuntu-20-04:~$wgethttps://github.com/ogham/dog/...bob@ubuntu-20-04:~$tarxvfv0.1.0.tar.gz进入解压目录构建dog程序:bob@ubuntu-20-04:~$cddog-0.1.0/Dog-DNS查询命令行工具Dog-DNS查询命令行工具使用默认仓库地址更新会比较慢,按ctrl+c即可到这里更新结束,home目录下会生成一个.cargo文件夹,进去新建一个config配置文件,添加如下内容修改默认仓库,更新速度会快很多:bob@ubuntu-20-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-命令行查询DNSToolDog——用于DNS查询的命令行工具修改后回到dog-0.1.0目录,重新构建dog程序,运行测试如下:bob@ubuntu-18-04:~/dog-0.1.0$cargobuildbob@ubuntu-18-04:~/dog-0.1.0$cargotestDog-DNS查询命令行工具dog-DNS查询命令行工具dog-DNS查询命令行工具Dog-命令行DNS查找工具确保从任何目录运行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●命令行DNSclientv0.1.0[]构建于2020-11-19(预发布!)https://dns.lookup.dog/bob@ubuntu-18-04:~$Dog-命令行DNS查询工具Dog-命令行DNS查询工具可以使用源码包中的命令完成脚本。当需要提示时,按两次TAB键显示子命令:bob@ubuntu-18-04:~$source~/dog-0.1.0/completions/dog.bashdog-DNS查询的命令行工具dog-用于DNS查询的命令行工具如何使用dog命令现在,让我们看看如何使用dog命令查询不同的DNS记录。查询A记录bob@ubuntu-18-04:~$dogwww.baidu.comCNAMEwww.baidu.com.5s"www.a.shifen.com."Awww.a.shifen.com.4s180.101.49.12Awww.a.shifen.com.4s180.101.49.11Dog-DNS查询命令行工具Dog-DNS查询命令行工具查询NS记录bob@ubuntu-18-04:~$dogaliyun.comNSNSaliyun.com.5s"ns3.aliyun.com."NSaliyun.com.5s"ns5.aliyun.com."NSaliyun.com.5s"ns4.aliyun.com."Dog-DNS查询命令行工具Dog-DNS查询命令行工具查询bob@ubuntu-18-04:~$doggoogle.comMX@1.1.1.1MXgoogle.com.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。”Dog-DNS查询的命令行工具Dog-DNS查询的命令行工具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.a.shifen.com.","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}]}]}Dog-命令行DNS查询工具Dog-命令行DNS查询工具查看帮助bob@ubuntu-18-04:~$dog--helpDog-DNS查询命令行工具-TLS和DNS-over-HTTPS协议,可以输出JSON格式。
