NextDNS CLI:命令行 DoH 代理客户端
NextDNS 的命令行客户端,用 DNS-over-HTTPS 接管系统或路由器的 DNS 解析,适合路由器与类 UNIX 系统。
- 浏览
- 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 整理,以原仓库为准。
更新记录
- v1.49.0当前版本
以维护与依赖更新为主:升级 golang.org/x/net、x/sys、godbus 等依赖,缓存键改用 xxhash 计算,APT 元数据公布支持的架构;修复被黑洞的 DoH 连接可恢复、OpenWrt IPv6 中继 DNS 覆盖,并将 OpenWrt 关机超时提高到 30 秒。
评论