美文网首页Linux树莓派Learning
DNS Chooser找到最快IP的上网加速工具

DNS Chooser找到最快IP的上网加速工具

作者: 我真的是壹只鱼 | 来源:发表于2018-01-02 22:53 被阅读17200次

由于自动更新的问题,新版本不能推送下来,而旧版本过了4月1号后不能有选择最快IP效果,请大家手动更新至最新版本(https://gitee.com/gazeboxu/dnschooser-pub/raw/master/release/dnschooser-latest.zip),请大家互相转告一下,抱歉带来的不便。

DNS Chooser,一个能帮您将域名解析成最快的IP,特别适用于CDN域名的解析。特别适合解决上coursera遇到视频不能播放,卡顿的问题,这个也是该工具的最初始动因。基本原理就是配置一组上游DNS(最多支持30个,最好不同区域都找一个,比如日本,韩国,香港。国内如果各大区域也能找一些最好),同时解析,测速后选择最快的IP返回给用户。测速的原理也简单,就是目标IP的80或443端口的建链时间。Windows也能设置两个DNS,但同时只能使用一个,只有在一个失败后才起用另外一个,而DNS Chooser是所有上游DNS同时请求,择优选用。为什么不直接提供一个DNS来实现类似功能,是因为在PC端至单个DNS过程中本身也可能出问题,且从客户端测速是最合适的。

先放一个对比情况:

可看出效果明显。(另外这个简书的富文本怎么插表格啊?)

为了方便有兴趣的同学测试,我把域名放下面了:

d3c33hcgiwev3.cloudfront.net

devstreaming.apple.com

cdn.cnn.com

vod-dash-ww-live.bbcfmt.hs.llnwd.net

snappytvpoc-vh.akamaihd.net

基本功能:

1. 智能选择最快的IP给用户

2. 能防止DNS染污(但不能直接防止DNS劫持,特别是故意的劫持,比如故意返回假的80或443通的IP给请求者,但通过特殊配置也能防止DNS支持,参见进阶信息)

3. 本地cache,二次解析在TTL内直接返回(当前只cache了正常结果,非正常结果不会cache,也就是说如果一个域名解析得到的所有IP都是不通的,每次解析耗时都会较长,之后可能会考虑加入非正常结果的cache)

4. 尽量做到免配置,自动对相应网卡进行配置

一些说明:

1. 不支持TCP,当前只支持UDP

2. 不支持IPV6

3. 系统最低要求是Windows 7以上

4. 缺省会将本机原有的DNS当成其中的一个上游DNS,这个过程是自动的,不需要额外管理与设置。如果不需要(假如您想将上游DNS全部配置成dnscrypt)可以强制用参数禁用(OriginalResolverAddress disable)

5. 如果一个DNS请求没有A记录请求,则直接返回收到的第一个DNS响应

6. 客户端在管理模式下,关闭窗口是最小到系统托盘,要真正退出客户端,请从系统托盘的菜单中退出

关于本软件的申明:

此软件为免费软件,且当前仍处于开发阶段,不能确保稳定性。愿意使用此软件的用户都被视为测试用户,本人不对用户使用此软件造成的任何直接或间接损失承担责任,如果不同意此申明,请不要使用此软件。

用户数据收集及隐私:

当前该软件只是一个客户端,不依赖于特定的服务器,您的DNS解析请求只会发送到配置里的上游DNS(及您局域网内的缺省DNS),dnschooser当前本身不会收集这些记录,但我不能确定配置里的DNS会否收集您的DNS解析请求。您也可以自己配置上游DNS。dnschooser-winclient会收集(通过Google Analytics)必要的匿名事件以用于获得软件使用情况。dnschooser服务有日志功能,默认没有开启,如果您自己开启日志功能,请注意您的DNS解析记录会被记录到您指定的本地文件中。

系统要求及依赖:

1. Windows 7(包括)以上

2. .Net Framework 4.6.1(包括)以上,请自行安装(https://www.microsoft.com/en-us/download/details.aspx?id=49982),请确定系统已经安装了.NET后再进行此软件的安装

安装/卸载:

1. 当前没有做安装包,直接运行包里的install.bat安装

2. 卸载时,请先从托盘菜单关闭dnschooser客户端程序,然后运行uninstall.bat,然后再删除,不要直接删除文件

进阶信息:

因此软件是基于dnscrypt-proxy开发,尽量保留了dnscrypt-proxy的特性,可以配置上游为dnscrypt服务器,如果所有上游DNS都是dnscrypt服务器(还需要禁用自动本机DNS,配置ResolverName为多个上游dnscrypt服务器,可参考dnscrypt-proxy文档),那可以完全防止DNS劫持,但这样配置可能会导致国内一些CDN网站不能得到最好的结果。不推荐完全使用dnscrypt做为上游DNS。

FAQ:

• Q: 我能用dnschooser科学上网么?

• A: 抱歉,dnschooser不是用于这个目的的。

• Q: 那这东西有什么用?

• A: 最典型的应用场景是上coursera课程,解决卡顿,视频不流畅问题。这个也是本软件最原始的动因。通常来讲,适用于CDN域名的解析(可以理解成一个域名有多个可能的IP的)场景。因dnschooser尽量的考虑了兼容性,对于普通非CDN域名解析也适用,但没有加速作用,只是可以防止DNS污染。

• Q: dnschooser基于80或443端口测速,那如果这些端口本身都没有打开会解析失败么?

• A: 首先,绝大部分要解析的域名,这两个端口中的其中一个应该是打开了的。如果确实都没有打开,那dnschooser也能正常返回IP,但此IP是从上游DNS解析结果中随机选择的(即没有最快的概念的,确实没法找最快的了)。

• Q: 安装时3x0为什么会报警?安装及配置时为什么需要管理员权限?

• A: 该软件分两部分,一个是直接提供DNS服务的windows service,另一个是界面管理程序,安装windows service及修改网络设置在Windows下如果启用了UAC,都会要求管理员权限。如果介意,慎用。

下载地址:

https://gitee.com/gazeboxu/dnschooser-pub/raw/master/release/dnschooser-latest.zip

BUG反馈:

https://coding.net/u/gazeboxu/p/dnschooser-pub/topic/all

安装后的简单验证:

以coursera的视频域名d3c33hcgiwev3.cloudfront.net(其实是Amazon的CDN)解析为例:

使用DNS Choose

不使用DNS Chooser

感谢:

该软件使用了如下软件,在此表示感谢:

• dnscrypt-proxy

• dnscrypt-winclient

• ldns

• AutoUpdater.Net

• GoogleAnalyticsTracker

最后,感谢您使用此软件!

Have Fun!

相关文章

网友评论

  • 养猫的毛毛先生:非常感谢~我就喜欢抱大神的大腿~
  • 112b01f80437:你好,我安装后每次点击“启动”,都会闪退,也就是启动不了,请问是什么原因。本想去你说的项目讨论版面贴图,发现“讨论列表”一直缓冲不出来。还是在这里留言反映一下我遇到的问题吧,希望能得到解决,我想用COURSERA 啊。。:sob:
  • Matrix96:请问一下有计划开源吗?另外,由于 .net 框架的缘故,macOS上的 wine 工具亦无法运行它
  • 23b6fcb3b004:我有一些需要强制hosts的,但又不想用系统那个hosts,请问DNSChooser有配置文件可以容纳这个这个设置项吗?我要添加:127.0.0.1 ieonline.microsoft.com
    23b6fcb3b004:dnschooser.exe --reinstall-with-config-file2 dnschooser.conf --local-host Hosts --local-address 127.0.0.11 --logfile logs.txt
    批处理改为这个,绑定的IP还是127.0.0.1,注册表dnschooser的属性里面也没找到关于Hosts 的参数,当然也就没效果,不知道是我没弄对还是怎么d,请大神指教。
    23b6fcb3b004:@我真的是壹只鱼 谢谢大神。我研究下。
    我真的是壹只鱼:看readme.txt中的LocalHosts
  • 5adb83e094b3:你好,软件是会自动更新的吗?
    我真的是壹只鱼:有更新会推送,不过很久没更新了。
  • 5adb83e094b3:请问这个算是BUG吗?dnschooser.conf配置文件中的DNS地址顺序似乎会影响正常的解析效果。比如我把一些国内的DNS地址放前面,测试:www.speedtest.net测速网站,很难打开。把国外的DNS地址放前面,就一下子打开了!
    5adb83e094b3:@我真的是壹只鱼 昨天确实是这样,不过我今天又试了下,似乎正常。然后我没开dnschooser用运营商默认的DNS开www.speedtest.net测速网站,昨天是一直在刷新显示不出页面的,今天确是可以直接开,问题暂时没有复现。
    我真的是壹只鱼:@iLee 不应该哈,要收齐DNS回复后,再统一开始测速的。你多试一下呢
  • 5adb83e094b3:无意中发型这个工具,进而找到这里,亲测speedtest.net网站,很多DNS都打不开,用了这个以后,能正常打开!确实有效果,立竿见影~~~但是会有出现个别网站比之前的还慢一点的情况,总体来说,很好用!感谢楼主~~~希望项目能继续~
  • 博士伦2014:安装之后怎么用啊楼主
  • 1a5844bfc70f:安卓或者ios环境怎么办啊?
  • 1a5844bfc70f:安卓版有吗
  • PM_W:2018.6.2 感谢笔芯 可以用了
  • 222c63ac10eb:请教:运行dnschooser后弹出窗口是:can not open hosts file:hosts.txt
  • 电饭锅娃儿:博主您好,dnschooser运行后,Ping 请求找不到主机 d3c33hcgiwev3.cloudfront.net。请检查该名称,然后重试。
    求解!:cold_sweat:
  • Amoreing:博主真的非常谢谢你!这段时间在Coursera上学习python,之前看不了视频买了加速器,但是价学生党还是觉得贵,偶然在知乎看到您的回答,刚刚安装好可以观看视频了,谢谢你呀!
  • iRunning:未经处理的异常: System.Runtime.InteropServices.COMException: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。 (异常来自 HRESULT:0x80070422)
    在 System.Management.ThreadDispatch.Start()
    在 System.Management.ManagementScope.Initialize()
    在 System.Management.ManagementObjectSearcher.Initialize()
    在 System.Management.ManagementObjectSearcher.Get()
    在 dnschooser_winclient.NetworkManager.GetNICs()
    在 dnschooser_winclient.ApplicationForm.update_Service_Info_Once()
    在 dnschooser_winclient.ApplicationForm..ctor()
    在 dnschooser_winclient.Program.Main(String[] args)
  • iRunning:点安装bat后没效果呢?win 10,x64,好像exe不兼容,运行卸载bat会出错
  • 71c9eb823743:楼主,问一下,昨天下了最新版,有一阵能用,今天又不行了。
    不用dnschooser
    C:\Users\Administrator>ping d3c33hcgiwev3.cloudfront.net

    正在 Ping d3c33hcgiwev3.cloudfront.net [52.84.246.90] 具有 32 字节的数据:
    来自 52.84.246.90 的回复: 字节=32 时间=201ms TTL=231
    来自 52.84.246.90 的回复: 字节=32 时间=200ms TTL=232
    来自 52.84.246.90 的回复: 字节=32 时间=196ms TTL=232
    来自 52.84.246.90 的回复: 字节=32 时间=202ms TTL=231

    52.84.246.90 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
    最短 = 196ms,最长 = 202ms,平均 = 199ms
    用了dnschooser
    C:\Users\Administrator>ping d3c33hcgiwev3.cloudfront.net

    正在 Ping d3c33hcgiwev3.cloudfront.net [52.84.246.90] 具有 32 字节的数据:
    请求超时。
    请求超时。
    来自 52.84.246.90 的回复: 字节=32 时间=210ms TTL=232
    来自 52.84.246.90 的回复: 字节=32 时间=201ms TTL=231

    52.84.246.90 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 2,丢失 = 2 (50% 丢失),
    往返行程的估计时间(以毫秒为单位):
    最短 = 201ms,最长 = 210ms,平均 = 205ms
    怎么弄啊
    我真的是壹只鱼:网络状况是随时变化的,这个工具不能100%保证所有时间都能WORK(这个工具不是用于科技上网的),如果你配置的DNS解析的IP在这段时间都有问题,那就有问题了。
  • 0d699e001cc2:ping d3c33hcgiwev3.cloudfront.net 的结果如下:
    C:\Users\z>ping d3c33hcgiwev3.cloudfront.net

    正在 Ping d3c33hcgiwev3.cloudfront.net [69.171.245.84] 具有 32 字节的数据:
    请求超时。
    请求超时。
    请求超时。
    请求超时。

    69.171.245.84 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

    C:\Users\z>
    我真的是壹只鱼:@Vanessa谭晓鸣 ,手动运行winclient看看呢
    6a12efc811ae:博主您好,求关注~点击了intall bat之后按了any key 之后就没反应了,右下角看到dnschosser的logo但是鼠标点过去就消失了,望回复!非常感谢!
    0d699e001cc2:我又重试了,结果又是这样:
    C:\Users\z>ping d3c33hcgiwev3.cloudfront.net

    正在 Ping d3c33hcgiwev3.cloudfront.net [52.84.108.145] 具有 32 字节的数据:
    来自 52.84.108.145 的回复: 字节=32 时间=416ms TTL=233
    来自 52.84.108.145 的回复: 字节=32 时间=427ms TTL=233
    来自 52.84.108.145 的回复: 字节=32 时间=433ms TTL=233
    来自 52.84.108.145 的回复: 字节=32 时间=419ms TTL=233

    52.84.108.145 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
    最短 = 416ms,最长 = 433ms,平均 = 423ms
  • 0d699e001cc2:点击dnschooser出现这个,怎么弄啊。Thu Apr 5 11:06:49 2018 1522897609398 [WARNING] can not open hosts file:hosts.txt!
  • e7d6caf6bd36:我安装了软件以后还是看不了cousera,是我修改过host的原因吗
    我真的是壹只鱼:可能啊,因为本地hosts优先,去掉重启试试
  • aeb663fa6abc:你好,今天cousera视频又看不了了,之前好像记得说这个软件会在3月底更新,是这个原因吗?
    aeb663fa6abc:@我真的是壹只鱼 好的,非常感谢
    我真的是壹只鱼:是的,麻烦重新下载更新一下,自动更新出问题了,更新提示推不下来,
  • 63b6018415bd:请问楼主,mac os 是不是不适用呢?
    我真的是壹只鱼:是啊,这个是windows程序得嘛。mac版有,自己在用,但没开发完,用起来不方便,就没发布了。这个软件使用量不太多,开发热情不大了
  • c51fd0ebb084:你好,我下了然后用install.bat安装了也还是看不了。PS 我用搬瓦工翻墙了也看不了。能帮忙解释一下下么?
    c51fd0ebb084:@fwy大爷 可以了可以了 我下了个最新的NET 谢谢楼主 十分感谢:pray:
    c51fd0ebb084:ps 我Google能用 YouTube也能看
  • 9ae5d4c8a9d9:为什么点击dnschooser.exe之后跳出命令提示符窗口之后闪退呢?但是出现DNSchooser客户端【管理模式】的窗口,启动之后coursera视频仍然看不了,win10系统,对DNS一窍不通,求大神指点
    我真的是壹只鱼:仔细看说明,不是直接运行dnschooser.exd,是运行install.bat安装
  • shiyongsway:楼主,这个软件是开源的么??能否给个代码,我也想参与进去。
    我真的是壹只鱼:@shiyongsway dnschooser基于的项目dnscrypt本身是开源的,但dnschooser自己当前没开源,如果功能上有什么需求,可以到相应coding讨论组上去提哈
  • aeb663fa6abc:你好,我按上面说的把.net安装好,把压缩包下载下来,解压好,然后运行install,可是还是看不了coursera视频,请问这怎么办
    aeb663fa6abc:@我真的是壹只鱼 我又试了一下现在可以看了,谢谢
    我真的是壹只鱼:@边边_6ceb 正常应该没有问题的,你ping一下那个cdn地址看看什么情况呢
  • 8f32e031e753:改了hosts好几遍没有用,使用了你写的软件之后终于可以打开coursera视频了!非常感谢!!!(・ω・)ノ
  • bd50d40a89d6:感谢。
  • 啃个桃子继续做题:请问,为什么我安装好了,还是无法播放呢。没有错误信息。。
    我真的是壹只鱼:@啃个桃子继续做题 ,正常应该就OK了。
    啃个桃子继续做题:@我真的是壹只鱼 嗯嗯,那个我对dns一窍不通,所以看不太懂怎么意思。这个ping d3c33hcgiwev3.cloudfront.net运行要在那里运行呢?我只是按上面说的做了把.net安装好,把压缩包下载下来,解压好。然后运行install 。还需要其他工作么
    我真的是壹只鱼:把"ping d3c33hcgiwev3.cloudfront.net"的运行结果贴上来看看呢。
    另外建议到这里提BUG,也可以贴图哈。https://coding.net/u/gazeboxu/p/dnschooser-pub/topic
  • b40bab8dbd59:大神你好,我安装后发现还是无法播放coursera 软件运行的界面也和你的有些区别就是在设备自启用下有三个选项,不知道是怎么回事,能不能帮忙看一下,万分感谢!
    b40bab8dbd59:@我真的是壹只鱼 好的 我去贴到这里
    我真的是壹只鱼:你把启动DNSChooser后,把"ping d3c33hcgiwev3.cloudfront.net"的运行结果贴上来看看呢。
    有三个是有可能的,那个是你机上的网络接口,不过三个也太多了点。
    另外建议到这里提BUG,也可以贴图哈。https://coding.net/u/gazeboxu/p/dnschooser-pub/topic
  • f0578e63a91a:下载了,但是不能安装是怎么回事呢?
    我真的是壹只鱼:怎么个不能安装法?出什么错误么?看一下包里的readme.txt文件,里面有详细过程的。
  • 789731b5a691:我只想说,那个release notes更新日志里面留的下载地址错啦。。。点了几次都是404,简书里的这个才是对的🙃
    我真的是壹只鱼:改了,感谢反馈
  • Fluorescen_fa8a:你好 我下载了你的这个软件 打开了DNSchooser 然后点击启动 打开coursera 感觉没有变快 就把你的软件删除了 可是不知道为什么 现在我无论是QQ浏览器还是chrome都上不了网(网络一切正常) 请问应该怎么办?(ps:我打开VPN的全局模式才能上网 如果我关掉了VPN 那就什么网站都上不了了 百度也上不去
    Fluorescen_fa8a:@我真的是壹只鱼 我试试你说的哈
    Fluorescen_fa8a:@我真的是壹只鱼 我直接删除 没有用uninstall
    我真的是壹只鱼:是否变快最直接的判断办法是PING一下coursera的视频域名,看看速度,如果你之前一直是用的VPN看COURSERA的,且VPN质量很好,那速度肯定是差不多的。
    不能上网应该是DNS设置的问题,请问你卸载时是直接删除还是运行的uninstall.bat?用uninstall.bat应该没有问题的哈。如果还是有问题,请你手动检查一下你的DNS设置,打开一个命令行窗口运行"ipconfig /all",看看输出中的DNS是什么,如果是"127.0.0.1",而DNS Chooser服务又没有启用的话是会有问题的哈(手动恢复从【控制面板】,【网络与共享中心】,然后找到你的主要本地网络连接,【属性】,【Internet Protocol Version 4(TCP/IPv4)】下进行设置,一般DHCP选自动获得,如果不是DHCP且不知道该填什么,暂时填一个223.5.5.5也可以“),如果DNS不是"127.0.0.1",那就是正常的了,与DNS Chooser没有关系了哈,DNS Chooser只改了这个。
  • 秒速五厘米:非常感谢,使用后的确可以流畅观看Courera视频了

本文标题:DNS Chooser找到最快IP的上网加速工具

本文链接:https://www.haomeiwen.com/subject/lalfnxtx.html