mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-11-14 17:15:24 +03:00
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:
@@ -475,6 +475,36 @@
|
||||
"form": {
|
||||
"echSockopt": "Sockopt ECH",
|
||||
"echSockoptTip": "Opções de socket para a conexão que o Xray usa ao buscar a lista de configurações ECH (por exemplo, rotear a consulta por um outbound dialerProxy). Deixe desativado para usar os padrões.",
|
||||
"echCdnWarningTitle": "Chaves ECH geradas localmente só funcionam em conexões diretas",
|
||||
"echCdnWarningBody": "Um par de chaves criado com «Get New ECH Cert» só é válido quando os clientes se conectam diretamente a este VPS. Se o inbound for proxiado pelo Cloudflare CDN (VLESS + xhttp/WS atrás da nuvem laranja), o Cloudflare encerra o TLS externo com as próprias chaves ECH e as rotaciona, então uma chave local sempre falha no handshake. Use o assistente de ECH dinâmico em vez disso.",
|
||||
"echDynamicTitle": "ECH dinâmico do Cloudflare (funciona atrás da nuvem laranja)",
|
||||
"echPresetLabel": "Combinação predefinida",
|
||||
"echPresetOtherDomains": "Outros domínios de destino ECH",
|
||||
"echPresetAdvanced": "Combinação personalizada…",
|
||||
"echDynamicIntro": "Preenche a lista de configurações ECH com uma consulta dinâmica do lado do cliente (domínio de destino + resolvedor DoH). O cliente consulta o resolvedor pelo registro HTTPS do domínio a cada conexão, então sempre vê as chaves ECH atuais — incluindo as rotacionadas do Cloudflare.",
|
||||
"echDynamicDomain": "Domínio de destino ECH",
|
||||
"echDynamicDoh": "Resolvedor DoH",
|
||||
"echDomainAuto": "Automático — resolver o registro ECH do SNI do nó",
|
||||
"echDynamicApply": "Aplicar à lista de configurações ECH",
|
||||
"echDynamicCustom": "URL personalizada…",
|
||||
"echDynamicInvalid": "Informe um domínio válido e uma URL de resolvedor (https, h2c ou udp) para montar o valor.",
|
||||
"echDynamicUnsupportedScheme": "O Xray só resolve a configuração ECH via https://, h2c:// ou udp://. Este destino nunca responderá.",
|
||||
"echDynamicPlaceholder": "cloudflare-ech.com+https://dns.alidns.com/dns-query",
|
||||
"echDynamicOverwriteTitle": "Este inbound tem um par de chaves ECH gerado localmente",
|
||||
"echDynamicOverwriteBody": "Atrás de um CDN esse par de chaves nunca é usado: o CDN encerra o handshake TLS. Aplicar o valor dinâmico substituirá a lista de configurações ECH e apagará a chave ECH local.",
|
||||
"echDynamicOverwriteConfirm": "Substituir e apagar chave local",
|
||||
"echExistingNotDynamic": "Esta lista de configurações ECH não está na forma dinâmica; preenchê-la substituirá o que você definiu manualmente.",
|
||||
"echDohGroup": {
|
||||
"china": "China continental (acessível atrás da GFW)",
|
||||
"global": "Mundial",
|
||||
"europe": "Europa",
|
||||
"udp": "DNS simples (udp://)"
|
||||
},
|
||||
"echRecommended": "recomendado",
|
||||
"echMainlandAdvisory": "Resolvedores da China continental exigem um domínio de destino cujo registro HTTPS carregue ECH; verifique o par antes de salvar.",
|
||||
"echConfigList": "Lista de configurações ECH",
|
||||
"echConfigListHint": "Enviada aos clientes nos links de compartilhamento e nas assinaturas. Aceita um ECHConfigList local (do botão abaixo) ou a forma dinâmica domínio+URL de DoH.",
|
||||
"echKeyHint": "Somente para conexões diretas — deixe vazio quando o inbound estiver atrás de um CDN.",
|
||||
"curvePreferences": "Preferências de curva",
|
||||
"curvePreferencesTip": "Restringe as curvas de troca de chaves TLS que o servidor oferece, em ordem de preferência (por exemplo, X25519MLKEM768, X25519). Deixe vazio para usar os padrões do Xray-core.",
|
||||
"masterKeyLog": "Log da chave mestra",
|
||||
@@ -632,7 +662,6 @@
|
||||
"usageOption": "Opção de uso",
|
||||
"buildChain": "Construir cadeia",
|
||||
"echKey": "ECH key",
|
||||
"echConfig": "Config ECH",
|
||||
"pinnedPeerCertSha256": "SHA-256 do cert. do par fixado",
|
||||
"pinnedPeerCertSha256Tip": "Hashes SHA-256 do certificado do par como string hexadecimal (ex. e8e2d3…), separados por vírgula. Apenas no painel — não é gravado na config xray do servidor, mas é incluído nos links de compartilhamento para que clientes possam fixar o certificado.",
|
||||
"pinnedPeerCertSha256Placeholder": "hash(es) hexadecimal, separados por vírgula",
|
||||
@@ -2361,7 +2390,6 @@
|
||||
"pins": "SHA-256 do certificado fixado",
|
||||
"verifyPeerCertByName": "Verificar certificado do par pelo nome",
|
||||
"allowInsecure": "Permitir inseguro",
|
||||
"echConfigList": "Lista de configurações ECH",
|
||||
"muxParams": "Mux",
|
||||
"sockoptParams": "Sockopt",
|
||||
"finalMask": "Final Mask",
|
||||
|
||||
Reference in New Issue
Block a user