Xtream UI (y sus bifurcaciones como XUI.one) sigue siendo el panel IPTV más ampliamente desplegado, y conseguir una instalación limpia en un servidor Ubuntu nuevo es donde la mayoría de los operadores tropiezan. Esta guía detalla los pasos exactos que nuestro NOC utiliza para poner en marcha un panel en un servidor dedicado, desde un sistema operativo base hasta un inicio de sesión de administrador funcional.
Nos centraremos en Ubuntu 22.04 LTS en un servidor de una sola CPU — el nivel Xeon E5-2690 v3 es un punto de partida sólido para paneles de hasta ~15k líneas activas.
Requisitos previos
- Un servidor dedicado o VPS ejecutando Ubuntu 22.04 LTS (instalación nueva, sin panel de control)
- Acceso SSH como root
- Al menos 4 GB de RAM (8+ GB recomendados), 2 núcleos de CPU, 40 GB de disco
- Un dominio o subdominio apuntando a la IP del servidor
Una nota sobre la legalidad: Xtream UI aloja y distribuye transmisiones para las cuales usted debe tener los derechos. Hostfory permite el alojamiento de paneles IPTV, pero usted es responsable de la licencia del contenido en sus mercados objetivo. Consulte nuestra AUP.
Paso 1 — Actualizar el sistema base
apt update && apt upgrade -y
apt install -y wget curl unzip nano net-tools
timedatectl set-timezone UTCConfigure el reloj del servidor a UTC y gestione el desfase horario en la configuración del panel — la sincronización de la EPG se comporta de forma más predecible de esta manera.
Paso 2 — Deshabilitar servicios en conflicto
Xtream UI incluye sus propias versiones parcheadas de nginx y MariaDB. Elimine las versiones de la distribución para que no compitan por los puertos 80/3306:
systemctl stop apache2 mysql nginx 2>/dev/null
systemctl disable apache2 mysql nginx 2>/dev/null
apt remove -y apache2 mysql-server nginx 2>/dev/nullPaso 3 — Configurar hostname y locale
hostnamectl set-hostname panel.yourdomain.com
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
rebootPaso 4 — Ejecutar el instalador
Reconéctese después del reinicio y luego ejecute el instalador de Xtream UI / XUI.one que haya elegido:
cd /root
wget -O install.sh "https://your-panel-source/install"
chmod +x install.sh
./install.shEl instalador compila nginx + PHP, configura MariaDB y le solicita un nombre de usuario de administrador, una contraseña y un puerto de administrador (por defecto 25500). Anote estos datos — se desplazan al final sin una recuperación sencilla.
Paso 5 — Abrir el firewall
En un servidor Hostfory, usted mismo gestiona el firewall:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 25500/tcp # admin panel — use YOUR port
ufw allow 8000:8100/tcp # streaming port range
ufw --force enablePaso 6 — Primer inicio de sesión
http://panel.yourdomain.com:25500Si obtiene conexión rechazada:
systemctl status nginx_xui
netstat -tlnp | grep 25500Paso 7 — Asegurar el sistema
Cambie el puerto SSH y deshabilite la autenticación por contraseña:
nano /etc/ssh/sshd_config
# Port 2222
# PasswordAuthentication no
# PermitRootLogin prohibit-password
systemctl restart ssh
ufw allow 2222/tcp && ufw delete allow 22/tcpRestrinja el puerto de administración a su propia IP si tiene una dirección estática:
ufw delete allow 25500/tcp
ufw allow from YOUR.HOME.IP to any port 25500 proto tcpHabilite la protección DDoS — los paneles son atacados constantemente. En Hostfory está activada por defecto, pero asegúrese de que su IP real no se filtre a través del historial de DNS.
Paso 8 — Verificación de dimensionamiento de ancho de banda
El egreso pico es aproximadamente active_lines × peak_concurrency × avg_bitrate × abr_multiplier. Para un panel de 10k líneas con un 38% de concurrencia, 5 Mbps, 1.25 ABR, eso es ~24 Gbit/s — ya supera un solo puerto de 10G. Consulte nuestra guía de dimensionamiento de ancho de banda y elija la velocidad de puerto adecuada.
Solución de problemas
Los streams se buferizan, el panel funciona: ancho de banda. Verifique iftop durante el pico; si el puerto está saturado, necesita un enlace ascendente más grande.
Panel de administración 502: PHP-FPM incluido falló. systemctl restart php-fpm_xui (el nombre varía según la bifurcación).
MariaDB no se inicia después de reiniciar: ibdata corrupto después de un apagado incorrecto. Verifique journalctl -u mariadb; es posible que necesite innodb_force_recovery=1 en my.cnf para iniciarlo y volcar los datos.
Próximos pasos
Mueva la transcodificación a un servidor GPU con NVENC (consulte nuestra guía FFmpeg NVENC), añada un servidor de almacenamiento para catch-up/VOD, y coloque un CDN edge delante. Si su dimensionamiento se encuentra entre nuestros niveles, hable con ingeniería.