feat(xdns): add encrypted DNS resolver support by HPPC114514 · Pull Request #7103 · XTLS/Xray-core · GitHub
Skip to content

feat(xdns): add encrypted DNS resolver support - #7103

Draft
HPPC114514 wants to merge 25 commits into
XTLS:mainfrom
HPPC114514:main
Draft

HPPC114514 wants to merge 25 commits into
XTLS:mainfrom
HPPC114514:main

Conversation

@HPPC114514

@HPPC114514 HPPC114514 commented Oct 7, 2026 •

Copy link
Copy Markdown

改动说明

为 xdns 增加 DoT、DoH(HTTP/2)、DoQ 和 DoH3 解析器,支持通过加密 DNS 服务传输隧道报文。保留 UDP、TCP 解析器,继续使用原始 DNS 报文,保留 TXT、CNAME 等查询类型和响应内容。

主要改动

  • 新增 tls://、https://、quic:// 和 https+h3:// 地址解析,支持默认端口、HTTPS 路径和查询参数。
  • 新增 serverName、bootstrap 和证书信任配置,并校验解析器地址及 TLS 参数。
  • 为解析器增加请求超时、并发及队列限制,校验 DNS 响应与原始查询是否匹配。
  • 调整 xdns 发送和关闭流程,向调用方返回发送失败,补充连接、流和 HTTP/3 传输实例的资源回收。
  • 为共享 DNS 查询和 finalmask 拨号增加 context 支持,传递查询取消和超时信号。

@HPPC114514

HPPC114514 commented Oct 7, 2026 •

Copy link
Copy Markdown
Author

@LjhAUMEM

LjhAUMEM commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

什么AI避雷一下 框架打这么好怎么还有那么多非必要改动

@HPPC114514

Copy link
Copy Markdown
Author

什么AI避雷一下 框架打这么好怎么还有那么多非必要改动

可能是提示词写臭了

@RPRX

RPRX commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

@LjhAUMEM 你来弄吧先只加 DoH,我咋又嗅到了 XMUX 的气息,记得支持 h3

不过这个想支持 h3 的话不能像 2cc0876 弄 h2c+dialerProxy,只能加 tlsSettings #7090 (comment) ,也方便分享

所以单个 resolver 的 sockopt 先不加吧,有需要再加,暂时还是复用底层传输的 sockopt

@RPRX

RPRX commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

理论上 Xray-core 内所有 h2/h3 请求都得支持 XMUX,所有 TLS 请求都得支持 tlsSettings 以实现安全的 domain fronting

以及都应该支持 UA 乃至任意 header 包括垃圾数据 padding、支持 Browser Dialer 等,或许以后弄 XMUX 设置里面吧

@RPRX

RPRX commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

@Fangliding 所以 TLS ECH DoH 暂不支持 h3 分享就有点尴尬了,要不 core 内所有能写 https:// 的地方都能写 http3://?

以及 Xray-core 内的 h3 都得支持 quicParams,这些都加起来好麻烦,得想想怎么设计了,或许以后往 tlsSettings 里塞一份

@RPRX

RPRX commented Oct 12, 2026

Copy link
Copy Markdown
Member

另外想到了 Browser Dialer #6016 ,现在 h2c 然后“由外部程序包上 TLS”不如直接浏览器,或许以后不再支持 h2c @patterniha

@Fangliding

Copy link
Copy Markdown
Member

这些东西我觉得够用就好 支持那么多有的没的麻烦又没用

@LjhAUMEM

Copy link
Copy Markdown
Collaborator

只想用 http.DefaultTransport + http.Client 实现个,最多支持配置 pool tlsCfg,H3 应该换成 http3.Transport 就可以,多个 quicCfg,pool 就是有多少 client.Do 并发

@LjhAUMEM

Copy link
Copy Markdown
Collaborator

哦对还有尊重 429

@HPPC114514 HPPC114514 reopened this Oct 12, 2026
@HPPC114514 HPPC114514 changed the title feat(xdns): add DoT and DoH support with the new configuration syntax (#6718) feat(xdns): add encrypted DNS resolver support Oct 15, 2026
RPRX pushed a commit that referenced this pull request Oct 15, 2026
@RPRX

RPRX commented Oct 15, 2026

Copy link
Copy Markdown
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants