Files
3x-ui/README.es_ES.md
T
Kuzz007 ab39f14b18 docs: update all 7 READMEs for the embedded AmneziaWG architecture
Replace the kernel-module/DKMS/awg-quick description (What's different,
Supported Platforms, Acknowledgment) with the embedded amneziawg-go +
gVisor architecture, and note the temporarily-unsupported per-client
IPv6 identity and port-forwarding gap until their fast-follow releases.
2026-08-02 20:34:57 +03:00

17 KiB
Raw Blame History

English | فارسی | العربية | 中文 | Español | Русский | Türkçe

3x-ui

Build GO Version License

Este es un fork personal de 3X-UI — un panel de control web avanzado y de código abierto para Xray-core — con una incorporación principal: soporte nativo para AmneziaWG, como protocolo de primera clase junto a VLESS, VMess, Trojan y el resto. Todo lo que 3X-UI ya hacía (entradas multiprotocolo, contabilidad de tráfico por cliente, suscripciones, multinodo, bot de Telegram) permanece sin cambios y funciona exactamente igual que en el proyecto original.

Este fork se construyó para funcionar en los routers y servidores personales de su autor; no pretende sustituir ni competir con el proyecto original. Si buscas el panel de propósito general, dirígete a MHSanaei/3x-ui — todo lo que sigue documenta únicamente las diferencias de este fork.

Important

Este proyecto está destinado únicamente al uso personal. Por favor, no lo uses para fines ilegales ni en un entorno de producción.

En qué se diferencia este fork: AmneziaWG

AmneziaWG es una variante de WireGuard que añade una capa de ofuscación (paquetes basura, relleno aleatorio, reescritura de cabeceras mágicas) diseñada para vencer la identificación de huella digital de protocolo basada en DPI — el mismo túnel, pero uno que ya no parece un túnel en el cable.

  • Integrado, no un módulo de kernel. AmneziaWG se ejecuta enteramente dentro del propio proceso del panel (amneziawg-go sobre una pila de red en espacio de usuario) — sin compilación DKMS, sin conflictos con Secure Boot, sin contenedor sidecar con privilegios, y nada que instalar en el host en absoluto.
  • Un protocolo de primera clase. Una entrada AmneziaWG vive en la misma tabla Inbound que el resto, por lo que obtiene gratuitamente las operaciones masivas, el modal de código QR/descarga de configuración y los enlaces de suscripción — nada nuevo que aprender.
  • Ofuscación completa de AmneziaWG 2.0 — Jc/Jmin/Jmax (paquetes basura), S1S4 (relleno de paquetes), H1H4 (cabeceras mágicas) y el paquete de firma I1, todos editables por entrada con un botón de aleatorización de un solo clic, además de un modo compatible con 1.x para clientes más antiguos.
  • El tráfico de cada cliente ya pasa por Xray. Sin TPROXY, sin un puente que activar aparte: cada entrada AmneziaWG reenvía directamente al propio inbound SOCKS5 de Xray por loopback, por lo que las estadísticas por cliente, el estado en línea, el sniffing y las reglas de la página "Enrutamiento" ya existente en el panel simplemente funcionan, igual que con cualquier otro protocolo — sin configuración adicional.
  • Enlaces de compartición vpn:// reales — el enlace de copia/código QR por cliente y el endpoint de suscripción emiten el esquema vpn:// real que espera la aplicación oficial AmneziaVPN (base64url de un .conf plano), no un formato de URI inventado que la app no podía importar.
  • Temporalmente sin soporte tras esta reescritura: una dirección IPv6 pública distinta por cliente y el reenvío de puertos por cliente dependían ambos de las reglas de iptables a nivel de host del antiguo módulo de kernel, que aún no tienen un equivalente integrado. Ambos están planificados como próximas versiones; la configuración ya guardada de cualquiera de los dos no se pierde, simplemente queda inactiva hasta entonces.

Otros cambios en este fork

Las mejoras más pequeñas específicas de este fork, más allá de AmneziaWG, se añaden aquí a medida que se incorporan:

  • Autocompletado de reglas de enrutamiento — los campos Domain/IP del editor de reglas de Routing de Xray ahora sugieren categorías geosite/geoip (por ejemplo, escribir "you" sugiere geosite:youtube) generadas en vivo a partir de los archivos .dat realmente instalados en la carpeta bin de Xray, incluidos los archivos personalizados añadidos mediante la función de actualización automática de Geodata (por ejemplo, geosite_roscom.dat). La entrada de texto libre sigue funcionando exactamente igual que antes.
  • Velocidad en vivo para AmneziaWG y MTProto — la columna Speed mostraba «--» para las entradas/clientes de AmneziaWG y MTProto (mtg) aunque los totales de tráfico acumulado eran correctos, ya que ninguno de los dos se ejecuta dentro del propio runtime de Xray-core y por tanto son invisibles para su API de estadísticas. Ahora ambos difunden la velocidad en vivo junto con el resto de protocolos.
  • Los archivos personalizados en bin/ sobreviven a las actualizaciones — una reinstalación/actualización solía borrar toda la carpeta bin/ antes de volver a extraer la versión, eliminando silenciosamente cualquier cosa colocada allí manualmente (lo más común, un archivo geoip/geosite personalizado referenciado desde una regla de enrutamiento mediante ext:<file>:<code>) y rompiendo todas las entradas en el siguiente inicio. El instalador ahora respalda bin/ primero y restaura solo lo que la nueva versión no incluye.

