国内最佳 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。

22294 次点击
所在节点    DNS
26 条回复
morphyhu
2019-04-08 16:38:11 +08:00
[2019-04-08 08:29:54] [INFO] Loading source information from URL [https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md]
[2019-04-08 08:29:56] [INFO] Loading source information from URL [https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md.minisig]
[2019-04-08 08:29:58] [INFO] Loading from [https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md] failed
[2019-04-08 08:29:58] [INFO] Loading source information from URL [https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md]
[2019-04-08 08:30:00] [INFO] Loading source information from URL [https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md.minisig]
[2019-04-08 08:30:02] [INFO] Loading from [https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md] failed
[2019-04-08 08:30:02] [CRITICAL] Unable to use source [public-resolvers]: [read udp 192.168.216.130:50367->223.5.5.5:53: i/o timeout]
[2019-04-08 08:30:02] [FATAL] No servers configured

貌似是公司屏蔽了第三方 DNS 导致。

有个新问题 监听地址如何改为 0.0.0.0
udp 0 0 127.0.0.1:53 0.0.0.0:* 4771/python
faicker
2019-04-09 13:21:51 +08:00
@morphyhu 在 greendns.env 里添加一行 LISTEN=0.0.0.0:53
然后重新 deploy,
docker stack rm dnscrypt
docker stack deploy -c ./dnscrypt.yml dnscrypt
Kobayashi
2019-06-10 17:17:15 +08:00
@LazyZhu 这个 yadd 不错,IP 分流外加上游转发(支持 TCP 和 TLS ),看来可以替换 ChinaDNS。因为 overture 好像还不支持导入多个配置,准备暂时 dnsmasq+yadd。

Smartdns 对于解析结果测速不错,但是防不了污染的。它所采取的方案是 IP 黑名单,这个根本不靠谱。另外一个方案,检查结果的 edns option 信息,也只对境外 DNS 返回结果有效。目前有效的防污染方案还是 IP 分流对结果过滤,即要求境内 DNS 返回结果为境内 IP,境外 DNS 返回结果为境外 IP。
Kobayashi
2019-06-10 17:35:24 +08:00
从功能上看,greendns 好像和 overture, yadd 等并没有太大区别,CDN 友好就是根据 IP 分流选取结果吧。楼上 LazyZhu 举出的几个都带有 IP 分流查询,毕竟大家都是借鉴 ChinaDNS。有些还内置了 TCP 和 TLS 转发支持,也就是内置了防污染查询策略。

另外,楼主这个作品是 forwarding DNS,并不是 recursive DNS。
NyaMisty
2020-02-14 14:10:06 +08:00
我想问问这个 greendns 到底原理是什么。顺便 github 上面写的是什么玩意,矩阵既然都标出来 abcd 了我倒是想知道下面说的 ac ab bc bd 都是什么东西。

Ref: Github 上 readme 是这么写的
```
First filter poisoned ip with blocked iplist with -b argument.
Second,
| A record is local | A record is foreign
local and poisoned dns server | a | b
unpoisoned dns server | c | d

From the matrix, we get the result as follows,
ac: use local dns server result
ad: use local dns server result
bc: impossible. use unpoisoned dns server result
bd: use unpoisoned dns server result

Conclusion,
Using local dns server result if returned A record is local.
Using unpoisoned dns server result if returned A record is Foreign.
```
NyaMisty
2020-02-14 14:17:57 +08:00
@NyaMisty 没事了是我 zz 了)

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

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

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

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

© 2021 V2EX