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

2017-02-16 11:42:40 +08:00
 holyshawn

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

Binary 下载地址: https://github.com/holyshawn/overture/releases

添加了多上游 DNS 功能,自动选择最快应答。

添加了缓存功能,如果开启了 edns-client-subnet ,则命中时就会考虑到缓存时所用的 ip 。

添加了本地 Hosts 支持。

如需开启 edns-client-subnet,外网 IP 请手动填写,策略是如果访问 IP 是内网 IP 就用填的外网 IP,否则用访问 IP 进行查询。原先自动填写不太稳定而且耗时,这版本就取消了。

其他功能参见 README 。

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

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

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

1.2.0 版本介绍传送门: https://www.v2ex.com/t/334691

14782 次点击
所在节点    DNS
65 条回复
kiman
2017-02-20 13:41:34 +08:00
非常好用,项目开始用到现在还在用,望继续给力更新。
maojy1989
2017-02-20 17:09:33 +08:00
再问大神一个问题,我现在使用 DNS 分流的需求是这样的:
我在本地做了流量分流,国内 IP 走正常线路,国外走单独通道,这个时候我需要的是一个 CDN 友好并且准确的 DNS
我在本地用 overture 设置主 DNS 为一个 CDN 友好的 DNS ,然后国外的域名转到备用 DNS 解析。

备用 DNS 是我在 VPS 上的 overture ,因为流量会通过远程服务器,所以我不需要 DNS 按照我本地的 IP 来优化解析结果。

直接返回远程服务器的 DNS 解析是最好的,但是我把 VPS 上面的 overture 配置改成使用服务器本地的 DNS ,并且关掉 EDNS 却不能解析了,会一直提示:
WARN[0061] Maybe your primary dns server does not support edns client subnet
主 DNS 使用 8.8.8.8 备用 DNS 用服务器本地的也是这个提示,然后不能解析国外的域名

换成 8.8.8.8 关闭 EDNS 能够正确返回不按本地 IP 优化的解析结果,但是跟服务器本地 DNS 的解析结果还是不一致,这个问题能够优化一下吗
holyshawn
2017-02-20 17:27:14 +08:00
@maojy1989 建议 VPS 上直接用 dnsmasq ,把 alternative dns 填上 vps 的地址即可,关掉 edns 。不建议把 overture 套起来用。
suitrue
2017-02-23 18:05:07 +08:00
多上游 DNS 功能 要怎么配置使用?由于我的 primary dns 经常很久不反应,我希望添加多个 DNS 。但找了半天也没看到怎么用这个功能。
suitrue
2017-02-23 19:44:58 +08:00
我觉得副 DNS 可以不要等待主 DNS 解析完再开始,因为对很多国外网站,主 DNS 解析的非常慢,这样即使副 DNS 解析的比较快,最后的时间也是要两者相加。
holyshawn
2017-02-24 09:36:48 +08:00
@suitrue #24 上游 DNS 的配置是一个 JSON 数组,自行添加即可。
@suitrue #25 未来值得考虑,算是一个改进,不过如果这样目前的 EDNSClientSubnet 的缓存逻辑有一些问题,需要一些处理。
suitrue
2017-02-24 18:06:15 +08:00
@holyshawn 感谢作者回复,我把副 DNS 复制一遍也添加到 Primary DNS 里就可以实现之前的想法了。(关于 EDNS 我不太懂,反正我没开)
lybtongji
2017-03-12 22:07:46 +08:00
你好,我想问下 overture 这样配置是否正确,目的是 IPv4 地址通过 8.8.8.8 查询, IPv6 地址通过 2001:4860:4860::8888 查询。

overture 配置: https://ooo.0o0.ooo/2017/03/12/58c553ee25443.png

但发现查询结果并未如预期一样。

直接查询 Google DNS 能够返回 ping 值各自最小的 IPv4 和 IPv6 地址:
https://ooo.0o0.ooo/2017/03/12/58c553ee9d61a.png
https://ooo.0o0.ooo/2017/03/12/58c553eea6ee9.png

但通过 overture 查询获得的 IPv4 地址并非 8.8.8.8 返回的最佳地址:
https://ooo.0o0.ooo/2017/03/12/58c553ef22931.png

返回的 IPv6 地址正常:
https://ooo.0o0.ooo/2017/03/12/58c553ef25cbd.png

IPv4 ping 值对比:
https://ooo.0o0.ooo/2017/03/12/58c5560602017.png
https://ooo.0o0.ooo/2017/03/12/58c556067be4b.png
holyshawn
2017-03-13 12:24:41 +08:00
@lybtongji 按照你的配置,查询 www.google.com 应该都是走 Alternative DNS 的,所以不一样,详细流程请看 README 。 按照默认配置, Primary DNS 最好找个国内的 DNS 吧, CDN 友好一些。
lybtongji
2017-03-13 22:23:44 +08:00
@holyshawn 那有什么办法查询 www.google.com 的 IPv4 地址走 Primary DNS , IPv6 地址走 Alternative DNS 么?因为用的 V6VPN
holyshawn
2017-03-14 22:22:27 +08:00
@lybtongji #30 IPv6 地址 在绝大多数操作系统中都是优先的,不需要这么麻烦, IPv4 的地址无所谓。
huanter
2017-03-23 13:52:22 +08:00
@holyshawn 这个 HostsFile 只能一个文件吗?
能否设成不同的,比如这样:
"HostsFile": "./hosts_sample1",
"HostsFile": "./hosts_sample2",
holyshawn
2017-03-23 14:31:28 +08:00
@huanter #32 目前不行,多个文件请并在一起。
huanter
2017-04-05 15:25:23 +08:00
@holyshawn overture 怎么设置 SNI PROXY 的呢?
holyshawn
2017-04-06 12:53:30 +08:00
@huanter #34 overture 只提供 DNS 相关的功能,不支持 SNI PROXY
huanter
2017-04-14 14:52:49 +08:00
@holyshawn overture 怎么将日志输出到文件呢?
holyshawn
2017-04-14 23:21:32 +08:00
@huanter #36 目前还没有这个功能,可以考虑未来加,可以考虑用 supervisor 等进程管理软件导出,或者 nohup 运行。
aruisi
2017-04-20 23:16:10 +08:00
请问能否把 2 个 overture 串起来用?
c 是客户机, a 主机安装 overture , b 主机也安装 overture ,然后 b 收到的查询请求递归到 a , a 在递归到 8.8.8.8
那么这样一来,传递给 8.8.8.8 的源 ip 是 c 还是 b 还是 a 呢?
bobopu
2017-04-21 11:26:20 +08:00
有没有进行下压测 QPS ,并与 bind 和 unbound 对比呢?
另,有否考虑过支持导入 bind 的 zone 文件呢?
bobopu
2017-04-21 11:29:15 +08:00
另,开启*通配符后对 cpu 内存的占用能有多大呢?

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

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

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

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

© 2021 V2EX