feat(tls): add a dynamic DoH helper for echConfigList, with CDN guidance (#6869)

echConfigList already accepted Xray's dynamic form, target domain + DoH URL,
but nothing in the inbound or host forms explained or built it. A helper now
builds that value from presets or a custom domain and resolver, accepts only the
schemes Xray dials (https, h2c, udp; scheme case normalised), warns that a key
generated locally does not work behind a CDN, and asks before overwriting local
ECH keys. The helper's controls carry accessible labels, and the resolver list
holds only identified public resolvers.
This commit is contained in:
55575455
2026-10-24 12:07:11 +08:00
committed by GitHub
parent 41bafb3fd5
commit f43645656c
21 changed files with 1380 additions and 53 deletions
+30 -2
View File
@@ -611,7 +611,6 @@
"usageOption": "Kullanım Seçeneği",
"buildChain": "Zincir Oluştur",
"echKey": "ECH Key",
"echConfig": "ECH Yapılandırması",
"pinnedPeerCertSha256": "Sabitlenmiş Peer Sertifikası SHA-256",
"pinnedPeerCertSha256Tip": "Peer sertifikasının SHA-256 hash'leri onaltılık (hex) dizge olarak (örn. e8e2d3…), virgülle ayrılmış. Sadece panel — sunucunun Xray yapılandırmasına yazılmaz, ancak kullanıcıların sertifikayı sabitleyebilmesi için paylaşım bağlantılarına eklenir.",
"pinnedPeerCertSha256Placeholder": "onaltılık (hex) hash(ler), virgülle ayrılmış",
@@ -679,6 +678,36 @@
},
"echSockopt": "ECH Sockopt",
"echSockoptTip": "Xray'in ECH yapılandırma listesini almak için kullandığı bağlantının soket seçenekleri (ör. aramayı bir dialerProxy giden bağlantısı üzerinden yönlendirme). Varsayılanları kullanmak için devre dışı bırakın.",
"echCdnWarningTitle": "Yerel olarak oluşturulan ECH anahtarları yalnızca doğrudan bağlantılarda çalışır",
"echCdnWarningBody": "«Get New ECH Cert» ile oluşturulan anahtar çifti yalnızca istemciler doğrudan bu VPS'e bağlandığında geçerlidir. Inbound, Cloudflare CDN üzerinden proxyleniyorsa (turuncu bulutun arkasında VLESS + xhttp/WS), Cloudflare dış TLS'i kendi ECH anahtarlarıyla sonlandırır ve bunları döndürür; bu yüzden yerel anahtar el sıkışmasında hep başarısız olur. Bunun yerine Dinamik ECH yardımcısını kullanın.",
"echDynamicTitle": "Cloudflare dinamik ECH (turuncu bulutun arkasında çalışır)",
"echPresetLabel": "Hazır kombinasyon",
"echPresetOtherDomains": "Diğer ECH hedef alan adları",
"echPresetAdvanced": "Özel kombinasyon…",
"echDynamicIntro": "ECH yapılandırma listesini istemci tarafında dinamik bir sorguyla doldurur (hedef alan adı + DoH çözümleyici). İstemci her bağlantıda çözümleyiciye alan adının HTTPS kaydını sorar, böylece her zaman güncel ECH anahtarlarını görür — Cloudflare'in döndürdüğü anahtarlar dahil.",
"echDynamicDomain": "ECH hedef alan adı",
"echDynamicDoh": "DoH çözümleyici",
"echDomainAuto": "Otomatik — düğümün SNI değeri için ECH kaydını çöz",
"echDynamicApply": "ECH yapılandırma listesine uygula",
"echDynamicCustom": "Özel URL…",
"echDynamicInvalid": "Değeri oluşturmak için geçerli bir alan adı ve bir çözümleyici URL'si (https, h2c veya udp) girin.",
"echDynamicUnsupportedScheme": "Xray ECH yapılandırmasını yalnızca https://, h2c:// veya udp:// üzerinden çözer. Bu uç nokta hiçbir zaman yanıt vermez.",
"echDynamicPlaceholder": "cloudflare-ech.com+https://dns.alidns.com/dns-query",
"echDynamicOverwriteTitle": "Bu inbound'da yerel olarak oluşturulmuş bir ECH anahtar çifti var",
"echDynamicOverwriteBody": "Bir CDN'in arkasında bu anahtar çifti hiç kullanılmaz: TLS el sıkışmasını CDN sonlandırır. Dinamik değeri uygulamak ECH yapılandırma listesini değiştirir ve yerel ECH anahtarını siler.",
"echDynamicOverwriteConfirm": "Değiştir ve yerel anahtarı sil",
"echExistingNotDynamic": "Bu ECH yapılandırma listesi dinamik biçimde değil; doldurmak elle ayarladığınız değerlerin yerine geçer.",
"echDohGroup": {
"china": "Çin anakarası (GFW'in arkasından erişilebilir)",
"global": "Küresel",
"europe": "Avrupa",
"udp": "Düz DNS (udp://)"
},
"echRecommended": "önerilir",
"echMainlandAdvisory": "Çin anakarasındaki çözümleyiciler, HTTPS kaydı ECH taşıyan bir hedef alan adı gerektirir; kaydetmeden önce kombinasyonu doğrulayın.",
"echConfigList": "ECH yapılandırma listesi",
"echConfigListHint": "Paylaşım bağlantılarında ve aboneliklerde istemcilere gönderilir. Yerel bir ECHConfigList (aşağıdaki düğmeden) veya dinamik alan adı+DoH URL biçimini kabul eder.",
"echKeyHint": "Yalnızca doğrudan bağlantılar için — inbound bir CDN'in arkasındayken boş bırakın.",
"curvePreferences": "Eğri Tercihleri",
"curvePreferencesTip": "Sunucunun sunduğu TLS anahtar değişim eğrilerini tercih sırasına göre kısıtlayın (ör. X25519MLKEM768, X25519). Xray-core varsayılanlarını kullanmak için boş bırakın.",
"masterKeyLog": "Ana Anahtar Günlüğü",
@@ -2360,7 +2389,6 @@
"fingerprint": "Parmak İzi",
"pins": "Sabitlenmiş sertifika SHA-256",
"allowInsecure": "Güvensize izin ver",
"echConfigList": "ECH yapılandırma listesi",
"muxParams": "Ağız",
"sockoptParams": "Sockopt",
"finalMask": "Son Maske",