再分享一个分流 DNS

2022-02-06 17:09:22 +08:00
 brMu

19 年的时候推荐过 smartdns ( t/629205 ),今天再推荐一个,就是 mosdns ,说下原因:

smartdns 有个 bug ,关闭测速和带有 cname 的域名都会导致 TTL 不变,进而导致这个域名的缓存不刷新,带来的影响就是动态域名不更新或正常的域名 IP 变更也不会更新。

mosdns 拥有 smartdns 的几乎所有功能,正好可以拿来替换,就是配置稍复杂,特别注意 tab 产生的空格会导致配置文件无效。

目前也用了 2 个多月了,稳定性没有问题,有兴趣的可以尝试。

10078 次点击
所在节点    分享发现
24 条回复
choutou
2022-02-06 18:00:49 +08:00
臭宝 你用什么 doh 啊 分享一下
MrCurly
2022-02-06 18:02:02 +08:00
mosdns 前几天在我的 openwrt 上折腾了下,忘了是啥问题,反正就不能用,最后还是回归 smartdns 了…
sky96111
2022-02-06 18:07:02 +08:00
AdGuardHome 关掉广告过滤拿来做 dnsmasq 上游也很不错
hzqim
2022-02-06 19:32:15 +08:00
#Dnsmasq 好像只能单线程查询,性能较弱,添加正则查询用于分流
#Adguard Home 是刚需,大缓存,可修改 TTL ,拦截广告追踪
#目前中国移动的 IPV6 已不错

我的方案:
Client -> AdH(listen:127.0.0.1:53) -> Dnsmasq(listen:127.0.0.1:54,CN_Upstream:127.0.0.1:55,Other_Upstream:127.0.0.1:56) -> SmartDNS(listen:127.0.0.1:55,Ali_DOH_ipv4&6;listen:127.0.0.1:56,GOOGLE_DOH_ipv4_only)
bitdepth
2022-02-06 19:40:23 +08:00
那給作者報 bug 啊
ZeroClover
2022-02-06 19:57:02 +08:00
@hzqim 都有 AdGuardHome 了,看不懂 dnsmasq 存在的意义是什么
hzqim
2022-02-06 22:55:15 +08:00
@ZeroClover 谢谢你的质疑。
本方案中的 Dnsmasq 打了正则补丁,能根据域名关键字(不局限于 example.com 的形式)匹配上游 DNS 服务器。非常方便定制自己的域名列表。
看了 AdGuardHome 的 wiki ,它也能分流。但不能匹配关键字,只能匹配合法的域名或泛域名。虽有现成的 list ,但体积都在 1MiB 左右。
sky96111
2022-02-06 23:41:21 +08:00
@ZeroClover OpenWrt 只有用内置的 dnsmasq 的时候,luci 主机名命名和本地主机名解析 IP 地址才有效。不然多一次查询开销谁乐意
yaott2020
2022-02-06 23:54:55 +08:00
这个不错,我一直在用。主要是支持 if ,复杂操作都可以胜任
zro
2022-02-07 00:13:47 +08:00
一直嫌这个配置有点复杂,没开始用。。有没有默认配置的模板啊?😁
carrionlee
2022-02-07 08:52:17 +08:00
我已经稳定使用半年多了~~
brMu
2022-02-07 09:43:29 +08:00
@zro 这是我的配置,规则是 gfwlist 域名用远程 DNS 解析,其他域名用本地 DNS 解析,以本地为优先,确保不会将本地域名解析到国外,个别需要用远程 DNS 解析的放到 mylist 列表。

log:
level: info
file: '/tmp/mosdns.log'

plugin:
- tag: server
type: server
args:
entry:
- hosts
- mem_cache
- main_sequence
server:
- protocol: udp
addr: 127.0.0.1:53
- protocol: udp
addr: 192.168.2.1:53
- protocol: tcp
addr: 127.0.0.1:53
- protocol: tcp
addr: 192.168.2.1:53

- tag: 'mem_cache'
type: 'cache'
args:
size: 65536
lazy_cache_ttl: 259200
lazy_cache_reply_ttl: 5

- tag: 'modify_ttl'
type: 'ttl'
args:
minimal_ttl: 300
maximum_ttl: 3600

- tag: main_sequence
type: sequence
args:
exec:
- if:
- gfwlist
exec:
- _prefer_ipv4
- forward_google
- ipset
- modify_ttl
- _return

- if:
- '!gfwlist'
exec:
- _prefer_ipv4
- forward_cn
- modify_ttl
- _return


- tag: forward_cn
type: forward
args:
upstream:
- addr: tls://dns.pub
- addr: tls://223.5.5.5
bootstrap:
- 119.29.29.29
- 223.5.5.5

- tag: forward_google
type: fast_forward
args:
upstream:
- addr: tcp://8.8.8.8
- addr: tcp://1.1.1.1
idle_timeout: 60

- tag: 'ipset'
type: 'ipset'
args:
set_name4: 'gfwlist'
set_name6: ''
mask4: 0
mask6: 0

- tag: gfwlist
type: query_matcher
args:
domain:
- 'ext:./gfwlist.conf'
- 'ext:./mylist.conf'

- tag: 'hosts'
type: 'hosts'
args:
hosts:
- 'ext:./hosts'
moxuanyuan
2022-02-07 10:01:19 +08:00
之前在軟路由 op 中折騰 smartdns ,過年前重裝了 op ,沒配置 smartdns ,只在 Turbo ACC 中開了 DNS 缓存,感覺沒什麼區別。。現在不明白當初爲什麼要折騰 dns 。。。
brMu
2022-02-07 10:21:33 +08:00
@bitdepth 报过 bug ,作者好久没更新了,不知道什么原因

@moxuanyuan 主要是用来分流、超长时间缓存、并发查询、修改 TTL 、DoT ,如果没有这些特殊需求,确实不用折腾的
wagsoft
2022-02-07 10:25:51 +08:00
捣鼓 DNS 的目的是啥?
难道能直连 GFW 不让连的?
moxuanyuan
2022-02-07 10:43:34 +08:00
@brMu #14 op 中的出国软件都自带 dns 分流和缓存。。超长时间缓存,并发查询、修改 TTL 、DoT ,感觉都是伪需求。。
Rilimu
2022-02-07 12:43:15 +08:00
在用。神器。

if 很灵活。有需要直接 if 。一个程序解决,不用套娃其他 dns 。而且可以 IP 分流。

个人感觉单域名分流是大坑。域名是可以随便注册和改 IP 的,所有的域名表其实都是大佬们收集的。所以域名表理论上是不可能全的而且变动很大。所以可能有很多域名都被错误分流了。但人们只会感觉网慢了但不知道原因。IP 可是严格分配制的。域名顶多能白名单分流。只有 IP 才能地域分流。

用域名来地域分流,不在域名表里的域名能不能正确分流全靠运气。

曾经也是 adh yyds ,现在换了,就知道 ip 分流多有用了。

还有 redis 外部缓存也是神技,要多大有多大,重启路由都不怕。
Rilimu
2022-02-07 12:45:07 +08:00
@zro 有模板啊,wiki 里面,现成的分流配置,复制粘贴直接用。
Rilimu
2022-02-07 12:53:59 +08:00
配置确实难。但是作者还有个不用配置的 mosdns-cn 。以 cn 结尾没错就那个意思。我跟我朋友都推荐这个。自动安装开箱就用。不想折腾的可以去看看。
brMu
2022-02-07 16:09:29 +08:00
@moxuanyuan 那还真不适合你,对你来说是就是伪需求,但对于别人来说真不是

@Rilimu IP 分流也用过,最大的问题就是会有误判,比如米家会判断到欧洲、华为有些 app 也会分流到国外

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

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

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

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

© 2021 V2EX