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

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报