DNS 分流防污染软件 mos-chinadns 踩坑分享

2020 年 7 月 11 日
 Rilimu
很好用的软件。配置起来算是最简单的了。可惜是新软件详细教程很少。默认配置文件直接拿来用还有坑。之前 openwrt 摸爬滚打终于成功配置上了。在这里给 v 友分享一下踩过的坑。

虽然“开箱即用”,但配置文件里:
local 默认是 223.5.5.5 udp,不能防运营商劫持。要换 doh 。
remote 默认是 1.0.0.1 dot 。丢包超严重,基本上不能用。由于没有能稳定直连的服务器,最后选择了通过 socks5 走代理。

openwrt 的坑:
默认监听地址会和 dnsmasq 冲突,要改。
必须要装 ca-bundle 包。否则 doh 和 dot 都会报错不能连接。(太坑了,找了很久原因,最后从隔壁 smartdns 看到了....

windows:
除了配置文件默认服务器要改,目前没有遇到其他坑。用作者的脚本一键安装就行了。👍

最后,Windows 上运行一个,防止出门连其他 WiFi 的时候被劫持。路由器上和 smartdns 一起用。国内 CDN 友好而且还能分流防污染。

太香了,完全不后悔折腾。感谢开源大佬们的无私奉献。

现在就是还不知道有什么办法能自动更新大陆 IP 和域名表。每次都是隔一周手动更新然后重启。
4620 次点击
所在节点    DNS
45 条回复
shikkoku
2020 年 7 月 11 日
默认监听端口 53 被占用的问题,要把 dnsmaq 的端口改成 0 禁用。
shikkoku
2020 年 7 月 11 日
local 我记得默认配置是同时配置了 dot 和 doh 的。
taikobo
2020 年 7 月 11 日
能详细介绍一下和 smartdns 怎么一起用么
Rilimu
2020 年 7 月 11 日
@shikkoku 没。虽然默认 dot 和 doh 参数都填好了。但 protocol 是`udp`....极具迷惑性....

@terrytw smartdns 不要设置分流,只用国内 dns 服务器。然后设置成 mos-chinadns 的 local 服务器。就可以了。
taikobo
2020 年 7 月 11 日
@Rilimu 原来如此,谢谢分享
之前试过 openwrt 自带的 https-dns-proxy,总有些奇怪的问题
现在试试这个看看
zro
2020 年 7 月 11 日
@terrytw #5 hdp 我都弃用了,还是 stubby 好用,不知 mos-chinadns 跟开启 add-subnet 的 dnsmasq 比,会好在哪?🤔
看起来好像差别不大,而且空间占用得还大。。
shikkoku
2020 年 7 月 11 日
我装了 ca-bundle 都不行,阿里的连接改成 dot 或者 doh 都解析不了。

用 wiki 的命令测试会这样提示

root@OpenWrt:~# mos-chinadns -c config.yaml -dir2exe
INFO[0000] main: mos-chinadns ver: v1.2.0-0-g5e173f3
INFO[0000] main: arch: amd64 os: linux
INFO[0000] main: current working directory: /usr/bin
FATA[0000] main: can not load config file, open config.yaml: no such file or directory

配置文件路径是
/etc/mos-chinadns/config.yaml
/etc/mos-chinadns/chn.list
/etc/mos-chinadns/chn_domain.list
AoTmmy
2020 年 7 月 11 日
smartdns 也能防污染,用 blacklist
shikkoku
2020 年 7 月 11 日
确实有点坑踩的,我试着 DOH 工作不太正常去问作者,作者才告诉我,addr: "223.5.5.5:53"上的端口号要随 dns 类型改,例如 DoT 是 853,DoH 是 443 。虽然我应该留意到下面的 remote 配置里 1.0.0.1 的端口号默认是用了 853 的并且类型是 DoT 的。
Rilimu
2020 年 7 月 11 日
我主要是分流用。

真的比我之前用的 overture 和 dnsmasq 分流方案都高效的多。在我小路由上,overture ip+域名分流最卡,有请求时 30%CPU 占用。dnsmasq 只能域名分流,占 20%。前两者请求多了容易直接 100%。mos-chinadns 最多只见到 2%占用(怪不得作者的介绍页 20%都在强调高性能,虽然看不懂...

@zro 感觉性能上确实有点区别。

而且到目前为止分流还没出错过。dnsmasq 经常出错。

也试过 chinadns-ng,但要编译太难了放弃了。

就是作者的教程什么都没写,全是坑啊啊啊啊啊。你这坑我也踩了过..... @shikkoku
shikkoku
2020 年 7 月 11 日
@Rilimu #10

每个人的使用环境都不一样。Openwrt 的碎片化也很严重。全都写进 wiki 不现实。

相信对于已经开始折腾 dns 的玩家来说,这些都是小问题。——IrineSistiana

作者原话。
Rilimu
2020 年 7 月 11 日
@zro #11

确实,最后发现踩到的坑都是常识问题。对小白可能不友好。

刨去踩的坑。配置完其实很快很简单。
zro
2020 年 7 月 11 日
@Rilimu #10 我一直在用 dnsmasq,没发现会出什么错,开启 add-subnet 都不用考虑分流,上游是支持 EDNS 的 DNS 就可以,挂代理拿到的结果跟直连的结果可以是一样的~~
Rilimu
2020 年 7 月 11 日
@zro 还有这种操作?

大佬,能详细说一下嘛。👀
zro
2020 年 7 月 11 日
@Rilimu #14 在 /etc/dnsmasq.conf 添加“add-subnet=x.x.x.x/24,x.x.x.x/24”,x.x.x.x 换成你本省 ISP 的 IP,第二个 x.x.x.x/24 可以不要,也可以换成 X::Y:Z/64 之类的本省 IPv6,之后保存退出重启 dnsmasq~~

至于上游 DNS,我是首选 Google 的,其次是 NextDNS,因为 Google 的 EDNS 貌似支持的比较好。。
taikobo
2020 年 7 月 11 日
同样遇到坑,分享一下
如果是配合 luci 的科学软件的话,卸载了 chinadns 之后原来的 chnroute.txt 也被一并删除了,所以绕过的列表要改
改成 chn.list 是可以的,但是要把 chn.list 里所有 ipv6 的地址删除,否则 ss-rules 一直报错
gesse
2020 年 7 月 12 日
作者已经这两天被你们“气得删库跑路了” 😁

“This project is no longer maintained.”
evilvoy
2020 年 7 月 12 日
看到楼上我笑喷了
natsji
2020 年 7 月 12 日
ssplus 不是自带 dns 分流吗,非大陆的直接从服务器查询 dns
natsji
2020 年 7 月 12 日

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

https://study.congcong.us/t/689092

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

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

© 2021 V2EX