Code Monkey home page Code Monkey logo

pymumu / smartdns Goto Github PK

View Code? Open in Web Editor NEW
7.9K 126.0 1.0K 3.34 MB

A local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH. 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验,支持DoH,DoT。

Home Page: https://pymumu.github.io/smartdns/

License: GNU General Public License v3.0

Shell 5.54% Makefile 0.59% Lua 2.87% HTML 0.05% C 68.95% Batchfile 0.09% VBScript 0.01% JavaScript 3.92% C++ 17.88% Dockerfile 0.10%
smartdns openwrt-package dns-server dns-over-https dns-over-tls dns dot doh openwrt stubby

smartdns's Introduction

SmartDNS

English

SmartDNS SmartDNS 是一个运行在本地的 DNS 服务器,它接受来自本地客户端的 DNS 查询请求,然后从多个上游 DNS 服务器获取 DNS 查询结果,并将访问速度最快的结果返回给客户端,以此提高网络访问速度。 SmartDNS 同时支持指定特定域名 IP 地址,并高性匹配,可达到过滤广告的效果; 支持DOT(DNS over TLS)和DOH(DNS over HTTPS),更好的保护隐私。

与 DNSmasq 的 all-servers 不同,SmartDNS 返回的是访问速度最快的解析结果。

支持树莓派、OpenWrt、华硕路由器原生固件和 Windows 系统等。

使用指导

SmartDNS官网:https://pymumu.github.io/smartdns

软件效果展示

阿里 DNS
使用阿里 DNS 查询百度IP,并检测结果。

$ nslookup www.baidu.com 223.5.5.5
Server:         223.5.5.5
Address:        223.5.5.5#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 180.97.33.108
Name:   www.a.shifen.com
Address: 180.97.33.107

$ ping 180.97.33.107 -c 2
PING 180.97.33.107 (180.97.33.107) 56(84) bytes of data.
64 bytes from 180.97.33.107: icmp_seq=1 ttl=55 time=24.3 ms
64 bytes from 180.97.33.107: icmp_seq=2 ttl=55 time=24.2 ms

--- 180.97.33.107 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 24.275/24.327/24.380/0.164 ms
pi@raspberrypi:~/code/smartdns_build $ ping 180.97.33.108 -c 2
PING 180.97.33.108 (180.97.33.108) 56(84) bytes of data.
64 bytes from 180.97.33.108: icmp_seq=1 ttl=55 time=31.1 ms
64 bytes from 180.97.33.108: icmp_seq=2 ttl=55 time=31.0 ms

--- 180.97.33.108 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 31.014/31.094/31.175/0.193 ms

SmartDNS
使用 SmartDNS 查询百度 IP,并检测结果。

$ nslookup www.baidu.com
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 14.215.177.39

$ ping 14.215.177.39 -c 2
PING 14.215.177.39 (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=56 time=6.31 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=56 time=5.95 ms

--- 14.215.177.39 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 5.954/6.133/6.313/0.195 ms

从对比看出,SmartDNS 找到了访问 www.baidu.com 最快的 IP 地址,比阿里 DNS 速度快了 5 倍。

特性

  1. 多虚拟DNS服务器
    支持多个虚拟DNS服务器,不同虚拟DNS服务器不同的端口,规则,客户端。

  2. 多 DNS 上游服务器
    支持配置多个上游 DNS 服务器,并同时进行查询,即使其中有 DNS 服务器异常,也不会影响查询。

  3. 支持每个客户端独立控制
    支持基于MAC,IP地址控制客户端使用不同查询规则,可实现家长控制等功能。

  4. 返回最快 IP 地址
    支持从域名所属 IP 地址列表中查找到访问速度最快的 IP 地址,并返回给客户端,提高网络访问速度。

  5. 支持多种查询协议
    支持 UDP、TCP、DOT 和 DOH 查询及服务,以及非 53 端口查询;支持通过socks5,HTTP代理查询;

  6. 特定域名 IP 地址指定
    支持指定域名的 IP 地址,达到广告过滤效果、避免恶意网站的效果。

  7. 域名高性能后缀匹配
    支持域名后缀匹配模式,简化过滤配置,过滤 20 万条记录时间 < 1ms。

  8. 域名分流
    支持域名分流,不同类型的域名向不同的 DNS 服务器查询,支持iptable和nftable更好的分流;支持测速失败的情况下设置域名结果到对应ipset和nftset集合。

  9. Windows / Linux 多平台支持
    支持标准 Linux 系统(树莓派)、OpenWrt 系统各种固件和华硕路由器原生固件。同时还支持 WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)。

  10. 支持 IPv4、IPv6 双栈
    支持 IPv4 和 IPV 6网络,支持查询 A 和 AAAA 记录,支持双栈 IP 速度优化,并支持完全禁用 IPv6 AAAA 解析。

  11. 支持DNS64
    支持DNS64转换。

  12. 高性能、占用资源少
    多线程异步 IO 模式,cache 缓存查询结果。

  13. 主流系统官方支持
    主流路由系统官方软件源安装smartdns。

架构

Architecture

  1. SmartDNS 接收本地网络设备的DNS 查询请求,如 PC、手机的查询请求;
  2. 然后将查询请求发送到多个上游 DNS 服务器,可支持 UDP 标准端口或非标准端口查询,以及 TCP 查询;
  3. 上游 DNS 服务器返回域名对应的服务器 IP 地址列表,SmartDNS 则会检测从本地网络访问速度最快的服务器 IP;
  4. 最后将访问速度最快的服务器 IP 返回给本地客户端。

编译

  • 代码编译:

    SmartDNS 提供了编译软件包的脚本(package/build-pkg.sh),支持编译 LuCI、Debian、OpenWrt 和 Optware 安装包。

  • 文档编译:

    文档分支为doc,安装mkdocs工具后,执行mkdocs build编译。

捐赠

如果你觉得此项目对你有帮助,请捐助我们,使项目能持续发展和更加完善。

PayPal 贝宝

Support via PayPal

AliPay 支付宝

alipay

WeChat Pay 微信支付

wechat

开源声明

SmartDNS 基于 GPL V3 协议开源。

smartdns's People

Contributors

aa65535 avatar cdluminate avatar dkadioglu avatar edison0354 avatar felixonmars avatar fh0 avatar higarfield avatar hill-98 avatar honwen avatar huyz-git avatar kevin-zhou-imaginato avatar mcsinyx avatar mengguyi avatar moetayuko avatar mokeyish avatar neheb avatar nickcao avatar nyaasu66 avatar paldier avatar pikuzheng avatar purplegrape avatar pymumu avatar rhettor avatar soffchen avatar thiasap avatar whiler avatar whiredplanck avatar yuanyiwei avatar yujincheng08 avatar zxlhhyccc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smartdns's Issues

LEDE安装报错,libc问题

安装失败,记录如下
Collected errors:

  • satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-app-smartdns:
  • libc *
  • opkg_install_cmd: Cannot install package luci-app-smartdns.
    路由器为网件R6220,LEDE18.06.0系统

建议增加以TCP方式查询dns的功能

root@OpenWrt:~# dig www.baidu.com @127.0.0.1 -p5353  +tcp
;; Connection to 127.0.0.1#5353(127.0.0.1) for www.baidu.com failed: connection refused.
root@OpenWrt:~# netstat -tunpl | grep 5353
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           3825/smartdns

发现smartdns并不支持以TCP方式查询dns(指本地向smartdns查询,并非指smartdns向上游dns查询)。
在某些场景,我还是用到本地TCP查询的。
希望作者大大考虑这个建议,感谢!

./smartdns: can't load library 'libgcc_s.so.1'

[HC5861 /tmp]# ldd smartdns
libdl.so.0 => /lib/libdl.so.0 (0x77503000)
libpthread.so.0 => /lib/libpthread.so.0 (0x774dd000)
libgcc_s.so.1 => not found
libc.so.0 => /lib/libc.so.0 (0x77461000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x77517000)

木有这个libgcc_s 也

能否加个选项,不检查IPV6的?

每天都一大堆
[ERROR][ fast_ping.c:330 ] sendto 2400:cb00:2048:1::6812:15e2, id 128, Permission denied
这样的日志,而且也没IPV6。
加个选项,如果启用就跳过那个ping环节,延迟就设9999,这样程序上最少改动能达到最好的效果,当然从收集列表移除也好。

增加一种判断方案

导入国内三大运营商的IP地址列表,配置文件里可以自定义运营商,比如电信,则返回查询到的IP地址里属于电信的那个结果,无需查询实际延迟,若有多个电信的IP或者无电信IP则按现有方案测速后返回,若为内网地址也测速后返回。
本地判断应该比实际测速要快吧?

IPV6解析问题

我来说下场景,不知道具体原因,作为dnsmasq上游模式,开启ipv6,ping outlook.com ,返回结果为ipv6地址,ping值400ms左右,禁用ipv6模式,只返回ipv4,那么ping值在60ms左右,开启ipv6后,明显上网卡慢了,系统openwrt18.06.1

dns_server.c:944 ] decode failed. dns_server.c:1233] dns server process failed.

时不时的就进程关闭啦。这是啥情况叻?
[2018-10-06 21:37:45,612][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:37:45,612][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:38:45,997][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:38:45,997][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:38:48,746][ERROR][ dns.c:839 ] length is not enouth 754:13269, 0x7fff84b2db3a, 0x7fff84b2d8b0
[2018-10-06 21:38:48,746][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:38:48,746][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:38:48,948][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:38:48,948][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:38:48,958][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:38:48,958][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:38:49,991][ERROR][ dns.c:839 ] length is not enouth 754:13822, 0x7fff84b2dafb, 0x7fff84b2d8b0
[2018-10-06 21:38:49,991][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:38:49,991][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:38:51,246][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:38:51,246][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:38:52,493][ERROR][ dns.c:839 ] length is not enouth 754:9301, 0x7fff84b2d9e8, 0x7fff84b2d8b0
[2018-10-06 21:38:52,493][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:38:52,493][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:39:45,541][ERROR][ dns.c:839 ] length is not enouth 270:14845, 0x7fff84b2d8d9, 0x7fff84b2d8b0
[2018-10-06 21:39:45,541][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 21:39:45,541][ERROR][ dns_server.c:1233] dns server process failed.
[2018-10-06 21:40:01,190][ERROR][ smartdns.c:264 ] process exit with signal 11
[2018-10-06 23:32:18,559][ERROR][ dns.c:839 ] length is not enouth 270:14845, 0x7fffc65c9bb9, 0x7fffc65c9b90
[2018-10-06 23:32:18,559][ERROR][ dns_server.c:944 ] decode failed.
[2018-10-06 23:32:18,559][ERROR][ dns_server.c:1233] dns server process failed.

建议增加始终保留缓存,后台固定时间刷新解析的选项

考虑到速度可以按照访问频率只刷新前XX个记录。
不知道现在是不是这样设计的,感觉好像每天第一次进网站还是能感觉到稍微卡了一下。

还有一个不成熟的想法(操作)不知道有没有用。
dnsmasq去掉cache,然后用all-server配置上几个dns包括smartdns,windows也去掉dns cache。
这样第一次访问是响应最快的地址,后面再次访问的时候smartdns有缓存了即是最快响应,又返回最快连接的地址。如果第一次返回的地址不能连接,刷新一下应该就变成smartdns的地址了。

报错,dns type 16/33 不支持

系统是koolshare的ledex64,按论坛贴子弄的,不知道哪弄错了。

[2018-11-25 19:35:38,600][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:35:42,604][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:42,604][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:42,604][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:42,604][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:42,604][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:42,604][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:42,604][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:35:46,606][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:46,606][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:46,606][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:46,606][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:46,606][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:46,606][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:46,606][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:35:50,604][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:50,604][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:50,604][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:50,604][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:50,604][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:50,604][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:50,604][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:35:54,607][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:54,607][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:54,607][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:54,607][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:54,607][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:54,607][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:54,607][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:35:58,608][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:58,608][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:58,608][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:35:58,608][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:58,608][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:58,608][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:35:58,608][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:36:02,609][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:02,609][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:02,609][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:02,609][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:02,609][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:02,609][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:02,609][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:36:06,614][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:06,615][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:06,615][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:06,615][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:06,615][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:06,615][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:06,615][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:36:10,610][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:10,610][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:10,610][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:10,610][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:10,610][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:10,610][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:10,610][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:36:14,610][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:14,610][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:14,610][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:14,610][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:14,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:14,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:14,611][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:36:18,611][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:18,611][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:18,611][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:18,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:18,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:18,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:18,611][ERROR][ dns_server.c:1260] dns server process failed.
[2018-11-25 19:36:22,611][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:22,611][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:22,611][DEBUG][ dns.c:1461] DNS type = 16 not supported
[2018-11-25 19:36:22,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:22,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:22,611][DEBUG][ dns.c:1461] DNS type = 33 not supported
[2018-11-25 19:36:22,611][ERROR][ dns_server.c:1260] dns server process failed.

SmartDns CPU占用100%

在不支持科学上网的服务器上配置server-tcp 8.8.8.8后log里会每两秒钟打印一个[ERROR][dns_client.c:1023] send query to 8.8.8.8 failed, Broken pipe。时间长了CPU占用就100%了。

18.06.1还不支持

Collected errors:

  • pkg_hash_fetch_best_installation_candidate: Packages for smartdns found, but incompatible with the architectures configured

NETGEAR WNDR4300

ar71xx

期待下一次发布能够支持

安装不成功 求助 opkg

Base on OpenWrt BARRIER BREAKER (17.02, 2017-02-23-git-6e378cb)
[root@PandoraBox_80BE:/root]#opkg install smartdns.1.2018.11.03-2215.mipsel_24ke
c_dsp.ipk
Unknown package 'smartdns'.
Collected errors:

  • pkg_hash_fetch_best_installation_candidate: Packages for smartdns found, but incompatible with the architectures configured
  • opkg_install_cmd: Cannot install package smartdns.

安装的时候提示这样。看了CPU架构是对的哇

src/gz 17.02_core http://downloads.pandorabox.com.cn/pandorabox/targets/ralink/mt7621/packages

smartdns.1.2018.11.03-2215.ramips_24kec.ipk
smartdns.1.2018.10.12-2158.mipsel_24kc.ipk
smartdns.1.2018.11.03-2215.mipsel_24kec_dsp.ipk
这几个都试了都是这样。。

问题有点新手,但自己搜不到解决方案。。求助。。

请问能在macOS环境下运行吗?

我下载解压了smartdns.1.2018.08.19-2204.x86_64.tar.gz
在iTerm里运行install一直提示我输入选项
但是输入-i 进行安装后又回到了输入选项的界面
是不是暂时还不支持macOS呢

建议支持dnssec

如题,可以减少dns污染,可参考dnsmasq的dnssec-check-unsigned(感觉更有用)和dnssec
以及,建议支持设置支持dnssec的dns(有些dns不支持dnssec,例如阿里dns和opendns,dnsmasq开启"dnssec"选项后会无法解析dns)

请教Ubuntu 18.04 安装无效问题求教。

安装过程:
wget https://github.com/pymumu/smartdns/releases/download/Beta10/smartdns.1.2018.08.10-1830.x86_64.tar.gz -O smartdns.tar.gz
tar -zxf smartdns.tar.gz
sudo sh smartdns/install -i
rm -rf smartdns*
sudo sed -i '/8.8.8.8$/a\server 114.114.114.114:53,\nserver 223.5.5.5:53,\nserver 180.76.76.76:53,\nserver 208.67.222.222:53,\nserver 9.9.9.9:53,\nserver 8.8.8.8:53' /etc/smartdns/smartdns.conf
sudo systemctl restart smartdns

将Ubuntu的DNS改成127.0.0.1,无法解析域名。
执行
nslookup -querytype=ptr 127.0.0.1
结果
raphael@Raphael-Ubuntu:~/smartdns$ nslookup -querytype=ptr 127.0.0.1
Server: 127.0.0.53
Address: 127.0.0.53#53

Non-authoritative answer:
1.0.0.127.in-addr.arpa name = localhost.

Authoritative answers can be found from:

请教一下哪里出了问题。
:)

系统日志一直提示ignoring nameserver 127.0.0.1是啥情况鸭

Sat Sep 29 00:02:24 2018 daemon.warn dnsmasq[29220]: ignoring nameserver 127.0.0.1 - local interface
Sat Sep 29 00:02:24 2018 daemon.warn dnsmasq[29220]: ignoring nameserver 127.0.0.1 - local interface
Sat Sep 29 00:02:24 2018 daemon.warn dnsmasq[29220]: ignoring nameserver 127.0.0.1 - local interface
Sat Sep 29 00:02:24 2018 daemon.warn dnsmasq[29220]: ignoring nameserver 127.0.0.1 - local interface
Sat Sep 29 00:02:24 2018 daemon.warn dnsmasq[29220]: ignoring nameserver 127.0.0.1 - local interface
Sat Sep 29 00:02:24 2018 daemon.warn dnsmasq[29220]: ignoring nameserver 127.0.0.1 - local interface
Sat Sep 29 00:02:24 2018 daemon.warn dnsmasq[29220]: ignoring nameserver 127.0.0.1 - local interface

LEDEX86 作为一个旁路由 怎么使用呢?

LEDEX86 作为一个旁路由 怎么使用呢?
作为LEDEX86 我只有一个lan口没有网口
IPv4 上游
协议: 静态地址
地址: 192.168.5.254
子网掩码: 255.255.255.0
网关: 192.168.5.1
DNS 1: 192.168.5.254
已连接: 0h 21m 31s

可以这样使用么,没有wan口.

IPV6 53端口重定向失败

我木有ipv6,可以屏蔽这个报错吗?不要显示出来。。。
还有smartdns是内置了多个上游DNS吗?有哪些呢?

发生错误之后自动退出

[2018-11-09 20:36:22,780][ERROR][ fast_ping.c:339 ] sendto 2a01:111:2010:8::ff20, id 934, Permission denied
[2018-11-09 20:44:39,301][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,318][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,323][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,334][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,338][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,341][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,365][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,369][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,372][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,380][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,391][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,395][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,399][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,403][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,420][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,451][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,455][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,465][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:44:39,468][ERROR][ dns_client.c:1519] send query to 1.0.0.1 failed, No error information
[2018-11-09 20:48:43,722][ERROR][ fast_ping.c:339 ] sendto 2404:6800:4012::200e, id 3561, Permission denied
[2018-11-09 20:52:56,499][ERROR][ dns_server.c:356 ] BUG: refcnt is -1
[2018-11-09 20:52:56,503][ERROR][ smartdns.c:289 ] process exit with signal 6

process exit with signal 11

tim 20181209093123
固件使用的是coolsnowwolf编译的lede
主机名 | OpenWrt
主机型号 | NETGEAR WNDR3800 CPU:680Mhz
架构 | Atheros AR7161 rev 2
固件版本 | OpenWrt R8.1.11 By Lean / LuCI Master (git-18.296.11678-2bbc1e3)
内核版本 | 4.9.138
测试发现问题出现在把smartdns作为dnsmasq的上游服务器时,时间长了就容易出现signal 11(通常是几个小时)
单独将smartdns作为默认53端口,一周之内未出现此问题。

360 C301路由无法安装

360 C301路由无法安装,CPU是AR9344,应该是 MIPS 74K 架构,请问能否在下个版本增加支持呢,谢谢!

可以增加忽略所有AAAA查询请求的选项吗?或者忽略指定域名的AAAA

因为tls sni reset技术,只要域名符合gfw,即使获取的ipv6地址正常,也会被连接重置。
而大部分系统、浏览器都是ipv6优先的,只有在ipv6访问超时才会转而请求ipv4,这样就不可避免的导致连接时间的大大增加
另外并不是所有vps都支持ipv6的,所以即使路由器想把被墙的v6连接走代理,也不可行,所以还不如直接由smartdns给出“查询不到AAAA”的结果,让系统、浏览器误以为这些网站不支持v6,而直接走v4
诸如此类

在OpenWrt Chaos Calmer 15.05.1 r49587中运行不了。

芯片:ar9344
内核版本 :3.18.79
openwrt 版本:OpenWrt Chaos Calmer 15.05.1 r49587
安装:luci-app-smartdns.1.2018.08.19-2204.all.ipk smartdns.1.2018.08.19-2204.ar71xx.ipk

在网页中尝试了主路由和上游dns模式两种方式,“在勾选配置页面中的Enable(启用)来启动SmartDNS”,均未运行SmartDNS。
怀疑是不是smartdns版本不对,改用smartdns.1.2018.08.19-2204.mips_24kc.ipk,也不能运行。
手动运行smartdns,不能运行,无进程。
使用“iptables -t nat -L PREROUTING | grep REDIRECT”检查路由规则,无路由规则。

PS.在上游dns模式,"去勾选Redirect选项"的表述建议改为"不勾选Redirect选项"。

希望增加tcp ping,比icmp ping更准确

目前gfw封ip不再是以前那样,不管tcp、udp、icmp全部连不上,而是大部分ip只屏蔽tcp,这样就导致ping的通,连不上
1、像google等被墙的,不管怎么ping全超时,如果改成tcp ping,这样就可以直接借用ss等代理,获取到最准确的、走代理服务器后的ping值
2、像其他只封了tcp的,使用tcp ping可以避免出现ping通了,但是网页还是打不开的尴尬局面

IPV4 53端口重定向失败

  • 开启SmartDns

web界面显示如下

  • SmartDNS - RUNNING
  • IPV4 53端口重定向失败
  • IPV6 53端口重定向失败

cmd
服务器: OpenWrt.lan
Address: fdcd:2370:608d::1

非权威应答:
www.baidu.com canonical name = www.a.shifen.com

a.shifen.com
primary name server = ns1.a.shifen.com
responsible mail addr = baidu_dns_master.baidu.com
serial = 1808090017
refresh = 5 (5 secs)
retry = 5 (5 secs)
expire = 2592000 (30 days)
default TTL = 3600 (1 hour)

C:\Users\IT>ping www.baidu.com

正在 Ping www.a.shifen.com [119.75.213.61] 具有 32 字节的数据:
来自 119.75.213.61 的回复: 字节=32 时间=60ms TTL=52
来自 119.75.213.61 的回复: 字节=32 时间=63ms TTL=52
来自 119.75.213.61 的回复: 字节=32 时间=59ms TTL=52
来自 119.75.213.61 的回复: 字节=32 时间=59ms TTL=52

119.75.213.61 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 59ms,最长 = 63ms,平均 = 60ms

本地网络有开启S¥S 是否有影响

MediaTek MT7620 SoC/MIPS 24KEc V5.0 无法安装smartdns IPK

luci-app-smartdns.1.2018.08.07-0021.all.ipk
smartdns.1.2018.08.07-0021.mipsel.ipk
smartdns.1.2018.08.07-0021.mipsel_24kec_dsp.ipk

以上三个文件都尝试了下到本地安装,一律失败。

[YOUKU-L1 /opt/home/admin]# cat /proc/cpuinfo
system type : MediaTek MT7620 SoC
processor : 0
cpu model : MIPS 24KEc V5.0
BogoMIPS : 391.16
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
ASEs implemented : mips16 dsp
shadow register sets : 1
kscratch registers : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available

[YOUKU-L1 /opt/home/admin]# wget https://github.com/pymumu/smartdns/releases/download/Beta8/smartdns.1.2018.0
8.07-0021.mipsel.ipk
Connecting to github.com (13.250.177.223:443)
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (52.216.160.163:443)
smartdns.1.2018.08.0 100% |************************************************************| 55514 0:00:00 ETA
[YOUKU-L1 /opt/home/admin]# ls
smartdns.1.2018.08.07-0021.mipsel.ipk v2ray-linux-mipsle.zip
smartdns.1.2018.08.07-0021.mipsel_24kec_dsp.ipk v2ray-v3.33-linux-mipsle
[YOUKU-L1 /opt/home/admin]# opkg install smartdns.1.2018.08.07-0021.mipsel
Unknown package 'smartdns.1.2018.08.07-0021.mipsel'.
Collected errors:

  • opkg_install_cmd: Cannot install package smartdns.1.2018.08.07-0021.mipsel.
    [YOUKU-L1 /opt/home/admin]# opkg install luci-app-smartdns.1.2018.08.07-0021.all.ipk
    Collected errors:
  • wfopen: luci-app-smartdns.1.2018.08.07-0021.all.ipk: No such file or directory.
  • pkg_init_from_file: Failed to extract control file from luci-app-smartdns.1.2018.08.07-0021.all.ipk.
    [YOUKU-L1 /opt/home/admin]# wget https://github.com/pymumu/smartdns/releases/download/Beta8/luci-app-smartdns
    .1.2018.08.07-0021.all.ipk
    Connecting to github.com (52.74.223.119:443)
    Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (52.216.162.227:443)
    luci-app-smartdns.1. 100% |************************************************************| 5039 0:00:00 ETA
    [YOUKU-L1 /opt/home/admin]# opkg install luci-app-smartdns.1.2018.08.07-0021.all.ipk
    Installing luci-app-smartdns (1.2018.08.07-0021) to root...
    Collected errors:
  • satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-app-smartdns:
  •  smartdns * 
    
  • opkg_install_cmd: Cannot install package luci-app-smartdns.
    [YOUKU-L1 /opt/home/admin]# opkg update
    Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz
    Updated list of available packages in /opt/var/opkg-lists/entware
    [YOUKU-L1 /opt/home/admin]# opkg upgrade
    [YOUKU-L1 /opt/home/admin]# ls
    luci-app-smartdns.1.2018.08.07-0021.all.ipk v2ray-linux-mipsle.zip
    smartdns.1.2018.08.07-0021.mipsel.ipk v2ray-v3.33-linux-mipsle
    smartdns.1.2018.08.07-0021.mipsel_24kec_dsp.ipk
    [YOUKU-L1 /opt/home/admin]#

建议增加类似chinadns的功能

功能:
对返回的dns结果进行判断,如果该结果位于指定的ip列表内(比如china ip list),则信任位于该指定的ip列表内的dns供应商(比如114 dns)提供的结果;如果返回的dns结果不在指定的ip列表内,则信任该指定的ip列表外的dns供应商的结果(比如本地的dnscrypt-proxy)

配置总提示无法保存

右上角总提示有两项配置要保存,卸载,手动删配置再重新安装还是没用。而且开机不会自动运行了。

smartdns.cfg016bb1
smartdns.cfg016bb1.old_port+=
smartdns.cfg016bb1.old_port+=6053
smartdns.cfg016bb1.old_redirect+=
smartdns.cfg016bb1.old_redirect+=none

启用smartdns不成功?

win10下查询:
C:\Users\neuron>nslookup -querytype=ptr 127.0.0.1
DNS request timed out.
timeout was 2 seconds.
服务器: UnKnown
Address: fdbd:33cb:d783::1

DNS request timed out.
timeout was 2 seconds.
*** 请求 UnKnown 超时
————————————————————
C:\Users\neuron>nslookup -querytype=ptr 127.0.0.1 192.168.99.1
服务器: smartdns
Address: 192.168.99.1

非权威应答:
1.0.0.127.in-addr.arpa name = smartdns
————————————————————
C:\Users\neuron>nslookup www.qq.com
服务器: PandoraBox_7D29.lan
Address: fdbd:33cb:d783::1

非权威应答:
名称: https.qq.com
Addresses: 240e:e1:8100:28::2:1a
121.51.142.21
Aliases: www.qq.com

服务器: PandoraBox_7D29.lan,表示还是在使用dnsmasq?是否属于“重定向失败”?
安装和添加DNS的ip都正常,smartdns的本地端口设置是默认的5353还是要修改成53?
检查iptable,ip6table命令是否正确安装:固件自带这些命令,但是貌似不是所有的相关都装上了,是否要全部装上?
是否需要停用dnsmasq的dns解析功能?怎么做?
ip6tables-mod-nat这个驱动存在
输出如下:
[root@PandoraBox_7D29:/root]#iptables -t nat -L PREROUTING | grep REDIRECT
REDIRECT udp -- anywhere PandoraBox_7D29.lan udp dpt:domain redir ports 5353
方法一怎样才能正常启用?

重启一次路由器之后,变成这样:

C:\Users\neuron>nslookup www.qq.com
DNS request timed out.
timeout was 2 seconds.
服务器: UnKnown
Address: fdbd:33cb:d783::1

DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** 请求 UnKnown 超时
————————————————————
C:\Users\neuron>nslookup www.qq.com 192.168.99.1
服务器: smartdns
Address: 192.168.99.1

非权威应答:
名称: www.qq.com.lan
Address: 221.179.46.194
————————————————————
C:\Users\neuron>ping www.qq.com -4

正在 Ping https.qq.com [182.254.34.74] 具有 32 字节的数据:
来自 182.254.34.74 的回复: 字节=32 时间=17ms TTL=54
来自 182.254.34.74 的回复: 字节=32 时间=17ms TTL=54
来自 182.254.34.74 的回复: 字节=32 时间=17ms TTL=54
来自 182.254.34.74 的回复: 字节=32 时间=17ms TTL=54

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

路由器潘多拉固件如何检测转发服务是否配置成功?

nslookup -querytype=ptr 127.0.0.1
这个命令查询不了。。。
代码:
[root@PandoraBox_7D29:/root]#nslookup -querytype=ptr 127.0.0.1
BusyBox v1.24.1 (2018-07-27 11:01:34 UTC) multi-call binary.

Usage: nslookup [HOST] [SERVER]

Query the nameserver for the IP address of the given HOST
optionally using a specified DNS server

查询贴吧IP错误

大佬你好!
发现贴吧ip查询错误,解析到香港去了!

nslookup tieba.baidu.com
服务器: Openwrt.lan
Address: 192.168.3.1
非权威应答:
名称: post.n.shifen.com
Address: 103.235.46.139
Aliases: tieba.baidu.com

当前IP | 103.235.46.139
地理位置 | **香港 baidu.com

对smartdns功能的建议

首先说下我的使用场景,由于目前运营商普及了IPV6,dnsmqsq的ipset配合mwan3方式上网会导致解析IPV6,我主要使用smartdns来作为dnsmasq上游来过滤ipv6解析,但是smartdns进行ip优选的时候会调用默认路由IP,即pppoe-wan的ip,而mwan3本身不支持路由器本身策略路由,造成smartdns走运营商线路频繁访问被墙IP而且不通,存在隐私泄露问题与优选IP无效问题;

1.建议增加关闭IP优选的选项;
2.openwrt版本的配置增加bind ip配置选项或者增加一个优化IP时的源IP配置选项;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.