【开源自荐】dns-prefer —— 按规则选择性返回DNS的A记录或AAAA记录

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社...
【开源自荐】dns-prefer —— 按规则选择性返回DNS的A记录或AAAA记录
开源自荐】dns-prefer —— 按规则选择性返回DNS的A记录或AAAA记录
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


github.com

GitHub - WROIATE/dns-prefer: A lightweight tool for optimizing DNS A and AAAA...

A lightweight tool for optimizing DNS A and AAAA record selection

经常遇到一些场景大部分是归功于国内到海外的奇怪线路,希望某些域名不要返回A记录或者AAAA,举例的话比如cloudflare的AAAA解析在我所在的北京联通线路非常差,一些网站经常绕道美国去;但与之相对的A记录的解析则正常。这种场景下我就希望cloudflare相关的域名或ip段只返回A记录。也有部分域名是AAAA记录优于A记录(比如日服碧蓝档案的cdn),因此我们不能直接暴力禁用所以的A或者AAAA,同时也需要保证不影响只有A记录或者AAAA记录的域名(毕竟这种要是被过滤了那网站直接就没法访问了)。

看了下当前能实现这个功能的工具有mosdns和coredns,但是这几个都是具备完整的dns功能,太重了,而且部分能力需要比较复杂的配置才能实现真不如自己手搓一个来的快。基于这些原因,本工具就诞生了。

dns-prefer旨在尽可能用简单的配置做简单的事,只关注A记录和AAAA记录的优先匹配。

基础配置类似example.com@4,表示当example.com及其子域名存在A记录时,只返回A记录的查询请求,不返回AAAA的查询请求。

同时还支持网段规则,例如我上面提到的cloudflare,可以批量将他们v6的网段加入到规则中,例如cidr:2400:cb00::/32@4,那当查询域名的AAAA记录命中这个网段时,就会检查这个域名是否存在A记录,如果有的话则不返回AAAA的查询。

目前我自己使用了两个月,暂时没有遇到问题,特此分享给有相同需求的朋友。同时因为项目只是初期,可能有些bug或设计不合理的地方,也欢迎各位佬参与贡献~

2 个帖子 - 2 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文