目录导航

DNS Heaven
DNS Heaven 是一款用于解决 macOS 系统 DNS 污染和劫持的开源工具,通过 DoH 等加密方式保护网络隐私,同时提升网络稳定性与安全性,适用于需代理连接的特殊网络环境。
以下是 DNS Heaven 的详细介绍。
DNS Heaven
DNS Heaven 是一款专为 macOS 设计的小巧而强大的 DNS 工具,主要目的是修复 macOS DNS 栈的一个常见问题,使得依赖传统 /etc/resolv.conf 文件的命令行工具(如 dig、nslookup 以及基于 Go 语言编译的程序)能够正常使用 macOS 原生的高级 DNS 功能。
核心功能与优势
一、 解决 macOS DNS 栈的“分裂”问题
macOS 拥有一个功能强大的原生 DNS 解析系统(通过 scutil 管理),它支持许多高级特性。然而,许多传统的 Unix 工具和编程语言库(特别是 Go 语言)并不直接使用这个现代栈,而是去读取标准的 /etc/resolv.conf 文件。macOS 为了兼容性,只会在这个文件中写入一个简化的 DNS 配置(通常只有主 DNS 服务器和搜索域),这导致:
- 问题: 高级 DNS 功能在这些工具中失效。例如,当你使用企业 VPN 并配置了“Split DNS”(根据域名分流解析)、或在不同网络接口(如 Wi-Fi 和以太网)设置了不同的 DNS 服务器时,
dig或nslookup等工具可能无法正确解析,因为它们无法感知这些复杂规则。 - DNS Heaven 的解决方案: 它作为一个后台守护进程运行,持续监控 macOS 系统级的 DNS 配置,并将这些复杂规则代理、转换,最终让所有通过
/etc/resolv.conf查询的工具都能获得与原生栈一致的解析结果。
二、 自动且透明的 DNS 代理
- 动态配置抓取: DNS Heaven 会定期执行
scutil --dns命令,实时读取 macOS 当前的完整 DNS 设置,包括每个接口的 DNS、每个域的特定规则、搜索域列表等。 - 本地代理服务: 它在本地(
127.0.0.1:53)启动一个轻量级 DNS 代理服务器。 - 劫持
resolv.conf: 它将系统的/etc/resolv.conf文件内容固定指向127.0.0.1(本地回环地址)。尽管 macOS 系统或网络变更会试图重写这个文件,但 DNS Heaven 会确保它始终指向自己。 - 智能转发: 当收到来自命令行工具的 DNS 查询请求时,DNS Heaven 会根据从系统读取的最新、最完整的规则,智能地将请求转发到正确的上游 DNS 服务器(例如,根据域名判断是走公司内网 DNS 还是公共 DNS),最后将结果返回给请求工具。
三、 简单便捷的安装与管理
- 一键安装: 项目提供了极简的安装脚本。只需在终端中执行以下命令即可完成下载、安装和后台服务配置:
curl -L https://git.io/fix-my-dns-plz | sudo bash - 自动运行: 安装脚本会自动配置一个 LaunchAgent,确保 DNS Heaven 在系统启动后始终在后台运行,无需用户手动干预。
- 手动安装选项: 高级用户也可以从其 GitHub Releases 页面下载预编译的二进制文件,或自行从源码编译。
四、 相较于其他解决方案的优势(如 dnsmasq)
DNS Heaven 的设计哲学是 “零配置” 和 “完全遵循系统设置”,这与 dnsmasq 等强大但需要手动配置的工具形成了鲜明对比:
| 特性 | DNS Heaven | dnsmasq (传统用法) |
|---|---|---|
| 配置复杂度 | 零配置,自动同步系统所有 DNS 设置。 | 需手动配置上游转发器、规则等,较为复杂。 |
| 上游服务器 | 自动使用当前网络(如 DHCP 下发的)或系统手动设置的 DNS 服务器,动态适应环境变化。 | 通常需静态指定(如 8.8.8.8),在切换网络(如从公司到家庭)时可能不适用。 |
| Split DNS 支持 | 完美支持,因为它直接继承了 macOS 原生栈的全部规则。 | 支持,但需要针对每个域名手动编写配置规则,无法自动同步系统在 VPN 等场景下的复杂设置。 |
| 核心目标 | 修复兼容性问题,让所有工具都看到一致的、正确的 DNS 视图。 | 提供高度可定制的 DNS/DHCP 服务,功能更强大但用起来更“重”。 |
总结:DNS Heaven 能为你带来什么?
- 无缝体验: 安装后,你无需改变任何使用习惯。无论是原生 macOS 应用、通过 VPN 工作的开发者工具,还是古老的 Unix 命令行工具,它们的 DNS 解析行为都将保持一致和正确。
- 系统友好: 它不替代 macOS 的原生网络栈,而是作为一个智能的“翻译官”或“适配器”,弥合了现代系统功能与传统工具之间的鸿沟。
- 轻量可靠: 作为一个用 Go 语言编写的小型单一守护进程,它资源占用极低,且稳定性高。
适用人群: 经常需要在 macOS 上使用命令行网络工具、使用 VPN(尤其是企业 VPN 带有 Split DNS)、或在复杂网络环境下工作的开发者、系统管理员和高级用户。
许可证: MIT 开源协议。
获取与支持:
- 通过 GitHub Issues 提交问题或反馈。
本站所有软件全部同步自 Awesome mac项目;内容全部由 Awesome mac项目整理获得,应用版权归原作者所有。
相关推荐
DNS Optimizer
DNS Optimizer 是一款macOS网络优化工具,通过智能调整DNS设置,有效提升网页加载速度,增强网络稳定性与访问安全性,帮助用户享受更流畅的上网体验。
Dropover
Dropover 是 macOS 上一款创新的拖拽增强工具,提供悬浮暂存面板,让文件整理更高效。支持 iCloud 同步,简化复制、移动和分享流程,大幅提升工作流效率,是 Mac 用户的必备生产力工具。
Dropshelf
Dropshelf是macOS上的拖放增强工具,可让您在任何应用间轻松拖放文件、文本和图片到屏幕边缘的临时存放架,极大提升多任务处理和工作流程效率。
escrcpy
escrcpy是一款专为macOS设计的开源Android屏幕镜像工具,支持有线/无线连接,提供低延迟、高清画质的Android设备投屏体验。无需root权限,轻松实现手机屏幕在电脑上的实时显示与控制。
eZip
eZip是一款Mac平台强大的压缩解压工具,支持ZIP、RAR、7Z等多种格式,提供快速解压、批量操作、密码保护功能,界面简洁易用,是Mac用户处理压缩文件的高效选择。
Final2x
Final2x是一款基于AI的图片超分辨率放大工具,支持多模型算法,可将低分辨率图像智能放大至高清晰度,实现真正的无损画质提升,操作简单高效。

评论