-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ChinaDNS-NG 2.0 #144
Comments
dnsmasq还有一个功能是提供本地PTR查询,可以通过查询DHCP(v6)的租约文件实现 |
这个功能涉及到 DHCP 领域,暂不考虑哈。 目前来说,我只想在合理的范围内,增加必要的功能。因此,完全取代 dnsmasq 并不是 chinadns-ng 的目的。 |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
有没有打算做一个 广告域名的 配置呢? |
如果广告域名是类似 gfwlist.txt/chnlist.txt 这样的域名后缀,那么应该很简单。但是如果涉及到正则表达式等模式,那么不会考虑。 我不清楚通过 dns 过滤广告的效果如何,我觉得很多广告都是内嵌到网页里面的,仅在 域名解析 上动手,感觉不是非常理想。我很久之前也折腾过类似的基于 dns 的广告过滤(当然,并不是 AdGuardHome 哈),不过后来我还是用浏览器插件了。 |
总之目前我还是插件. dns级别 需求其实不是非常高 多谢解答 |
Unix philosophy: Write programs that do one thing and do it well , 广告过滤交给其他专业软件吧, DNS 级别的广告过滤基本上没什么太大用处, 很多都无法过滤, 比如 youtube 广告, |
碰到 了一个见鬼的域名s5.m3u8.cool,dig显示huaweicloud,只能附加部分国家的ecs才能解析出地址,比如cloudcone就解析不到IP,oracle韩国可以, oracle美国好像不行。 chinadns-ng 2.0 会有这功能吗? 目前只有mosdns能满足需求 可能部分用户还有另一个需求,就是腾讯的域名用腾讯的DNS解析,解决微信转圈的问题 如果替代dnsmasq,还要能支持 kms的 _vlmcs._tcp 吧 |
你直接使用腾讯的 119.29.29.29 作为 china 上游组,应该就可以了吧?
另外,我似乎没有遇到过你说的微信转圈问题(也许是部分地区?或者特殊网络环境?),如果这种情况很普遍,那岂不是说腾讯/微信相关的域名必须使用腾讯自己的DNS?(我认为不大可能,否则除了腾讯DNS外的其他公共DNS不都得废?) |
目前导致 |
这个我看了下,核心是让 chinadns-ng 支持创建 SRV 记录,响应相关查询。 目前来说不确定是否要支持,等 2.0 完成了再看看吧。 |
还是想重申下,chinadns-ng 2.0 虽然会考虑实现一些较为常用的功能,但目的不是替换 dnsmasq。 我仍然想让 chinadns-ng 保持简单和愚蠢,如果有些特殊需求无法满足,那我只能表示抱歉,希望大家理解。 |
只是看到写了2.0的目标是 所以最终还是要dnsmasq + chinadns-ng 2.0套娃,微信转圈只是举了一个例子,有的人可能和公司搞了穿透,公司域名要用公司的DNS解析。 |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
更新下进度,1.0版本已基本完成,测试了几天,暂未发现问题。 快的话这几天会更新master分支、README、发布1.0的release版本。
|
想了下,好像和dnsmasq套娃是必须的, 所以实不实现dnsmasq的功能好像都没关系, 路由器需要dnsmasq来提供DHCP服务。 |
路由器上,你说的是有道理的(但不绝对)
不是所有人都在(主)路由器上使用,所以实现某些常用/必要功能仍然有意义。 |
也不一定吧,我现在使用systemd-networkd 的dhcp server,用着也还可以 |
Make chinadns-ng great again! |
见最新 2024.03.25 版本,新增了以下功能:
2024.03.27 版本,新增了以下功能:
剩下的 TODO 要稍微等一段时间,先忙些其他事情了。 |
计划有变,由于 DoH 最低推荐 HTTP/2,纯手撸一个 HTTP/2 客户端不现实,看了其他实现,要么是使用语言(标准库)自带的 http 库,要么是使用第三方库(如 libcurl);C/Zig 没有自带的 http 库。 也看了一些有关 DoH 和 DoT 的讨论,最终决定使用 DoT,相比较 DoH,少了一层 http 协议,可以减少协议开销。 想了下,浏览器更“喜欢” DoH 是因为浏览器本身就有完备的 HTTPS 客户端支持,而其他更底层的实现(如 systemd-resolved)则更偏好于 DoT,虽然不知道具体原因,但肯定有很大一部分是 HTTP/2 协议带来的复杂度导致的。 关于 DoH 和 DoT 的争论,主要是这一点:
不过我想说的是,真想找出哪些是 DoH 流量,哪些是 HTTPS 流量,太简单了,直接 ip 识别即可(dst_ip=公共DNS && dst_port=443),所以这个观点站不住脚;更何况 DoH 流量的数据包大小明显不同于常规网站 HTTPS 的数据包大小。 也就是说,国内DNS“藏不住”,国外DNS没必要藏(反正都走了代理)。 |
This comment was marked as resolved.
This comment was marked as resolved.
已实现,使用自定义组即可,自由搭配 upstream、ipset/nftset。 |
请问有计划在 gfwlist.ext 和 ignlist.ext 中实现正则表达式做分流支持吗? |
没有这个计划。 什么需求会要用到正则? |
我看到一些能找到的 gfwlist 文件是用 AutoProxy 写的,里面很多会用到正则表达式,如果做转换为 chinadns-ng 支持的格式比较麻烦。 还有就是请问下对 chinadns-ng 里面对 子域名的子域名 是怎么处理的? |
这个大可不必担心,有很多成熟的 gfwlist2dnsmasq 工具,也有很多现成的 gfwlist.txt 域名列表。它们会处理正则表达式(一般也就是 chinadns-ng 的 dnl(domain name list,域名列表),里面配置的是 “域名后缀”。模式
|
2.0 已完成,见最新 2024.04.27 版本。其他问题请单独开 issue 讨论。 |
能不能说下zig解决了c的哪些痛点 |
C 的定位其实是“可移植的汇编语言”,因此 C 不可能有太多语言方面的更改(看看 C11、C17、C23 就明白了)。 作为 C 程序员,我一直在寻找另一门“更现代”的 C 语言,它具有与 C 一样的简单性(显然 C++、Rust 并不“简单”)、高性能(带 GC 的语言首先被排除,比如 Go),因此我找到了 Zig。 正如官网以及很多博客所说,Zig 致力于打造一门更现代的 C 语言。但就目前来看,Zig 还不足以完全替代 C,长远来看,也不可能取代 C,与 C/C++ 共存应该是一个比较理想的情况。而且 Zig 目前的热度一般,距离 Zig 1.0 也还有许多工作要做,我相信多数人都是因为 下面来说说 Zig 解决了什么问题(都是我个人的实际使用体验):
不足之处,或者说让我感到不爽的地方:
更新:
|
@zfl9 comptime比constexpr和consteval好在哪呢 |
comptime 基本等于 C++ template + consteval + constexpr,而且 comptime 是常规 zig 语法。 另外,zig 有编译时的反射: |
是的,我赞同了这个评论。zig 确实需要更强大的类型建模能力。虽然现在勉强能满足,但略微繁琐。 zig 中的 packed struct 与 C 的 packed struct(如 GCC/Clang 的 zig 的 packed struct 实际上是一种 特殊的整数,只是这个整数的内存布局用一个结构体来描述。结构体各字段的类型只能是整数类型(bool、enum 也是整数的一种),packed struct 中的字段,按照其声明顺序,依次从“底层整数”中分配 bit(从底层整数的 LSB 最低有效位 开始分配,一直到 MSB 最高有效位)。这些 bit 字段之间不存在填充/间隙。 所以我非常赞同将 packed struct 改为 bitfield struct。 C 的 |
为减少 DNS 工具链的“套娃”,提高 chinadns-ng 的易用性,计划开发
1.0、2.0 版本。1.0 版本要实现的功能 (已完成,见 2024.03.07 版本):
2.0 版本要实现的功能:
考虑支持 DNS over HTTPS 上游(可选的,不带 DoH 的可能称为 lite 版)--cache-stale
参数最大值调整,目前最大是 65535(u16),某些情况下不太够--server
、--ipset
、定义其他类型的 DNS 记录)tcp://
上游增加 pipeline 长连接支持,目前是采用的是 tcp 短连接 #151支持定义其他类型的本地 DNS 记录,如 SRV(有需求请单独开 issue)预计将使用单个 chinadns-ng 进程,替代 经典用例 下的
dnsmasq + chinadns-ng + dns2tcp/dnsproxy
组合。The text was updated successfully, but these errors were encountered: