mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-11-07 05:35:00 +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:
@@ -611,13 +611,42 @@
|
||||
"usageOption": "Opción de uso",
|
||||
"buildChain": "Construir cadena",
|
||||
"echKey": "ECH key",
|
||||
"echConfig": "Config ECH",
|
||||
"pinnedPeerCertSha256": "SHA-256 del cert. del par fijado",
|
||||
"pinnedPeerCertSha256Tip": "Hashes SHA-256 del certificado del par como cadena hexadecimal (p. ej. e8e2d3…), separados por comas. Solo en el panel — no se escribe en la config xray del servidor, pero se incluye en los enlaces para que los clientes puedan fijar el certificado.",
|
||||
"pinnedPeerCertSha256Placeholder": "hash(es) hexadecimal, separados por comas",
|
||||
"getNewEchCert": "Obtener nuevo cert ECH",
|
||||
"echSockopt": "ECH Sockopt",
|
||||
"echSockoptTip": "Opciones de socket para la conexión que Xray usa al obtener la lista de configuración ECH (por ejemplo, enrutar la consulta a través de una salida dialerProxy). Déjalo deshabilitado para usar los valores por defecto.",
|
||||
"echCdnWarningTitle": "Las claves ECH generadas localmente solo funcionan con conexiones directas",
|
||||
"echCdnWarningBody": "Un par de claves creado con «Get New ECH Cert» solo es válido cuando los clientes se conectan directamente a este VPS. Si el inbound está en proxy a través de Cloudflare CDN (VLESS + xhttp/WS detrás de la nube naranja), Cloudflare termina el TLS exterior con sus propias claves ECH y las rota, así que una clave local siempre falla el handshake. Usa en su lugar el asistente de ECH dinámico.",
|
||||
"echDynamicTitle": "ECH dinámico de Cloudflare (funciona detrás de la nube naranja)",
|
||||
"echPresetLabel": "Combinación predefinida",
|
||||
"echPresetOtherDomains": "Otros dominios de destino ECH",
|
||||
"echPresetAdvanced": "Combinación personalizada…",
|
||||
"echDynamicIntro": "Rellena la lista de configuración ECH con una consulta dinámica del lado del cliente (dominio de destino + resolutor DoH). El cliente pregunta al resolutor por el registro HTTPS del dominio en cada conexión, así que siempre ve las claves ECH actuales, incluidas las rotadas de Cloudflare.",
|
||||
"echDynamicDomain": "Dominio de destino ECH",
|
||||
"echDynamicDoh": "Resolutor DoH",
|
||||
"echDomainAuto": "Automático — resolver el registro ECH del SNI del nodo",
|
||||
"echDynamicApply": "Aplicar a la lista de configuración ECH",
|
||||
"echDynamicCustom": "URL personalizada…",
|
||||
"echDynamicInvalid": "Introduce un dominio válido y una URL de resolutor (https, h2c o udp) para construir el valor.",
|
||||
"echDynamicUnsupportedScheme": "Xray solo resuelve la configuración ECH mediante https://, h2c:// o udp://. Este destino nunca responderá.",
|
||||
"echDynamicPlaceholder": "cloudflare-ech.com+https://dns.alidns.com/dns-query",
|
||||
"echDynamicOverwriteTitle": "Este inbound tiene un par de claves ECH generado localmente",
|
||||
"echDynamicOverwriteBody": "Detrás de un CDN ese par de claves nunca se usa: el CDN termina el handshake TLS. Aplicar el valor dinámico reemplazará la lista de configuración ECH y borrará la clave ECH local.",
|
||||
"echDynamicOverwriteConfirm": "Reemplazar y borrar la clave local",
|
||||
"echExistingNotDynamic": "Esta lista de configuración ECH no está en la forma dinámica; rellenarla sustituirá lo que configuraste a mano.",
|
||||
"echDohGroup": {
|
||||
"china": "China continental (accesible detrás del GFW)",
|
||||
"global": "Mundial",
|
||||
"europe": "Europa",
|
||||
"udp": "DNS sin cifrar (udp://)"
|
||||
},
|
||||
"echRecommended": "recomendado",
|
||||
"echMainlandAdvisory": "Los resolutores de China continental necesitan un dominio de destino cuyo registro HTTPS lleve ECH; verifica la combinación antes de guardar.",
|
||||
"echConfigList": "Lista de configuración ECH",
|
||||
"echConfigListHint": "Se envía a los clientes en los enlaces de compartir y en las suscripciones. Acepta un ECHConfigList local (del botón de abajo) o la forma dinámica dominio+URL de DoH.",
|
||||
"echKeyHint": "Solo para conexiones directas — déjalo vacío cuando el inbound esté detrás de un CDN.",
|
||||
"curvePreferences": "Preferencias de curvas",
|
||||
"curvePreferencesTip": "Restringe las curvas de intercambio de claves TLS que ofrece el servidor, por orden de preferencia (por ejemplo, X25519MLKEM768, X25519). Déjalo vacío para usar los valores por defecto de Xray-core.",
|
||||
"masterKeyLog": "Registro de clave maestra",
|
||||
@@ -2361,7 +2390,6 @@
|
||||
"pins": "SHA-256 del cert. fijado",
|
||||
"verifyPeerCertByName": "Verificar cert. del par por nombre",
|
||||
"allowInsecure": "Permitir inseguro",
|
||||
"echConfigList": "Lista de config. ECH",
|
||||
"muxParams": "Mux",
|
||||
"sockoptParams": "Sockopt",
|
||||
"finalMask": "Máscara final",
|
||||
|
||||
Reference in New Issue
Block a user