-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
WIN11的DOH必需认HTTP200状态代码才能用smartdnsr的DOH #1894
Comments
我认为对于不是路径是“/dns-query”的,应返回代码404 |
别增加代码了,这又不是要做成真正的HTTP服务端,表现成“我能正常访问”就行了。 |
这是RFC8484的规范 |
rfc 没有规定在“不是在查询dns”时,http应该应答什么,rfc 建议遵循 http 的规范 (section-4.2.1) |
我又重新研究了下,先说结果,不是200的问题,是“HTTP2”的问题,smartdns不支持http2,只返回1.1的,所以WIN11不认,感觉就是WIN11的DOH强制使用HTTP2,而不会先协商一下使用那种版本的协议。 测试过程: 1,smartdns直接使用443端口的DOH,WIN11不认。 2,NGINX反代smartdns,“listen 443 ssl http2;”,WIN11认了,成功解释。 3,NGINX仅去掉http2,“listen 443 ssl;”,WIN11不认了。 另外,还印证一下无谓的事情,在WIN11上自己加的DOH DNS模版,DHCP分配到IP(DNS也是自动),只要配合模版,虽然DNS那里显示的是(未加密),但实际看NGINX日志,WIN11就在那解释了。 |
问题现象
这个应该算是WIN11的问题,但smartdns也应该承担一部分。
当启用smartdnsr的DOH、且端口为443时,访问“
https://IP或域名/反斜杠或任意路径
”时,都会返回400错误,就是这个400错误,会导致WIN11的DOH认为服务不可用。解决方法,只要“
https://IP或域名
”返回200,WIN11就认了,解决问题了。运行环境
固件型号
smartdns.1.2024.06.12-2222.mipsel-openwrt-all
smartdns来源以及版本
Release 46
最终建议,只要路径和“/dns-query”没关系的,直接返回200,或者加个选项,例如“强制返回200代码”。
The text was updated successfully, but these errors were encountered: