English | فارسی | العربية | 中文 | Español | Русский
3X-UI es un panel de control web avanzado y de código abierto para gestionar servidores Xray-core. Ofrece una interfaz limpia y multilingüe para desplegar, configurar y monitorear una amplia gama de protocolos de proxy y VPN — desde un único VPS hasta despliegues multinodo.
Construido como un fork mejorado del proyecto X-UI original, 3X-UI añade un soporte de protocolos más amplio, mayor estabilidad, contabilidad de tráfico por cliente y muchas funciones que mejoran la experiencia de uso.
[!IMPORTANT] Este proyecto está destinado únicamente al uso personal. Por favor, no lo uses para fines ilegales ni en un entorno de producción.
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
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, visita la Wiki del proyecto.
Sistemas operativos: Ubuntu, Debian, Armbian, Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, Amazon Linux, Virtuozzo, Arch, Manjaro, Parch, openSUSE (Tumbleweed / Leap), Alpine y Windows.
Arquitecturas: amd64 · 386 · arm64 (aarch64) · armv7 · armv6 · armv5 · s390x.
3X-UI admite dos backends, que se eligen durante la instalación:
/etc/x-ui/x-ui.db. Sin configuración, ideal para despliegues pequeños y medianos.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:[email protected]:5432/xui?sslmode=disable
x-ui migrate-db --dsn "postgres://xui:[email protected]: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.
El comando predeterminado docker compose up -d sigue usando SQLite. Para ejecutarlo con el servicio PostgreSQL incluido, descomenta las dos líneas de variables de entorno XUI_DB_* en docker-compose.yml e inícialo con el perfil:
docker compose --profile postgres up -d
La imagen incluye Fail2ban (habilitado de forma predeterminada) para aplicar límites de IP por cliente. Fail2ban banea a los infractores con iptables, lo que requiere la capacidad NET_ADMIN. docker-compose.yml ya la concede mediante cap_add; si en su lugar inicias el contenedor con docker run, añade tú mismo las capacidades, de lo contrario los baneos se registran pero nunca se aplican:
docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW ... ghcr.io/mhsanaei/3x-ui
| 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_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 |
La interfaz del panel está disponible en 13 idiomas:
English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil)
Las contribuciones son bienvenidas. Por favor, lee la Guía de contribución antes de abrir una incidencia (issue) o una solicitud de incorporación (pull request).
Herramientas e integraciones construidas por la comunidad alrededor de 3x-ui.
Si este proyecto te es útil, puedes darle una:star2: