Open pymumu opened 1 year ago
需求功能: rr-ttl set 能豁免具体对某个域名的ttl修改 需求描述: rr-ttl-min 可以修改本地ttl,有时候会设置过大来避免频繁去查询dns,这个时候希望可以单独配置某个域名比较小的ttl,比如domain-rules /ddns.example.com/ -rr-ttl-max 60 -speed-check-mode none -no-serve-expired 使用场景: 比如自己控制下的域名,修改解析ip之后能很快让之前获取到的dns结果失效并获取新到ip。因为我rr-ttl-min设置不规范,设置到了24h了,就算是等待1h也是很漫长的时间了。能设置rr-ttl-min是我喜欢smartdns的功能之一了。 还有一个场景,就是自建的梯子ip这一项用二级域名替代,梯子服务器更换ip之后本地节点只需要等待该二级域名新结果而不需要任何修改,这个时候也需要之前获取到的dns结果快点失效
自己网络访问自己的DDNS域名,难道不是直接address设置本地局域网固定IP么?
address /ddns.example.com/192.168.1.1
domain-rules增加了三个参数-rr-tll -rr-ttl-min -rr-ttl-max。
已经下载smartdns-arm运行并测试,发现domain-rules对于ttl的修改只生效1次。 我的配置 :
rr-ttl-min 200
domain-rules /time.is/ -speed-check-mode none -no-serve-expired -rr-ttl-max 120
其中time.is这个域名是我从未访问过没有任何结果的,测试前已经清空所有缓存,手动dig频率大概是1-2秒一次。第一次dig的结果是200s,然后第二次就变成了120s,然后一直dig时间一直减少到0后,再次dig time.is之后又回到了200s 然后一直dig等待200s变成0s后,dig频率还是1-2秒一次,下一次就变成了120s,然后再下一次就变成了200s。
@abolast
DNS64 features https://www.rfc-editor.org/rfc/rfc6147
最新代码简单支持了下DNS64,可以获取验证下看看。
dualstack-ip-allow-force-AAAA yes dns64 64:ff9b::/96
I have compiled Smartdns from source code yesterday. dns64 works perfectly.
需求:
IPv4 DNS只返回IPv4地址, IPv6 DNS只返回IPv6地址
场景:
联通+移动双宽带
IPv4使用联通, 因为网络好
IPv6使用移动, 因为上行快
如果只配置一个DNS,那么返回的结果很可能是针对运营商优化的, 比如 www.163.com
这时候用移动访问针对联通优化的IPv6就会很慢
目前的解决方法:
配置一个IPv4 一个IPv6
IPv4通过联通出去, 返回的是针对联通优化的IPv4结果
IPv6通过移动出去, 返回的是针对移动优化的IPv6结果
#ipv4 dns不返回ipv6记录
blacklist-ip ::/0
server 223.5.5.5:53 -blacklist-ip
#ipv6 dns只返回ipv6记录
whitelist-ip ::/0
server 2400:3200::1 -whitelist-ip
但是使用过程中,发现一些不常见域名大概率会解析失败,从log中暂时没发现原因...
@abolast
已经测试完毕,domain-rules ttl set 完美实现
domain-set建议增加类似v2ray-geosite中的FULL模式限制域名匹配范围,仅匹配完整域名,而不进行域名扩充匹配
如example.com
匹配 example.com
但不匹配 www.example.com
对于已经通过其它插件分流的情况,希望进入foreign这个端口的dns请求,无论是否有域名列表,都加入指定的ipset,可以在服务器组下面加一个选定的组全部加入ipset的选项。 https://github.com/pymumu/smartdns/issues/1280
希望可以增加在线更新(openwrt)
@pymumu 需求功能: 主备DNS优选。
需求描述:
建议openwrt系统luci界面增加导入导出配置功能,以便路由器刷机后能快速恢复自用的配置。
我在 rust 版实现了 http(s) ping ,好像也不麻烦,核心代码不到 5 行,大佬可以考虑加上😅。最近网络不稳定,用着一会就连不上了,有了 https ping 这样检测比 tcp 更稳定,不会被测成与中间代理连接的时间。
需求功能: openwrt 根据 /tmp/resolv.conf.d/resolv.conf.auto 自动添加上游服务器 需求描述: 如题 使用场景: 使用openwrt时
需求功能: 希望能出一个官方的教程。smartDNS配套各大出国软件的配置教程。免得我等小白被某些不懂装懂的人欠着鼻子走。还去被某些骂折腾smartDNS这些没有用的东西
需求功能: 希望能出一个官方的教程。smartDNS配套各大出国软件的配置教程。免得我等小白被某些不懂装懂的人欠着鼻子走。还去被某些骂折腾smartDNS这些没有用的东西
需求功能: 希望能出一个官方的教程。smartDNS配套各大出国软件的配置教程。免得我等小白被某些不懂装懂的人欠着鼻子走。还去被某些骂折腾smartDNS这些没有用的东西
https://pymumu.github.io/smartdns/config/basic-config/
参考。
@wpsdoo 每个人的需求不一样,合适的就是最好的。smartdns不一定适合每一个人,每个人有自己的选择,怎么评价smartdns是他们的权力。 目前smartdns能进入主流的debian,ubuntu, archlinux,openwrt,dd-wrt,gentoo社区主仓库也算是对smartdns效果的最好回应。 smartdns本来就是业余时间捣鼓的,有自身的局限性,没有能力覆盖所有场景,某些场景可能永远不会覆盖。 后面有空会慢慢改进,个人精力也有限,请多包涵,还是欢迎多提意见,更加欢迎贡献代码或文档。
版本不同、架构不同、编译时间不同,缓存文件也可以载入或者转换成支持的缓存格式。 https://github.com/pymumu/smartdns/issues/1351
需求功能: 自动分组境内外dns和域名,解析缓存。smartdns.conf文件加入选项:auto-group-resolve yes|no
需求描述: 假设实际使用状态是:境外域名只用境外dns,境内域名只用境内dns,总体最快、最稳定,无论客户端在境内外。 smartdns.conf文件就写境内外dns,如server 119.29.29.29,server 8.8.8.8,https://xxxx/query。这些dns可以启动服务时通过属地查询和内置dns名匹配,分为境内外2组。 新域名查询时先用所有dns并发查、测速、返回最快地址,然后自动查询最快地址的属地,则该域名以后就用境内或境外dns分组。 例外:.cn域名,没配置境外dns,显示配置了域名和dns分组的优先级,自动分组dns解析失败处理。
1- 需求功能: 设置自动/手动检查有效性 需求描述: 有些非大型DNS服务商的服务有时候失效了或者自己设置有误,增加一个添加后自动检测或者手动检查按钮,可以自行检查该项设置是否有效。 使用场景: 联通,路由器SWRT固件。
2- 需求功能: 类似于host那样的的手动指定解析地址 需求描述: 类似于host那样的手动指定解析域名到地址,临时用的。这里改肯定比专门去修改host文件快捷。 使用场景: 临时性测试网页用的。
能在openwrt luci 上加上运行日志吗?这样看着方便一点
看看这个 web 配置界面好看不,手机电脑同时支持的,哈哈,可能六月份可以开发出来用。
目前SmartDNS有两个测速模式: 1-DNS测速,哪个DNS最快返回网站IP就用那个IP。 2-网站IP测速,一个网站多个IP,哪个IP的ping最小就用那个IP。
希望可以增加 3-带宽测速! 无视网站IP的ping,只看这个IP的实际下载速度,哪个下载速度最高就用那个IP。 这对于一些下载速度重要,但是ping不重要的网站,特别有用。 ping 1ms下载速度100K,和ping 9999ms下载速度99MB, 对于下载为主的网站,显然后者最重要, 可以弄一个加速名单,针对下载网站应用带宽模式
能否增加一个测试配置的命令或者参数来检测配置文件有没有问题? 毕竟是dns服务器, 如果配置错了可能导致整个网关的dns故障, 如果在新的配置文件启用之前检测没问题的话就感觉安心多了.
比如smartdns test -c /etc/smartdns.conf
或者smartdns -c /etc/smart.conf -test
之类的?
看看这个 web 配置界面好看不,手机电脑同时支持的,哈哈,可能六月份可以开发出来用。
期待!
找了下没人提? 考虑下尝试增加支持 quic:// 和 h3://
找了下没人提? 考虑下尝试增加支持 quic:// 和 h3://
and DNSCrypt v2 DoH HTTP/3 HTTP3
To follow
Smartdns adblock/domain block feature through domain set rules uses excessive RAM compared to the size of its list. For example, using a 1MB list consumes approximately 15MB of RAM. Other adblock apps on OpenWrt, such as adblock/simple-adblock, utilize a DNS backend for domain blocking, making them incompatible with smartdns. Additionally, dnsmasq (adblock DNS backend or not) does not encounter this issue. It would be great if you could minimize smartdns' RAM usage; however, if this is the expected behavior, it is acceptable.
In the documentation, you mentioned the size of the smartdns software in OpenWrt's new release (could be a translation error). By using wolfSSL as the SSL library, which is already built within OpenWrt, smartdns' dependency can be reduced/eliminated. If you are reluctant to do so, perhaps PikuZheng can compile the OpenWrt smartdns with wolfSSL since his smartdns releases for OpenWrt are flawless.
You mentioned the prevention of DNS poisoning in the documentation, which implies DNSSEC support. However, in some threads, you strongly opposed DNSSEC (possibly just another translation error). As you possess greater knowledge in this area, you can clarify whether smartdns already supports DNSSEC and if it requires any configuration or other steps.
Some users have previously mentioned prioritizing DNS servers. Here's a wild thought, considering the rise of RethinkDNS/NextDNS/AdGuardDNS and other blocking DNS servers, it could be an option to use them for domain blocking while measuring ping speed. One approach could be to query all servers, including AdGuardDNS, and if a domain matches a blocklist on the AdGuardDNS server and AdGuard replies with 0.0.0.0, return NXDOMAIN to the client. However, if AdGuardDNS responds with a valid IP, return the fastest IP to the client. This essentially involves waiting for a response from the AdGuardDNS server while measuring the ping of other responses in the meantime, as these servers are rare and take longer to reply. This is a rare use case, so feel free to disregard it if you do not find it appealing.
Lastly, smartdns v42 works well with OpenWrt stable. It would be beneficial if you could backport it to OpenWrt 22.03 stable.
Thank you.
Memory Usage: The memory usage of smartdns can be divided into two parts. One is the usage of the Radix Tree, which is about 6-7 times the size of the list. The other part is the rule set, which contains some data structures and is about 7-8 times the size of the list file, Both making it about 13-14 times the size of the list.
If the Radix Tree is replaced by a hash table, the memory usage can be reduced to about 4-5 times the size of the list, and the rule structure can also be optimized by 4-5 times. This resulting in an improvement of up to 10 times
Reducing the memory by 3~4 times requires modifying the basic algorithm and data structure. Whether it is worthwhile still needs to be considered.
SSL: At present, smartdns uses the openssl rather than wolfSSL because wolfSSL is not included in all Linux distributions, while openssl is included in all Linux distributions. Openwrt also provides support for openssl by default. Converting openssl to wolfSSL would require a large amount of code, and may not be considered in the short term. If openssl is already included in the Openwrt firmware, smartdns can be dynamically compiled, and the size of the dynamically compiled smartdns is about 100K. You can download it here: https://downloads.openwrt.org/snapshots/packages/
DNSSEC: Smartdns does not support DNSSEC, because DNSSEC is not yet deployed on all domain names, and DNSSEC cannot prevent MITM attacks in China. Moreover, DNSSEC is transmitted in plaintext, making privacy impossible to ensure. Users with privacy requirements should use DOT or DOH.
希望考虑增加下载文件自动更新的更新周期、时间设置。
目前固定为每日凌晨5点更新,哪怕手动编辑 crontab(如改为每周一4点),下次重启也会变回每日5点。
另外请考虑不发送输出>/dev/null 2>&1
,谢谢😊
看看这个 web 配置界面好看不,手机电脑同时支持的,哈哈,可能六月份可以开发出来用。
期待!
不错不错。。。 有TG群没啊。。。申请内测 没有的话,我随手建了个 https://t.me/smartdnszone 😁😁😁
可以考虑加入回应黑名单或者白名单吗,就是有时候需要不回应内网某台设备,adghome倒是有这个功能
需求功能: log-file stdout 需求描述: 把log输出到stdout,不写入文件 使用场景: 结合systemd service使用话,journald会接管日志。无需fork,也无需输出日志到文件中。 且如果log-level info (debian/ubuntu apt安装默认)的话会频繁写入,没有buffer的话也会损害存储寿命。
需求功能: 添加manpage 需求描述: man smartdns 使用场景: 目前没有一个manpage的话只能 https://pymumu.github.io/smartdns/configuration/ 参照。 smartdns --help 不存在。也不知道 smartdns -h 的options全不全。
碰到个登录提示的问题↓
目前只支持用指定的DNS组解析,能否扩展下nameserver
的功能,让指定的域名用特定的DNS,并且优先级最高。如:
nameserver /www.taobao.com/223.5.5.5
nameserver /www.tencent.com/119.29.29.29
作个死,X86平台来个统计展示和控制界面吧,类似AdGuardHome那样的哈哈
1154 #1163 #1214 没懂用来统计或控制啥 都x86了 稍微搭一个elastic多好。也可以简单的写一个界面来呈现审计日志的内容。
@PikuZheng 有兴趣移植https://github.com/Barre/privaxy.git到OpenWRT吗? 看上去不错,这样就可以实现局域网内设备的广告过滤了
@PikuZheng 有兴趣移植https://github.com/Barre/privaxy.git到OpenWRT吗? 看上去不错,这样就可以实现局域网内设备的广告过滤了
啥意思 看起来可以直接用啊?是(非x86平台)编译问题吗
需求功能: 让某个域名组的解析返回一个虚假的IP或IP段 需求描述: 解析google.com返回1.1.1.1 使用场景: 旁路设备的dns分流,通过在核心设备上加静态路由完成dns分流(不支持策略路由)
需求功能: 让某个域名组的解析返回一个虚假的IP或IP段 需求描述: 解析google.com返回1.1.1.1 使用场景: 旁路设备的dns分流,通过在核心设备上加静态路由完成dns分流(不支持策略路由)
address 功能不能满足吗
需求功能: 让某个域名组的解析返回一个虚假的IP或IP段 需求描述: 解析google.com返回1.1.1.1 使用场景: 旁路设备的dns分流,通过在核心设备上加静态路由完成dns分流(不支持策略路由)
address 功能不能满足吗
可能表达不是很清晰,这个功能类似于fakeip,例如google解析到的是ip为172.1.1.1,但我希望在使用中看到是173.1.1.1,这样在我需要访问的海外目的ip不清晰的情况下,便于根据目的ip进行导流,而不是要屏蔽盖网站的访问
需求功能: 让某个域名组的解析返回一个虚假的IP或IP段 需求描述: 解析google.com返回1.1.1.1 使用场景: 旁路设备的dns分流,通过在核心设备上加静态路由完成dns分流(不支持策略路由)
address 功能不能满足吗
可能表达不是很清晰,这个功能类似于fakeip,例如google解析到的是ip为172.1.1.1,但我希望在使用中看到是173.1.1.1,这样在我需要访问的海外目的ip不清晰的情况下,便于根据目的ip进行导流,而不是要屏蔽盖网站的访问
address是根据根据某个ip返回一个虚假的ip,我还能根据这个ip进行访问嘛
address是根据根据某个ip返回一个虚假的ip,我还能根据这个ip进行访问嘛
address是指定某一个结尾的域名返回特定的ip(无论是不是有效ip
对的,所以address无法满足该需求
---原始邮件--- 发件人: @.> 发送时间: 2023年7月4日(周二) 中午12:43 收件人: @.>; 抄送: @.**@.>; 主题: Re: [pymumu/smartdns] 【Feature Request】smartdns需求收集 (Issue #1236)
address是根据根据某个ip返回一个虚假的ip,我还能根据这个ip进行访问嘛
address是指定某一个结尾的域名返回特定的ip(无论是不是有效ip
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
卧槽 我今天还说希望smartdns有WebUI呢!
希望添加响应模式为最快响应(域名没有缓存及过期缓存)时,向上游dns请求的超时设置,超时直接返回server fail。 使用场景:一些域名没有AAAA记录,一些上游公共dns没有缓存,逐级向上请求有时耗时达1000ms以上,非常影响体验。 解决想法:设置如下2个参数 ipv4_timeout 100ms ipv6 timeout 200ms 当首次访问这个域名时,同时查询ipv4/6解析记录,哪个协议先返回查询结果,就立即返回此查询结果。如果某个查询达到了查询的timeout值,则立即返回server fail,同时在后台再次发起查询或者等待已经返回server fail的那次查询的结果,并把查询的结果加入过期缓存的结果中。
需求功能: 让某个域名组的解析返回一个虚假的IP或IP段 需求描述: 解析google.com返回1.1.1.1 使用场景: 旁路设备的dns分流,通过在核心设备上加静态路由完成dns分流(不支持策略路由)
address 功能不能满足吗
可能表达不是很清晰,这个功能类似于fakeip,例如google解析到的是ip为172.1.1.1,但我希望在使用中看到是173.1.1.1,这样在我需要访问的海外目的ip不清晰的情况下,便于根据目的ip进行导流,而不是要屏蔽盖网站的访问
address是根据根据某个ip返回一个虚假的ip,我还能根据这个ip进行访问嘛
有开发的计划嘛
需求功能: 支持srv-host配置 使用场景: 对于KMS需要支持srv类型的解析格式,现在只能通过dnsmasq解析,然后smartdns作为dnsmasq的上游,需要同时开启smartdns和dnsmasq,比较麻烦
需求功能: 支持HTTPS测速,并且验证HTTPS证书 使用场景: 防止上游服务器返回了虚假的IP,导致网站无法访问
我是一个网络方面的新手 新手对软件的使用逻辑要求严谨,方便学习网络知识
需求功能 像adguard home那样说明需要提供ip地址的dns才能访问DoH或者DoT的dns服务器
需求功能: dump cache 需求描述: 显示cache里所有域名以及对应的解析 使用场景: 检查某个ip到底是从哪个域名解析过来的,比逆向查询更好使
需求功能: dump cache 需求描述: 显示cache里所有域名以及对应的解析 使用场景: 检查某个ip到底是从哪个域名解析过来的,比逆向查询更好使
用audit-log
大佬三个月了能更一下正式版嘛
目前smartdns基本功能已经完善,后续还有什么需求请各位给建议。
需求收集包括:
如果有相同需求,请点赞,点赞数量多的需求实现优先级会相应的高。