项目地址: 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 来支持作者。
1
zro 2020-12-12 00:17:26 +08:00
有空试试。。。
|
2
Rorysky 2020-12-12 02:25:54 +08:00
多地区同时靠不同域名靠不同 IP 靠不同 ECS 靠不同 ipset 分流
请教下,走代理的时候 dns 是选 靠近服务器的 还是 靠近客户端的 |
3
INTEL2333 2020-12-12 07:59:16 +08:00 via Android 1
|
4
Rilimu OP @Rorysky 走代理的时候 dns 应该要选靠近服务器的。这样路径最短。
但不分流的流量 dns 要选靠近客户端的。 我现在是先请求本地服务器,然后根据 IP 或域名区分地域,如果是本地的结果就接受,如果不是就吧 ecs 去掉再请求对应的远程服务器。 请教下大佬们,这个方案有没有什么问题,能做到两边都最好吗? |
5
szpunk 2020-12-12 11:38:12 +08:00 1
新版把监听 server 作为插件就很灵活,可以单程序开几个服务器监听,做不同的流程。
|
6
gianni238 2020-12-12 21:02:36 +08:00 via iPhone
看上去不错
|
7
Rilimu OP @szpunk 感谢提醒,之前没想到还能这么操作😂。开了两个程序。
今晚又仔细看完了项目的 wiki 。把配置合并了。感觉这个项目把折腾 DNS 带到了新的维度。要是有教程就好了,太灵活了有些操作自己想不到。。。 |
8
Kobayashi 2020-12-15 13:36:52 +08:00
是很灵活,但好像没办法对 IP 筛选做并发:同时向 2 个 DNS 转发,根据结构是否匹配 China 地区决定是否采用结果。
|