doggo基于 Golang 的命令行 DNS 客户端

联合创作 · 2023-10-01 05:36

doggo 是一个用 Golang 编写的现代命令行 DNS 客户端。它以一种简洁的方式输出信息,并支持 DoH、DoT 和 DNSCrypt 等协议。



特点:



  • 可读的输出 —— 支持颜色和表格格式。

  • 支持 JSON 格式 —— 在编写脚本时很有用。

  • 支持多种传输协议。

    • DNS over HTTPS (DoH)

    • DNS over TLS (DoT)

    • DNS over TCP

    • DNS over UDP

    • DNS over DNSCrypt


  • 支持来自 resolv.conf 或命令行参数的 ndots 和搜索配置。

  • 同时支持多个解析器。

  • 同时支持 IPv4 和 IPv6。

  • 也可以作为一个网络工具:https://doggo.mrkaran.dev。

  • zsh 和 fish 的 Shell 补全

  • 反向 DNS 查询


安装


二进制


可以从 Releases 部分获取适用于 Linux、MacOS 和 Windows 的最新二进制文件。


例如,要拉取最新的linux-amd64二进制文件:




$ cd "$(mktemp -d)"
$ curl -sL "https://github.com/mr-karan/doggo/releases/download/v0.3.7/doggo_0.3.7_linux_amd64.tar.gz" | tar xz
$ mv doggo /usr/local/bin
# doggo should be available now in your $PATH
$ doggo


Docker


图像托管在 Github Container Registry (ghcr.io) 上。可以在此处查看所有标签。它甚至支持 ARM,因此您可以在 RPi 上启动一个容器来进行 DNS 查询。


pull


docker pull ghcr.io/mr-karan/doggo:latest


run


可以将所有参数直接提供给 CLIdocker run命令。例如:


docker run ghcr.io/mr-karan/doggo:latest mrkaran.dev @1.1.1.1 MX

浏览 37
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报