Características

  • Entradas multiprotocolo — VLESS, VMess, Trojan, Shadowsocks, WireGuard, AmneziaWG, Hysteria2, HTTP, SOCKS (Mixed), Dokodemo-door / Tunnel y TUN.
  • Transportes y seguridad modernos — TCP (Raw), mKCP, WebSocket, gRPC, HTTPUpgrade y XHTTP, protegidos con TLS, XTLS y REALITY.
  • Fallbacks — sirve varios protocolos en un solo puerto (p. ej. VLESS y Trojan en el 443) usando la función de fallback de Xray.
  • Gestión por cliente — cuotas de tráfico, fechas de caducidad, límites de IP, estado en línea en tiempo real y enlaces de compartición, códigos QR y suscripciones con un solo clic.
  • Estadísticas de tráfico — por entrada, por cliente y por salida, con controles de reinicio.
  • Soporte multinodo — gestiona y escala a través de varios servidores desde un único panel.
  • Salida y enrutamiento — WARP, NordVPN, reglas de enrutamiento personalizadas, balanceadores de carga y encadenamiento de proxy de salida.
  • Servidor de suscripción integrado con múltiples formatos de salida y plantillas de página personalizables.
  • Bot de Telegram para monitorización y gestión remotas.
  • API RESTful con documentación Swagger dentro del panel.
  • Almacenamiento flexible — SQLite (predeterminado) o PostgreSQL.
  • 13 idiomas de interfaz con temas oscuro y claro.
  • Integración con Fail2ban para aplicar límites de IP por cliente.

Capturas de pantalla

Haz clic para expandir Overview Inbounds Add client Configs

Inicio Rápido

curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash

Para instalar una versión específica, añade su etiqueta (p. ej. v3.5.0-awg.1):

curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s v3.5.0-awg.1

Para instalar la compilación continua dev (el último prelanzamiento por commit desde main, no una versión estable), pasa dev:

curl -fsSL https://raw.githubusercontent.com/Kuzz007/3x-ui/main/install.sh | bash -s dev

Los lanzamientos estables propios de este fork se etiquetan como <versión base de upstream>-awg.N (p. ej. v3.5.0-awg.1, construido sobre lo que upstream llama v3.5.0) — nunca un simple vX.Y.Z — para que nunca se confundan con un lanzamiento real de MHSanaei/3x-ui con el mismo número.

Durante la instalación se generan un nombre de usuario, una contraseña y una ruta de acceso aleatorios. Tras la instalación, ejecuta x-ui para abrir el menú de gestión, donde puedes iniciar/detener el servicio, ver o restablecer tus credenciales de acceso, gestionar certificados SSL y mucho más.

Para la documentación completa del panel más allá de lo que cubre este README, visita la Wiki del proyecto original — nada de ella es específico de este fork, así que sigue siendo totalmente válida.

Instalación desatendida

El instalador también se ejecuta de forma no interactiva para cloud-init. Define XUI_NONINTERACTIVE=1 (o canalízalo sin TTY) y realizará la instalación de principio a fin sin ninguna pregunta, generando credenciales aleatorias y escribiéndolas en /etc/x-ui/install-result.env. Consulta deploy/ para:

Plataformas Compatibles

Sistemas operativos: Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap) y Alpine. (El proyecto original también publica una versión para Windows; la CI de este fork no lo hace — todo aquí está orientado a servidores/routers que ejecutan Linux.)

Arquitecturas: amd64 · 386 · arm64 (aarch64) · armv7 · armv6 · armv5 · s390x.

AmneziaWG está integrado directamente en el propio binario del panel (consulta la sección En qué se diferencia este fork) — sin módulo de kernel, sin paso de instalación aparte, sin configuración específica por distribución.

Opciones de Base de Datos

3X-UI admite dos backends, que se eligen durante la instalación:

  • SQLite (predeterminado) — un único archivo en /etc/x-ui/x-ui.db. Sin configuración, ideal para despliegues pequeños y medianos.
  • PostgreSQL — recomendado para un gran número de clientes o configuraciones multinodo. El instalador puede instalar PostgreSQL localmente por ti, o aceptar un DSN a un servidor existente.

En tiempo de ejecución, el backend se selecciona mediante variables de entorno (el instalador las escribe por ti en /etc/default/x-ui):

XUI_DB_TYPE=postgres
XUI_DB_DSN=postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable

Migrar una instalación de SQLite existente a PostgreSQL

x-ui migrate-db --dsn "postgres://xui:password@127.0.0.1:5432/xui?sslmode=disable"
# luego define XUI_DB_TYPE y XUI_DB_DSN en /etc/default/x-ui y reinicia:
systemctl restart x-ui

El archivo SQLite de origen permanece intacto; elimínalo manualmente una vez que hayas verificado el nuevo backend.

Variables de Entorno

Variable Descripción Predeterminado
XUI_DB_TYPE Backend de base de datos: sqlite o postgres sqlite
XUI_DB_DSN Cadena de conexión de PostgreSQL (cuando XUI_DB_TYPE=postgres)
XUI_DB_FOLDER Directorio del archivo de base de datos SQLite /etc/x-ui
XUI_DB_MAX_OPEN_CONNS Máximo de conexiones abiertas (pool de PostgreSQL)
XUI_DB_MAX_IDLE_CONNS Máximo de conexiones inactivas (pool de PostgreSQL)
XUI_INIT_WEB_BASE_PATH La ruta URI inicial para el panel web /
XUI_ENABLE_FAIL2BAN Habilitar la aplicación de límites de IP basada en Fail2ban true
XUI_LOG_LEVEL Nivel de registro (debug, info, warning, error) info
XUI_DEBUG Habilitar el modo de depuración false
XUI_TUNNEL_HEALTH_MONITOR Habilitar el monitor de salud del túnel (sondea una URL y reinicia xray tras fallos repetidos; un reinicio desconecta a todos los clientes) false
XUI_TUNNEL_HEALTH_PROXY Proxy a través del cual se envía el sondeo; apúntalo a una entrada local de xray para que el sondeo pruebe el túnel (p. ej. socks5://127.0.0.1:1080). Vacío significa que el sondeo solo comprueba la conectividad del host
XUI_TUNNEL_HEALTH_URL URL sondeada para verificar la salud del túnel https://www.cloudflare.com/cdn-cgi/trace
XUI_TUNNEL_HEALTH_INTERVAL Intervalo entre sondeos 30s
XUI_TUNNEL_HEALTH_TIMEOUT Tiempo de espera por sondeo 10s
XUI_TUNNEL_HEALTH_FAILURES Fallos consecutivos antes de que se active un reinicio 3
XUI_TUNNEL_HEALTH_COOLDOWN Retardo mínimo entre reinicios consecutivos 5m

Idiomas Compatibles

La interfaz del panel está disponible en 13 idiomas:

English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil)

Notas para Desarrolladores

Este es un fork personal y no busca colaboradores externos, pero CONTRIBUTING.md sigue conteniendo instrucciones detalladas y útiles para configurar un entorno de desarrollo local (versiones de Go/Node, el compilador de C requerido para CGo, comandos de build/lint/test), por si tú mismo trabajas sobre esta base de código.

Reconocimiento

Este fork está construido enteramente sobre MHSanaei/3x-ui — todo el panel, el soporte multiprotocolo y la arquitectura subyacente son obra suya; el soporte de AmneziaWG es lo único añadido aquí. Si el proyecto original te resulta útil, los enlaces de apoyo del autor original siguen siendo el lugar correcto para ello:

Buy Me A Coffee
Crypto donation button by NOWPayments

La implementación de AmneziaWG en este fork se basa en / está inspirada por:

  • amnezia-vpn/amneziawg-go — la implementación de AmneziaWG en espacio de usuario que este fork integra directamente en el proceso del panel, sobre una pila de red gVisor, sustituyendo al backend original basado en módulo de kernel de abajo.
  • MHSanaei/3x-ui#6086 — el pull request original de AmneziaWG contra el proyecto original (enfoque de sidecar Docker); este fork reutiliza su estructura de schema/frontend.
  • coinman-dev/3ax-ui — un fork independiente que ya ejecuta AmneziaWG nativo en producción; el gestor original de este fork basado en el módulo de kernel (awg-quick) y el generador de parámetros de ofuscación de AmneziaWG 2.0 se portaron desde su paquete awg/ antes de esta reescritura.

Un Agradecimiento Especial a

  • alireza0
  • Iran v2ray rules (Licencia: GPL-3.0): Reglas de enrutamiento mejoradas para v2ray/xray y v2ray/xray-clients con dominios iraníes incorporados y un enfoque en seguridad y bloqueo de anuncios.
  • Russia v2ray rules (Licencia: GPL-3.0): Este repositorio contiene reglas de enrutamiento V2Ray actualizadas automáticamente basadas en datos de dominios y direcciones bloqueadas en Rusia.

Herramientas de la Comunidad

Herramientas e integraciones construidas por la comunidad alrededor de 3x-ui.

  • terraform-provider-3x-ui (Licencia: MIT): Gestiona inbounds, clientes, configuración del panel y configuración de Xray como código con Terraform / OpenTofu.