1
LGA1150 2018-01-03 01:25:16 +08:00 1
dnsmasq 配置加行 all-servers 的事……
|
2
gazeboxu OP 可能是我表述有问题,我这里说的最快的 IP 不是 DNS 返回最快的,而是实际你连通的速度是最快的(通俗点说就是 PING 值最低的),all-servers 会返回最先收到的 DNS 回应给你,这个往往不是最好,最先返回的往往是最不想要的^__^。如果用 tcpdump 跟踪过向 8.8.8.8 请求回应过程就更清楚了。这个工具最适合访问 CDN 的情形,因为 CDN 在各地方都有点,比如 AWS 的 CDN,在日本,韩国,香港都有点,有时香港快,有时日本快,有时韩国快。链接里面说得更清楚些,也有测试,可以看看。
另外 V2EX 的同学都是野猫子么? |
3
moonvstod 2018-01-03 09:05:05 +08:00
试用了,貌似解决了我遇到的一个:只要没 DNS 缓存,解析网址 dns lookup 3~4 秒的问题
|
4
gazeboxu OP 3~4 秒,什么意思? DNS Chooser 解析一个网址不可能花这么长时间的。有 1 秒超时的,即使解析一个不存在的域名也不会超过 1 秒的。
|
5
jimzhong 2018-01-03 12:55:25 +08:00
想法不错,不过通过建立 TCP 连接测速不太文明。
|
6
miaomiao888 2018-01-03 14:33:04 +08:00
@gazeboxu 哥们这想法和我想一块去了,好多年前一直在找类似的工具都没有,全是单纯取 DNS 返回最快的 IP,像 flickr,有时用香港 DNS 解析的 IP 延迟只有 20MS 左右,谢谢,用用先!
|
7
gazeboxu OP @jimzhong,其实也不算不文明,是个好问题,我在一开始实现时就考虑过这个问题。本质上讲 PING 或 TCP 建链在 IP 层都是来回几个 IP 包,PING 两个,TCP 建链三个。连通后马上关闭,同时取消其它请求。另外我也尽量减少了不必要的数据请求,上游 DNS 的返回结果做了合并处理,只有完全不同的返回结果下才要分开测速,而且同一 DNS 应答返回结果多于一个 A 记录的情况下,也只测一个,认为一组返回结果效果应该是一样的。因为本身也带有 CACHE,从 IP 包层面来看,增加的 IP 流量应该是几乎可以忽略不记的。
|
8
gazeboxu OP @miaomiao888,是呀,我在自己动手做之前也觉得应该有这种工具,但找了几天,确实没有找到,我当时上 coursera,视频完全看不动,不得以用 KXSW 的方式,但全是流量啊,总感觉不是办法。最后决定自己整一个,因为自己也要用,调研的开源项目有 N 个,NSD, Unbound, YADIFA, BIND, MaraDNS 等等,后来是基于 dnscrypt-proxy 来做的。开源项目都很好,就是对用户不太友好,我特别考虑了这点,尽量做成一键启用。其实还可以做较多的工作,比如配置放网上,给用户查询 DNS 使用情况,广告屏蔽。不过有点远了,当前也没精力搞,核心功能还是找最快的 IP。另外如果觉得好用帮助推荐给朋友用一下,有 BUG 请反馈。感谢!
|
9
gazeboxu OP @jimzhong,另外如果用普通域名解析,如果找到的 IP 完全不通还好,如果是掉包率较高的 IP,那 IP 层面引起的重传可能更可观。域名解析只是一下子,而之后才是大量数据传输,所以我真不觉得是流氓行为(比如吸血骡?),如果被认为是流氓软件真心与我的初始想法完全背离哈。
|
10
tony1016 2018-01-03 20:48:13 +08:00
确实是 dnsmasq 的一句 all-servers
|
11
venster 2018-01-03 21:12:33 +08:00
win10 17025 预览版,运行报错
应用程序: dnschooser-winclient.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常,进程终止。 异常信息: System.ArgumentException 在 System.ThrowHelper.ThrowArgumentException(System.ExceptionResource) 在 System.Collections.Generic.Dictionary`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Insert(System.__Canon, System.__Canon, Boolean) 在 dnschooser_winclient.NetworkManager.GetNICs() 在 dnschooser_winclient.ApplicationForm.update_Service_Info_Once() 在 dnschooser_winclient.ApplicationForm..ctor() 在 dnschooser_winclient.Program.Main(System.String[]) 服务正常运行。点击 client 无反应,事件日志如上记录。卸载不正常,服务删不掉,需要手工删服务 |
12
gazeboxu OP @venster,这个东东要求.Net Framework 4.6.1 以上版本,README.TXT 里有安装相关的问题。另外也可以用"dnschooser.exe --uninstall"卸载。
|
14
gazeboxu OP 那可能要查一下了,没有 client 也可以用,就是要手动,要自己设置 dns 为 127.0.0.1。抱歉
|
15
gazeboxu OP @venster,尝试改了一下,可能是你有两个网卡的描述是相同的原因,麻烦下载最新版本尝试一下。只替换 CLIENT 就可以了。https://coding.net/u/gazeboxu/p/dnschooser-pub/git/raw/master/release/dnschooser/dnschooser-winclient.exe
|
16
miaomiao888 2018-01-04 15:55:39 +08:00
如果支持非标准端口的话就可以使用一些现成的 DNS 达到防污染的效果,比如 208.67.222.222:5353/443 202.141.162.123:5353
|
17
miaomiao888 2018-01-04 16:06:50 +08:00
另外,本地 DNS 地址可以设定吗,比如 127.0.0.5
|
18
gazeboxu OP @miaomiao888,你是指上游 DNS 非标准端口么?支持的哈,配置文件里写成 ip:port 形式就可以了(需要卸载,再安装 才能生效哈),不过同一 IP 多端口要分开写哈。其实这样也是明文,要完全防污染,只有起用上游 dnscrypt,配置稍微复杂一些,可参照 dnscrypt-proxy 的文档来。127.0.0.5 ?没太懂你的意思,你是指本地 DNS 不配置成 127.0.0.1,而写成 127.0.0.5 是吧?这个现在不直接支持哈,改代码可以,我觉得意义不大哈。
|
19
gazeboxu OP 如果只是为了防污染,不需要这样的哈,当前缺省配置了 5 个游 DNS 了,2 个国内,3 个国外,再加一个自动的,除非所有 DNS 同时被污染才会有问题。而如果是为了防止劫持,那就要把上游 DNS 全换成完全可靠的,还要把自动的那个强制禁用了才行哈。
|
20
miaomiao888 2018-01-04 18:48:17 +08:00
@gazeboxu 谢谢,支持非标准端口非常不错,目前来说靠非标准端口防污染还是比较方便的;
主要因为 dnschooser 还没 HOSTS 之类的功能,所以目前我需要与其他 DNS 工具配合使用,比如 Acrylic DNS Proxy ; 而 Acrylic DNS Proxy 已经占用了默认的 127.0.0.1,所以希望能自定义(不过我已经用 16 进制编辑器改成 5 发现也能正常运行); 另外建议在 dnschooser 启动时不自动添加系统原有的 DNS,内置的几组已经足够了,而且我发现和 Acrylic DNS Proxy 一起使用会导致 Acrylic 的解析日志重复很长,怀疑 dnschooser 把 127.0.0.1 添加进去导致的循环解析,总之希望能有更多能自定义的地方。:) |
21
miaomiao888 2018-01-04 18:59:42 +08:00
所有的参数都能在配置文件里定义,然后用批处理安装 /启动就行,只跑一个进程,这类工具其实也不常用到 GUI,GUI 感觉有点多余!
发现卸载需要调用 GUI,像 V2RAY 那种主程序和 GUI 分开的挺不错 |
22
gazeboxu OP @miaomiao888,如果要禁用本机原始的 DNS,在 conf 文件里添加 OriginalResolverAddress disabled,停止 /启动一下就可以了。自动添加本机原始 DNS 的原因是有时本地局域网有特殊解析需要。
嗯,这个所有的配置都是通过配置文件来的,GUI 的主要作用就是找到网卡并设置 DNS 为 127.0.0.1,然后监控一些不正常状态(比如网卡 DNS 设置成 127.0.0.1,但服务没有运行或要求自动启用,但到了连接一个新 WIFI 又没有自动设置等等)。主要是你是属于对计算机比较熟,喜欢折腾的同学,一般用户如果没有 GUI,可能就很难用了。 卸载调用 GUI 的原因也是需要将本机原来的 DNS 还原,用服务来做这个,不太合适,因为服务本身要尽量做到跨平台。 另外如果觉得好用,麻烦帮推荐一下,感谢! |
23
gazeboxu OP 我刚才查了一下 Acrylic DNS Proxy,主要就是 CACHE 么?如果是这个的话,不需要哈,dnschooser 自带了 cache 的,你可以仔细看一下我简书上的那个文章。不过 caceh 是完全遵守 TTL 规范的,一般域名在 1 至 2 分钟内,但就 cache 来说,足够用了。你也可以尝试解析同一个域名两次,第二次是立即返回的。且 WINDOWS 本身还带有 cache (用 ipconfig/displaydns 可查看)。
|
25
miaomiao888 2018-01-05 14:24:59 +08:00
@gazeboxu Acrylic DNS Proxy 的缓存是一方面,可以自行设置缓存更新周期,HOSTS 也比较常用,支持通配符,不同域名支持使用不同的 DNS 进行解析,比如有的域名需要用内网 DNS 解析,或者让双栈域名只解析 IPV4
当然目前 dnschooser 已经非常不错也够用了,只不过我需求略多所以需要搭配。 |
26
kevinlicy 2018-01-06 01:12:07 +08:00
这个很好用,多谢作者!
|
27
a86913179 2018-01-06 12:56:40 +08:00
确实比 dnsmasq 的 all-servers 有用多了
|
28
wzw 2018-01-08 09:32:10 +08:00
多谢多谢, 我立刻试试
|
29
leobin 2018-01-08 15:02:40 +08:00
很赞,有这种寻求很久了
|
30
allin1 2018-01-08 17:36:57 +08:00
发现一个小问题,conf 文件改动过就不能安装服务了。恢复原样又可以了
|
32
allin1 2018-01-08 20:02:22 +08:00
对哦,是我的问题。我是用记事本打开,没看到后面的符号。现在解决了。可以安装了
|
33
acca 2018-02-10 20:41:28 +08:00
软件被 bitdefender 报毒了
|
34
miaomiao888 2018-02-17 23:19:17 +08:00 1
用到现在感觉非常不错,顺便催下增加 TCP,202.14.67.4 这类港台 DNS 用 TCP 解析 TUMBLR、FLICKR、AKICDN 的 IP 速度都非常不错!
帖个防污染配置:StandardResolverAddress 101.6.6.6:53,223.113.97.99:53,208.67.222.222:5353,202.141.162.123:5353,202.38.93.153:5353,202.141.178.13:5353 |
35
HandSonic 2018-03-11 00:37:32 +08:00
希望能开源,希望能移植到 OpenWrt/LEDE
|
36
aleung 2018-03-21 09:16:25 +08:00 via Android
这个要能移植到 linux,可以安装在路由器树莓派上价值就大了
|
37
ondrej 2018-03-31 11:56:13 +08:00
希望能移植到 OpenWrt/LEDE+1
|
38
2001225354 2018-05-19 19:58:26 +08:00
真的是好用,希望作者没弃坑
|
39
liangxy 2018-05-22 13:03:43 +08:00
@gazeboxu 大佬你好,现在用这个软件会被 dns 污染,具体情况请看 https://github.com/chengr28/Pcap_DNSProxy/issues/288
|
40
gazeboxu OP @liangxy 如果是解析到不通的 IP,是没有问题的,因为 DNS CHOOSER 是会选择最快连接的 IP。但如果故意解析到一个错误的,但是通的 IP,就会有问题,DNS CHOOSER 可能选择这个 IP。dns chooser 内部没有维护固定的 IP 列表信息,选择的权重就是 80,443TCP 的建连时间。
|
41
gazeboxu OP @2001225354,不算弃坑吧,不过确实之前热情较高,现在不太高了,但还在维护。主要是用的人不算太多(我自己感觉挺有用的功能,囧)。不过还好,之前也是自己看 coursera 遇到问题,自己弄得很烦(我也不知道为什么 coursera 用的 amzon 的那个 CDN 都会被污染),写来自己用的。
|
42
gazeboxu OP @liangxy 另外,dns chooser 支持 dnscrypt,你如果愿意的话,可以把上游 DNSC 全部配置成 dnscrypt。。。
|
43
Yut 2018-06-25 22:59:50 +08:00
真的超好用,谢谢老板了,我这里也是 aws 被各种奇怪的解析,其实可以封个包做成游戏魔法加速器卖(笑
|
44
gcc1117 2018-07-06 09:40:53 +08:00
请教一下怎样才能记录解析日志啊?我配置文件写了没有信息 LogFile log.txt
LogLevel 1 |
47
wysnylc 2019-11-13 15:37:41 +08:00
好顶赞,希望能继续更新下去
|
48
wysnylc 2019-11-14 15:17:36 +08:00
其实用很多人在用的比如用来加速 warframe:https://tieba.baidu.com/p/5628424409?red_tag=0012069433<br>
|
49
jbag 2020-02-13 16:54:22 +08:00
尝试了无数 dns 解析软件,你的 DNS Chooser 是做到配置与使用最平衡的( win 端),因为我的需求就是要快,无特殊需求,给你个赞。
|
51
ashang 2020-03-31 23:32:28 +08:00
用了好久,特来感谢一下 lz
|
52
wysnylc 2020-05-03 04:18:47 +08:00
你终于更新了,不枉我在简书知乎 oschina 各种找你,哭了
|
53
Takuron 2020-05-03 09:22:52 +08:00 via Android
弱弱的问一句,如何做到防污染和最快同时实现?抢答服务器返回的 IP 一定比真实的快吧
|
55
gazeboxu OP @Takuron,严格意义上讲,在当前实现逻辑上,不可能做到最快响应与最快 IP 同时满足的(最快响应就是直接返回第一个响应,最快 IP 必然有一个收集到 IP 集后测速的过程)。不过可根据需求,不同域名设置不同解析规则。
|
56
jy02201949 2020-05-29 11:15:32 +08:00
如何让虚拟机也能使用呢,在设备自动启用那里,虚拟机的网卡勾选不上
|
58
gazeboxu OP @jy02201949,有 BUG 提在 gitee 上哈。
|