overture: DNS 分流净化器(更新 1.2.0)

2017-01-15 12:33:05 +08:00
 holyshawn

Github 项目传送门: https://github.com/holyshawn/overture

1.0.0 版本介绍传送门: https://www.v2ex.com/t/331100

1.1.0 版本介绍传送门: https://www.v2ex.com/t/332764

二进制下载地址: https://github.com/holyshawn/overture/releases

添加了 TTL 最小值的设定,在绝大多数情况下, DNS 结果对用户而言在很长一段时间都是不变的,手动合适的 TTL 可以让浏览器乃至于 dnsmasq 的缓存更有效率,实现秒解析。我设了一段时间 604800 (一周) ,感觉良好。( -1 为禁用此特性)

添加了 edns-client-subnet 的支持,可以为支持此特性的如 119.29.29.29 提供指定的或者客户端的 IP 地址,从而使 DNS 返回的 CDN 地址更加准确,提升上网的速度。( auto 尝试使用客户端 IP 地址,如果不是公网地址使用服务器的 IP 地址, custom 完全使用自定义的 IP 地址)

其他功能参见 README 。

配置文件语法有更改,请参照新版配置文件修改。

12726 次点击
所在节点    DNS
79 条回复
chuhemiao
2017-01-16 11:04:53 +08:00
chemandy
2017-01-16 12:13:07 +08:00
战略性 SEO
dewi
2017-01-16 12:55:56 +08:00
战略性 爆肛门
metowolf
2017-01-16 22:35:28 +08:00
战略性 收藏
mritd
2017-01-17 07:57:10 +08:00
战略性 装逼
SFsx
2017-01-17 13:03:07 +08:00
战略性 +1s
missdeer
2017-01-17 14:24:44 +08:00
怎么知道一个 DNS server 是否支持 edns-client-subnet ?
JackyBao
2017-01-17 14:46:02 +08:00
战略性 继续使用 pdnsd
holyshawn
2017-01-17 14:59:03 +08:00
@missdeer 一般没有明确说明支持的都是不支持,可以 patch dig 直接测试,参见: http://noops.me/?p=653
maojy1989
2017-01-17 15:24:36 +08:00
{
"BindAddress": ":53",
"PrimaryDNSAddress": "45.76.145.234:5533",
"PrimaryDNSProtocol": "udp",
"AlternativeDNSAddress": "208.67.220.220:443",
"AlternativeDNSProtocol": "tcp",
"Timeout": 6,
"RedirectIPv6Record": true,
"IPNetworkFilePath": "./china_ip_list.txt",
"DomainFilePath": "./gfwlist.txt",
"DomainBase64Decode": true,
"MinimumTTL": -1,
"EDNSClientSubnetPolicy": "disable",
"EDNSClientSubnetIP": ""
}
试了一下挺好用的,主 dns 是我在 VPS 上用这个软件搭的, EDNSClientSubnetPolicy 设置了 auto , TTL 3600 ,主 DNS 跟备用 DNS 设置的 Google 的 dns ,就是 8.8.8.8 跟 8.8.4.4 , ip 设置了禁止 ping ,有兴趣的可以试一下,国内用不了 Google 的 DNS ,要不然也不用这么麻烦了
maojy1989
2017-01-17 17:27:45 +08:00
想问楼主一个问题
{
"BindAddress": ":5533",
"PrimaryDNSAddress": "8.8.8.8:53",
"PrimaryDNSProtocol": "tcp",
"AlternativeDNSAddress": "208.67.222.222:443",
"AlternativeDNSProtocol": "tcp",
"Timeout": 6,
"RedirectIPv6Record": true,
"IPNetworkFilePath": "./china_ip_list.txt",
"DomainFilePath": "./gfwlist.txt",
"DomainBase64Decode": true,
"MinimumTTL": -1,
"EDNSClientSubnetPolicy": "auto",
"EDNSClientSubnetIP": ""
}

这是我在 VPS 上配置文件,访问别的域名都没有问题,但是当我访问 home.console.aliyun.comslbnew.console.aliyun.com 这一类的域名我本地就会出现

WARN[0209] Get dns response failed: Response message is nil, maybe timeout

时间长了以后重新启动程序就变成了

WARN[0002] DNS lookup for external ip failed, please check your internet configuration:read udp 192.168.50.245:57128->45.76.145.234:5533: i/o timeout

这是什么原因导致的呢?
holyshawn
2017-01-17 19:58:24 +08:00
@maojy1989 已知若开启 EDNSClientSubnet ,在 debian8 下用 dig 工具查询域名就会报:
WARN[0209] Get dns response failed: Response message is nil, maybe timeout
但正常使用其他程序不会影响。 OSX 下 dig 没有这个问题。
下面的问题是程序查询不了你设定的 PrimaryDNS 45.76.145.234:553 ,查询超时。外部 IP 是通过查询 ipip.cn 的数据获取的, ipip.cn 本身需要域名解析,默认是用 PrimaryDNS 。
maojy1989
2017-01-17 20:14:11 +08:00
@holyshawn 服务器是 centos7 我本机是 MacOS 如果主 DNS 用我的服务器就查询不到 home.console.aliyun.com 这类域名,不会返回结果,然后就是超时,但是在服务器上是能查到的,其他的域名全部都是正常的,如果服务器关闭 EDNSClientSubnet 的话能正常解析这个域名,但是国内的网站会被解析成国外的 IP ,所有没办法只能把我服务器的 IP 设置为备用 DNS 了
holyshawn
2017-01-17 21:39:49 +08:00
@maojy1989 我这里用 119.29.29.29 做 PrimaryDNS 完全正常,无法复现你的问题。
lybtongji
2017-01-18 10:43:38 +08:00
来看看, mark
iyuyue
2017-02-02 14:45:01 +08:00
请教一个问题。某些海外的 CDN ,虽然没有国内节点,但有相对靠近的亚洲节点。 overture 目前的方案可能无法在这种情况下得到最优的 IP 。能否考虑让 Alternative DNS 也支持 edns-client-subnet ?
holyshawn
2017-02-04 19:41:10 +08:00
@iyuyue #76 一般支持 edns-client-subnet 的海外公共 DNS 都支持按照 IP 来源进行应答,你说的情况并不至于。目前不让 Alternative DNS 支持这个特性主要是考虑配置简单,毕竟海外 CDN 节点也不是近国内就访问的快,不过如果有这个需求的话,下个版本可以考虑单独把开关做出来。
helixzz
2017-03-23 11:44:00 +08:00
强烈关注……
jmxct520
364 天前
老板,6 年了,你项目好久没有 release 。。。

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

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

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

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

© 2021 V2EX