国内最佳 dns resolver 解决方案之一

2019-03-09 13:59:47 +08:00
 faicker

greendns

项目地址:greendns

项目介绍

一个 python 写的 dns resolver,上游是现有的公共 dns resolver,不依赖 V.P.N。

原理和使用方法可以打开 github 项目页面看,应该比现有的 dns 方案都要好。

使用

最佳使用方式是用 docker stack。

再提供一个 docker stack 配置,greendns-stack

个人在 Linux 下已经用了一段时间了。

最后,欢迎讨论 && Star。

22273 次点击
所在节点    DNS
26 条回复
hinate
2019-03-09 14:02:06 +08:00
晚上部署试一下
23f0baf3
2019-03-10 17:17:08 +08:00
https://github.com/pymumu/smartdns
这个也可以考虑,支持平台多包括路由器,协议多包括 TCP,UDP,DOT
exkernel
2019-03-10 17:33:16 +08:00
@23f0baf3 这货不开源啊 不敢用
faicker
2019-03-11 13:08:34 +08:00
@hinate 用得怎么样
taobibi
2019-03-12 13:40:03 +08:00
感谢楼主,二楼的我也打算测试一下,公司已经有一台闲置服务器部署了 dnsmasq,才有 host 列表国内+5353 端口 open dns 的方式一直很不理想,这个打算试试效果
taobibi
2019-03-12 13:45:29 +08:00
有两个问题,作为 dnsmasq 上游的时候,可以在一个服务器上面同时跑么?
另外如果独立使用的话,是不是需要卸载 dnsmasq 避免端口占用。
目前单独的这台 dns 服务器大概需要维持一千多个终端的 dns 解析
ylx
2019-03-12 17:40:38 +08:00
docker 下面不知道怎么玩 lede
faicker
2019-03-13 13:00:56 +08:00
@taobibi 可以作为 dnsmasq 的上游,改下 greendns 的监听端口,比如 127.0.0.1:54。再在 dnsmasq 里配置上游是 127.0.0.1:54。
greendns 独立对外提供服务的话,要把监听改为 0.0.0.0:53。要把 dnsmasq 停掉。
faicker
2019-03-13 13:03:06 +08:00
@ylx 现在这个是 python 版本的,对于 lede 可能占用空间过大(需要 python 环境)。。
等有时间写个 golang 版本,就能解决了。
gitopen
2019-03-20 09:21:02 +08:00
正在 macOS 上用 CoreDNS。。。
learningman
2019-03-21 18:52:44 +08:00
golang 的已经有了,https://github.com/AdguardTeam/AdGuardHome
这玩意儿甚至有一个中文的 Web 前端,巨好用
faicker
2019-03-23 22:45:13 +08:00
@learningman 不一样。
adguard 是去 ad,支持 DoH/DoT/DNSCrypt,可以做到无污染。
greendns 还能做到解析出来的 IP 对于本地访问是最佳的。举个例子,访问国内网站时,是用的国内的公共 DNS 或者运营商的 DNS,这样解析出来的 IP 是最近且访问速度最快的。
LazyZhu
2019-03-25 22:35:56 +08:00
python 写的便携性和性能肯定不如 golang,overtrue 比你好用的多吧

https://github.com/shawn1m/overture
faicker
2019-03-26 13:10:33 +08:00
@LazyZhu 非也,我这个不是 dns 服务器,overture 跟 pdnsd,dnsmasq 类似,可以作为 greendns 的后端。
用我这个,既解决了 dns 污染的问题,又解决了 IP 最佳的问题。
learningman
2019-03-30 11:25:18 +08:00
部署了一下
我发现这个如果想在 Windows 上运行需要很多修改
比如说 setup.py 的 data 路径
比如说默认启动时的 route 路径
问题主要出现在不同的文件系统格式和环境变量上,希望添加兼容
LazyZhu
2019-03-31 16:24:53 +08:00
@faicker 解决 IP 最佳的问题 是 DNSChooser/smartdns(通过对解析到的 ip 逐一连接测延迟,选取最佳), 你的最多像 chinadns 那样用 chnroute 区分国内外.

@learningman
推荐两个 chinadns 的替代都比楼主的方便好用
https://github.com/GangZhuo/CleanDNS
https://github.com/cherrot/gochinadns
LazyZhu
2019-03-31 16:38:41 +08:00
@learningman
另外两个:
https://github.com/shawn1m/overture
https://github.com/sticnarf/yadd

以上四个都是类似于 chinadns 利用 chnroute 区分国内外解析的且都支持 windows.
learningman
2019-03-31 22:50:27 +08:00
@LazyZhu 我拿来给 ADGuard 做上游了
ADGuard 有前端界面实在是太友好了
faicker
2019-04-03 13:25:09 +08:00
@LazyZhu 看了一下其他的,达不到 greendns 这个效果。其他的只有部分功能。
morphyhu
2019-04-08 16:29:34 +08:00
@faicker 刚启动了一个,貌似不是很稳定。faicker/dnscrypt-proxy-2:latest 这个不停的重启。
root@localhost greendns-stack]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
063de39cbf81 faicker/dnscrypt-proxy-2:latest "dnscrypt-proxy -con …" 8 seconds ago Up 2 seconds dnscrypt_dnscrypt-proxy-2.1.1nan8qou1vdfr1bsmyic1xben
c2f0369c4a9c faicker/greendns:latest "./entrypoint.sh" 9 minutes ago Up 9 minutes dnscrypt_greendns.1.uktbjcz69gxyi2tcdi4axlfoo
6377dfad7305 vimagick/pdnsd:latest "pdnsd" 9 minutes ago Up 9 minutes dnscrypt_pdnsd.1.hwwfz77r41kd29lyz9v759tq2

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

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

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

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

© 2021 V2EX