Skip to content

Handle ECH H2C query correctly#6261

Open
Fangliding wants to merge 1 commit into
mainfrom
ech-h2c
Open

Handle ECH H2C query correctly#6261
Fangliding wants to merge 1 commit into
mainfrom
ech-h2c

Conversation

@Fangliding
Copy link
Copy Markdown
Member

close #6259

Co-Authored-By: j2rong4cn <36783515+j2rong4cn@users.noreply.github.com>
@j2rong4cn
Copy link
Copy Markdown
Contributor

内置dns的DOH h2c是支持"fromMitm",ECH的就不能吗 613c63b

func NewDoHNameServer(url *url.URL, dispatcher routing.Dispatcher, h2c bool, disableCache bool, serveStale bool, serveExpiredTTL uint32, clientIP net.IP) *DoHNameServer {
url.Scheme = "https"
mode := "DOH"
if dispatcher == nil {
mode = "DOHL"
}
errors.LogInfo(context.Background(), "DNS: created ", mode, " client for ", url.String(), ", with h2c ", h2c)
s := &DoHNameServer{
cacheController: NewCacheController(mode+"//"+url.Host, disableCache, serveStale, serveExpiredTTL),
dohURL: url.String(),
clientIP: clientIP,
}
s.httpClient = &http.Client{
Transport: &http2.Transport{
IdleConnTimeout: net.ConnIdleTimeout,
ReadIdleTimeout: net.ChromeH2KeepAlivePeriod,
DialTLSContext: func(ctx context.Context, network, addr string, cfg *tls.Config) (net.Conn, error) {
dest, err := net.ParseDestination(network + ":" + addr)
if err != nil {
return nil, err
}
var conn net.Conn
if dispatcher != nil {
dnsCtx := toDnsContext(ctx, s.dohURL)
if h2c {
dnsCtx = session.ContextWithMitmAlpn11(dnsCtx, false) // for insurance
dnsCtx = session.ContextWithMitmServerName(dnsCtx, url.Hostname())
}
link, err := dispatcher.Dispatch(dnsCtx, dest)

@Fangliding
Copy link
Copy Markdown
Member Author

Fangliding commented Jun 4, 2026

不知道内置DNS是什么时候加的 我认为这不是很有必要 而且这也不是 "mitm"

Maolaohei added a commit to Maolaohei/Bray-Core that referenced this pull request Jun 4, 2026
…(freedom compatibility)

XTLS#6261 — Handle ECH H2C query correctly (Fangliding)
- dnsQuery: h2c scheme → https,修复 ECH 配置查询

XTLS#6254 — brutal finalmask (LjhAUMEM)
- 新增 force-brutal finalmask 类型,配合 tcp-brutal 内核模块
- 7 文件新增,全新增模块

XTLS#6058 — Direct/Freedom Better Compatibility (Meo597)
- strategy 类型从 [][]byte → [11][3]byte 更安全
- freedom 出站新增 DomainStrategy / targetStrategy 支持
- 兼容旧的 freedom.domainStrategy 配置
@j2rong4cn
Copy link
Copy Markdown
Contributor

不知道内置DNS是什么时候加的 我认为这不是很有必要 而且这也不是 "mitm"

内置dns的DOH h2c支持"fromMitm",而ECH不支持"fromMitm"?岂不是很迷惑?

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.

[BUG] TLS ECH无法使用 DOH(h2c) 查询

2 participants