首页
/ 推荐开源项目:dns-heaven —— 解决macOS的DNS问题

推荐开源项目:dns-heaven —— 解决macOS的DNS问题

2024-05-24 19:53:39作者:柏廷章Berta

项目介绍

dns-heaven 是一个针对macOS用户的开源解决方案,它旨在通过启用 /etc/resolv.conf 中的本地DNS堆栈,修复macOS的DNS问题。当一些程序如dig、nslookup或Go编译的应用不使用macOS的原生名称解析栈时,dns-heaven 能确保这些程序也能正常利用macOS的DNS特性,特别是支持split DNS功能。

项目技术分析

该项目的核心是通过运行一个DNS服务器代理,该代理遵循macOS的本机行为来处理DNS查询。它定期读取scutil --dns命令的输出,更新上游规则和DNS服务器设置。此外,dns-heaven 还会保持 /etc/resolv.conf 指向本地回送地址(127.0.0.1),因为系统会在网络设置变化时自动重写这个文件。

与dnsmasq等替代方案相比,dns-heaven 的优势在于它能自动适应DHCP宣布的DNS服务器,无需手动配置,从而简化了网络管理。

项目及技术应用场景

  • 开发环境:对于那些在macOS环境下进行网络调试、域名解析测试的开发者,dns-heaven 可以提供更精确的本地DNS支持,使工作更为便捷。
  • 企业网络:在企业环境中,尤其是使用split DNS的企业,可以利用dns-heaven 实现不同域的差异化DNS解析策略。
  • 家庭网络:家中有多台设备需要访问特定DNS服务器的情况,dns-heaven 可以简化配置过程。

项目特点

  • 自动化适配:自动跟踪并应用macOS的网络变化,无需手动调整。
  • 兼容性好:与使用resolv.conf的程序良好兼容,解决部分工具无法利用macOS原生DNS栈的问题。
  • 简单部署:一键安装脚本,便于快速部署和维护。
  • 智能DNS代理:遵循macOS的本机DNS行为,动态更新转发器设置。

项目源代码和最新版本可通过以下链接获取:

curl -L https://git.io/fix-my-dns-plz | sudo bash

dns-heaven 采用MIT许可证,欢迎开发者参与贡献和改进。

希望这个项目能够帮助你在macOS平台上更好地管理和使用DNS服务。

登录后查看全文

项目优选

收起
kernelkernel
deepin linux kernel
C
27
13
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
643
4.19 K
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21
Dora-SSRDora-SSR
Dora SSR 是一款跨平台的游戏引擎,提供前沿或是具有探索性的游戏开发功能。它内置了Web IDE,提供了可以轻轻松松通过浏览器访问的快捷游戏开发环境,特别适合于在新兴市场如国产游戏掌机和其它移动电子设备上直接进行游戏开发和编程学习。
C++
57
7
flutter_flutterflutter_flutter
暂无简介
Dart
886
211
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
386
273
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.52 K
868
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
24
0
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
124
191