推荐一个 smartdns 的替代品 mosdns

2023-02-13 09:27:17 +08:00
 YGBlvcAK
smartdns 用了 3 、4 年,mosdns 用了 2 年,非常感谢 2 位大佬!

用 mosdns 替代 smartdns ,主要是因为 mosdns 可以实现国内国外域名分流的功能,对个人来说 mosdns 最核心功能是:
1.国内已经域名 List 用国内 DNS 解析,直连访问
2.国外已经域名 List 用国外 DNS 解析,添加到 ipset ,走代理访问
3.对于未知域名的处理是 mosdns 的核心,未知域名用国内国外 DNS 同时查询,如果国内 DNS 返回国内 IP ,则直接返回给客户端,如果返回非国内 IP ,则用国外 DNS 返回的结果,同时添加到 ipset 中,走代理访问,这样就实现了比如美国大使馆、美国大学这些未封但访问慢的网站走代理

以上功能就可以实现全球所有域名以最优方式访问,smartdns 虽然也可以按域名分流查询,但未知域名无法按逻辑判断来处理,目前也只有 mosdns 可以实现,mosdns 从 v3 开始用,到现在的 v5 ,也已经非常稳定,如果有同样需求的,十分推荐

还有其他各种功能就不详说了:hosts 、redirect 、广告过滤、Dot 、Doh 、lazy cache 、ecs 、mark 、ipv4 优先、屏蔽 qtype65 、缓存持久化...

但实际上 mosdns 的配置还是有那么一点复杂的,没办法,想要实现各种功能肯定不会是纯傻瓜化的,下面是我的配置模板可以参考:
https://github.com/IrineSistiana/mosdns/discussions/605
12886 次点击
所在节点    分享发现
28 条回复
azure2023us
2023-02-13 09:37:20 +08:00
coredns
yyysuo
2023-02-13 09:47:17 +08:00
感谢分享,楼主帮忙看一下,这个 luci 的配置,能实现你的核心功能 3 吗?

https://github.com/sbwml/luci-app-mosdns/blob/v5-dev/luci-app-mosdns/root/usr/share/mosdns/default.yaml
yyysuo
2023-02-13 09:55:23 +08:00
看了一下你的配置文件,没有用 geosite 了,sbwml 大佬的 luci v5 分支,可以直接使用 geosite dat 文件,fork 一下,自己发布就会自动编译。
https://github.com/sbwml/luci-app-mosdns/tree/v5-dev
XIU2
2023-02-13 10:38:12 +08:00
我用 mosdns 就是为了实现 CDN 优选 IP 加速访问。
目前已经实现了 Cloudflare CDN 、AWS Cloudfront CDN 、Akamai CDN 指定为优选 IP 。
唯独 Fastly CDN 比较特殊,有规律但末尾数字不同,难以直接指定为某一个优选 IP 。。。

其他 CDN 的话,平时似乎很少能碰到,就懒得去折腾了~

当然,我也折腾了一些其他需求,比如国内外分流、去广告什么的。
gbw1992
2023-02-13 11:08:43 +08:00
又发现了一个好玩的东西(新手)
在树莓派上尝试跑了一下,报了
fail to load config, failed to read config: While parsing config: yaml: line 25: mapping values are not allowed in this context
是不是还需要其他配置插件和参数?
kongkongyzt
2023-02-13 11:50:46 +08:00
我也是用的 mosdns ,确实好评+1
keyfunc
2023-02-13 12:31:41 +08:00
@XIU2 能分享下配置吗?
XIU2
2023-02-13 12:32:35 +08:00
@gbw1992 你好歹翻译看一下呀,这个报错是配置文件第 25 行有错误(比如 格式 什么的)
mDRjsArlz6c6kxad
2023-02-13 12:32:59 +08:00
码一下,回头研究
anguiao
2023-02-13 12:37:27 +08:00
和我的需求一致,之前弄了一半,最近心思不在上面了就没有继续。mark 一下,回头用起来。
licolnlee886
2023-02-13 12:38:31 +08:00
@XIU2 有配置可以分享下吗
XIU2
2023-02-13 12:39:14 +08:00
@keyfunc 你可以参考这个 Issues:
https://github.com/XIU2/CloudflareSpeedTest/issues/115

也是这个人在我的项目里发了后我才注意到 mosdns 的,使用后我就顺便帮其完善了,方便新手使用。

其中我贴出了 Cloudflare CDN 自选 IP 的配置示例,其他 CDN 也就是复制粘贴重复 response_matcher 、blackhole 组合罢了,另外这个示例为了小白方便且 IP 段少,所以我是直接将 Cloudflare CDN 的 IP 段写到配置文件内了,但我自己的话是用 data_providers 来载入外部数据文件的。
winterbells
2023-02-13 12:40:34 +08:00
刚用上这个 /t/864322
YGBlvcAK
2023-02-13 13:00:03 +08:00
@XIU2 你的方案是这些 cdn 域名走直连(优选 ip ),不走代理,可能存在的问题是优选 ip 高峰期延迟不稳定、突然全天变慢了、突然用不了了,又要重新去找优选 ip ,当然我也用过你的工具,非常感谢!
我的方案是所有国外 ip 的域名都走代理,只要保证代理这一个点足够稳定就可以了,而且 dns 解析也是从代理发出的,获得的域名 ip 就是理论上和代理之间互通的最优 ip ,比如说我的代理在日本,国内延迟是 60ms ,那我访问所有 cf cdn 网站的延迟一般都不会超过 70ms

@yyysuo 看了下配置,解析到的 ip 是最优的,但国外 ip 是否走代理看不出来哈

@azure2023us 大致看了下,未知域名的逻辑判断应该是实现不了
5460
2023-02-13 13:16:06 +08:00
能跑在路由器上吗?
vowers
2023-02-13 15:27:12 +08:00
是比 smartdns 更智能,但是配置也更麻烦了,先马了 回头研究下把我的 smartdns 换了
wangerka
2023-02-13 16:39:05 +08:00
@5460 #15 能。我的路由器 ROM 太小了装不下,最小要 40MB ,可惜
wangerka
2023-02-13 16:44:44 +08:00
问一下 mosdns 和 openclash 共存的话,应该怎么操作呢。53 端口还是给 dnsmasq ,然后转发到 openclash 的 7874 端口,再把 openclash 的上游改成 mosdns 的端口吗,这样的话分流还是由 openclash 做,mosdns 只是作为加速
pC0oc4EbCSsJUy4W
2023-02-13 17:06:40 +08:00
openclash fake-ip 下,解析速度其实都差不多了
pagxir
2023-02-13 17:21:28 +08:00
用 pac 也很好,这是我自己用的 pac ,https://gist.github.com/pagxir/b4552da41207749a7cce6c5512aef692 仅用在 ipv4 only ,国内域名直连,国外做代理,因为 pac 不影响本地 /远端域名,所以不影响本地的 cdn 也不影响远端的 cdn ,仅仅对域名判断是国内还是国外进行分流

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

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

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

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

© 2021 V2EX