跳到正文
发现
命令行工具开发者工具

NextDNS CLI:命令行 DoH 代理客户端

NextDNS 的命令行客户端,用 DNS-over-HTTPS 接管系统或路由器的 DNS 解析,适合路由器与类 UNIX 系统。

admin
发布于 2026-10-30
浏览
2
访问
0
下载
0
版本
v1.49.0
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

NextDNS CLI 是一个命令行工具,让你可以使用 NextDNS 的 DNS-over-HTTPS(DoH)服务并获得其高级能力。虽然最完整的功能只在配合 NextDNS 时可用,但该项目也可以作为任意 DoH 服务商的客户端,或混合使用 NextDNS 与其他 DNS(split horizon 分流)。

它主要面向路由器和类 UNIX 系统,同时也适用于 Windows 和 macOS,尤其是偏好完全开源、不介意没有图形界面的用户。项目使用 Go 编写,采用 MIT 许可证。

主要功能

  • 作为 DoH 代理,为系统提供基于 HTTPS 的 DNS 解析
  • 既可作为 NextDNS 的客户端,也可对接其他 DoH 服务商
  • 支持混合使用 NextDNS 与另一路 DNS,实现按域名分流
  • 提供路由器模式(如 setup-router),在 OpenWrt 上接管 dnsmasq 转发或直接监听 53 端口
  • 附带 shell 补全脚本,支持 bash、zsh、fish
  • 纯命令行运行,无 GUI

安装与使用

README 指向 wiki 获取安装与使用说明,仓库内没有直接列出安装命令。仓库中新版本更新日志提到通过 APT 分发,并在 APT 元数据中公布支持的架构,具体安装方式仍请以 wiki 为准。

安装后可生成 shell 补全:

nextdns completion bash | sudo tee /etc/bash_completion.d/nextdns

OpenWrt 路由模式下,若未指定接管方式,NextDNS 会在 dnsmasq 转发给 NextDNS,或 NextDNS 直接提供 53 端口时,把下游 RA/DHCPv6 中继或混合接口通告的 IPv6 DNS 服务器替换为本地路由器地址;显式的 IPv4 DNS 条目与上游主接口保持不变。该功能依赖 odhcpd、netifd 和 rpcd 的 UCI 接口,优先选择本地 ULA,回退到链路本地地址,并在通告前校验 UDP 与 TCP 的 DNS 可用性。

修改前的原始 DNS 选项会保存在 /etc/nextdns-openwrt-relay.json,停机时恢复;该恢复文件可跨进程重启与设备重启保留。

注意事项

  • 功能会覆盖 OpenWrt 的 IPv6 中继 DNS 配置,需要 odhcpd、netifd、rpcd 支持;接口未就绪或找不到可用解析器时,设置会报错并保留原有 IPv6 DNS 配置,接口就绪后需重启 NextDNS。
  • 客户端可能在其通告生命周期到期或网络配置刷新前继续使用旧 DNS 服务器。
  • 该机制只重写已有的 RDNSS 与 DHCPv6 DNS 选项,不会拦截硬编码 DNS,不会补充缺失的上游 DNS 选项,也不会改写经过认证的 DHCPv6 应答。
  • 路由器防火墙需允许客户端在 UDP 与 TCP 53 端口访问通告地址。
  • 可用 go test ./router/openwrt 运行单元与失败路径测试;集成脚本 router/openwrt/testdata/relay-integration.sh 需要 Go 与 Docker,且不覆盖客户端可见的 RA/DHCPv6 报文,正式部署前应在路由测试网络中验证。

本作品整理自 GitHub 开源项目 nextdns/nextdns,原作者 @nextdns,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v1.49.0当前版本

    以维护与依赖更新为主:升级 golang.org/x/net、x/sys、godbus 等依赖,缓存键改用 xxhash 计算,APT 元数据公布支持的架构;修复被黑洞的 DoH 连接可恢复、OpenWrt IPv6 中继 DNS 覆盖,并将 OpenWrt 关机超时提高到 30 秒。

评论