|
本帖最后由 test0x01 于 2016-10-13 13:55 编辑
最近新发明了个轮子,自己使用觉得很好,所以分享出来。cdns 可以有效过滤器掉DNS投毒,不需要额外等待,所以你配置的上游的DNS有多快,它就有多快。
未进行大量有效性验证,如果对你无效(已知移动、广电线路可用),欢迎反馈,但请勿各种拍砖!之前使用dnscrypt-proxy,不是很稳定,有时候会出现一段时间DNS不工作的情况。我用了这个新轮子后还没有这种情况出现。
源码:https://github.com/semigodking/cdns
使用方法:
1. 下载编译,不多说。
2. 编辑配置文件。你可以直接从 https://github.com/semigodking/c ... config.json.example 复制出来。
配置内容就一点点:- {
- "global": {
- // run as daemon
- "daemon": true,
- // where to send log to: syslog:daemon, stderr, file:/path/file
- "log": "syslog:daemon",
- // pid file
- //"pidfile": "/var/run/cdns.pid",
- // enable or disable debug info
- "log_debug": false
- },
- "cdns": {
- // local server listen address and port
- "listen_ip": "127.0.0.1",
- "listen_port": 1053,
- // Timeout for each DNS request
- "timeout": 2,
- // List of upstream DNS servers
- // MUST be foreign DNS servers
- "servers": [
- {
- "ip_port": "203.80.96.10"
- },
- {
- "ip_port": "8.8.8.8:53"
- }
- ]
- }
- }
复制代码 这两我这边可用:202.14.67.4 202.14.67.14
3. 运行
./cdns -c config.json
4. 检查log。如果log输出内容有下面这样的内容的话,就说明可以正常使用了。
- Sun Oct 9 13:13:20 2016 daemon.info cdns[6826]: Cool! DNS server 203.80.96.10:53 supports EDNS with UDP payload size: 4096
- Sun Oct 9 13:13:20 2016 daemon.info cdns[6826]: Cool! DNS server 8.8.8.8:53 supports EDNS with UDP payload size: 512
复制代码
其它说明:
1. 这不是一个普遍适用的工具。不同线路,配置不同上游DNS都会有不同结果。最重要的一条:你的线路至少要能把原DNS的正确响应结果送过来。
2. 这是一个不带缓存的DNS的转发工具,所以建议做为dnsmasq等DNS服务的上游服务器使用。
3. 原理: 给发出去的DNS请求加上一个EDNS option,只要目标DNS服务器支持 EDNS 的话,它也会带回这个option,而DNS抢答的似乎不会带这个option。主要靠这个option来判断。所以要求远端服务器支持EDNS才能正常工作。
请自行编译最新版吧,下面这些都没有更新。
编译好的:
BCM635x可用的:
x86 CentOS上编译的:
x86_64 Ubuntu 16.04 编译:
ramips HG255D及MTK7620系列可用:
其它编译好的目前提供不了了。
非常感谢ghostry!需要OpenWRT package的可以到这里去找。
https://github.com/ghostry/openwrt-gmod cdns和luci-app-cdns
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|