分享一个非常灵活全插件配置的 DNS 转发器 mosdns

2020-12-11 21:01:59 +08:00
 Rilimu

项目地址: IrineSistiana/mosdns

配置方式很独特,转发流程完全由用户自己设置。大概就是,mosdns 提供这些基本功能模块,能实现什么,全靠用户自己想了。

以下是项目 wiki 里原文:


mosdns 是一个灵活的 DNS 转发器。灵活是指,mosdns 可以通过组合不同的插件,实现想要的功能。如果自带插件无法满足需求,mosdns 还提供了插件框架供高级用户向 mosdns 内添加新插件。

听起来很像 coredns? 是的,mosdns 和 coredns 一样,每个插件实现一个功能。但 mosdns 的插件执行顺序可动态调整。

目前 mosdns 的插件可以实现:

丢弃或屏蔽应答。(blackhole) 为请求附加 ECS (可以是预设地址,也可以自动用客户端地址)。删除 ECS 。(ecs) DNS 转发,支持 DoT/DoH 协议。(forward) 将应答 IP 写入 ipset 。(ipset) 匹配请求域名和应答的 CNAME 域名。(domain_matcher) 匹配应答的 IP 和客户端地址。(ip_matcher) 匹配请求的类型。(qtype_matcher) 非加密 DNS 服务器。(plain_server) DoH 服务器。支持关闭 TLS 配合反向代理使用。( http_server) hosts 功能。(hosts) 自定义上述插件的执行顺序,实现最适合自己的运行方式。(sequence)


我主要是用来分流。努力配置后,成功实现了我想象中的多地区同时靠不同域名靠不同 IP 靠不同 ECS 靠不同 ipset 的分流逻辑。真的非常灵活。

个人感觉还有几个非常实用的特点: ip 和域名可以从 txt 表导入也可以从 v2 的规则文件导入。很兼容,路由上用脚本更新很方便。请求模块“用的 AdguardHome 的组件驱动,运行行为跟 AdguardHome 是差不多一样”,所以可以安心配置多个上游,然后挂在 AdguardHome 前面。因为有一样的负载均衡。

然后第一次配置可能要把整个 wiki 看完,不然不理解 mosdns 的运行方式配置起来会有点迷。

感谢作者。已使用作者的 mos-chinadns 很久了。今天成功切换到 mosdns 。分享到 V2EX 来支持作者。

12028 次点击
所在节点    DNS
8 条回复
zro
2020-12-12 00:17:26 +08:00
有空试试。。。
Rorysky
2020-12-12 02:25:54 +08:00
多地区同时靠不同域名靠不同 IP 靠不同 ECS 靠不同 ipset 分流

请教下,走代理的时候 dns 是选 靠近服务器的 还是 靠近客户端的
INTEL2333
2020-12-12 07:59:16 +08:00
发现宝藏
https://github.com/IrineSistiana/mosdns/wiki/Plugin#ecs
可以解决双栈 v4v6 不同运营商的解析问题了
@zro
Rilimu
2020-12-12 11:12:14 +08:00
@Rorysky 走代理的时候 dns 应该要选靠近服务器的。这样路径最短。

但不分流的流量 dns 要选靠近客户端的。

我现在是先请求本地服务器,然后根据 IP 或域名区分地域,如果是本地的结果就接受,如果不是就吧 ecs 去掉再请求对应的远程服务器。

请教下大佬们,这个方案有没有什么问题,能做到两边都最好吗?
szpunk
2020-12-12 11:38:12 +08:00
新版把监听 server 作为插件就很灵活,可以单程序开几个服务器监听,做不同的流程。
gianni238
2020-12-12 21:02:36 +08:00
看上去不错
Rilimu
2020-12-12 22:45:33 +08:00
@szpunk 感谢提醒,之前没想到还能这么操作😂。开了两个程序。
今晚又仔细看完了项目的 wiki 。把配置合并了。感觉这个项目把折腾 DNS 带到了新的维度。要是有教程就好了,太灵活了有些操作自己想不到。。。
Kobayashi
2020-12-15 13:36:52 +08:00
是很灵活,但好像没办法对 IP 筛选做并发:同时向 2 个 DNS 转发,根据结构是否匹配 China 地区决定是否采用结果。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/734637

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX