Xtream UI (und seine Forks wie XUI.one) bleibt das am weitesten verbreitete IPTV-Panel, und eine saubere Installation auf einem frischen Ubuntu-System ist der Punkt, an dem die meisten Betreiber stolpern. Dieser Leitfaden beschreibt die genauen Schritte, die unser NOC verwendet, um ein Panel auf einem dedizierten Server in Betrieb zu nehmen, von einem nackten Betriebssystem bis zu einem funktionierenden Admin-Login.
Wir werden Ubuntu 22.04 LTS auf einem Single-CPU-System einsetzen — die Xeon E5-2690 v3-Klasse ist ein solider Ausgangspunkt für Panels mit bis zu ~15.000 aktiven Leitungen.
Voraussetzungen
- Ein dedizierter Server oder VPS mit Ubuntu 22.04 LTS (Neuinstallation, kein Control Panel)
- Root-SSH-Zugriff
- Mindestens 4 GB RAM (8+ GB empfohlen), 2 CPU-Kerne, 40 GB Festplattenspeicher
- Eine Domain oder Subdomain, die auf die Server-IP zeigt
Ein Hinweis zur Legalität: Xtream UI hostet und verteilt Streams, für die Sie die Rechte besitzen müssen. Hostfory erlaubt das Hosting von IPTV-Panels, aber Sie sind für die Inhaltslizenzierung in Ihren Zielmärkten verantwortlich. Siehe unsere AUP.
Schritt 1 — Basissystem aktualisieren
apt update && apt upgrade -y
apt install -y wget curl unzip nano net-tools
timedatectl set-timezone UTCStellen Sie die Systemuhr auf UTC und behandeln Sie den Zeitzonen-Offset in der Panel-Konfiguration — so verhält sich das EPG-Timing vorhersehbarer.
Schritt 2 — Konfliktierende Dienste deaktivieren
Xtream UI liefert sein eigenes gepatchtes nginx und MariaDB mit. Entfernen Sie die Distro-Versionen, damit sie nicht um die Ports 80/3306 konkurrieren:
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/nullSchritt 3 — Hostname und Locale einstellen
hostnamectl set-hostname panel.yourdomain.com
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
rebootSchritt 4 — Installer ausführen
Nach dem Neustart erneut verbinden und dann den gewählten Xtream UI / XUI.one Installer ausführen:
cd /root
wget -O install.sh "https://your-panel-source/install"
chmod +x install.sh
./install.shDer Installer kompiliert nginx + PHP, richtet MariaDB ein und fragt Sie nach einem Admin-Benutzernamen, einem Passwort und einem Admin-Port (Standard 25500). Notieren Sie diese — sie scrollen am Ende vorbei und sind nicht einfach wiederherzustellen.
Schritt 5 — Firewall öffnen
Auf einem Hostfory-System verwalten Sie die Firewall selbst:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 25500/tcp # Admin-Panel — verwenden Sie IHREN Port
ufw allow 8000:8100/tcp # Streaming-Portbereich
ufw --force enableSchritt 6 — Erster Login
http://panel.yourdomain.com:25500Wenn die Verbindung verweigert wird:
systemctl status nginx_xui
netstat -tlnp | grep 25500Schritt 7 — Absichern
Ändern Sie den SSH-Port und deaktivieren Sie die Passwort-Authentifizierung:
nano /etc/ssh/sshd_config
# Port 2222
# PasswordAuthentication no
# PermitRootLogin prohibit-password
systemctl restart ssh
ufw allow 2222/tcp && ufw delete allow 22/tcpBeschränken Sie den Admin-Port auf Ihre eigene IP, wenn Sie eine statische Adresse haben:
ufw delete allow 25500/tcp
ufw allow from YOUR.HOME.IP to any port 25500 proto tcpAktivieren Sie den DDoS-Schutz — Panels werden ständig angegriffen. Bei Hostfory ist er standardmäßig aktiviert, aber stellen Sie sicher, dass Ihre echte IP nicht über die DNS-Historie preisgegeben wird.
Schritt 8 — Bandbreitenbemessung: Plausibilitätsprüfung
Der Spitzen-Egress ist ungefähr active_lines × peak_concurrency × avg_bitrate × abr_multiplier. Für ein 10k-Linien-Panel mit 38% Konkurrenz, 5 Mbps, 1.25 ABR sind das ~24 Gbit/s — bereits über einem einzelnen 10G-Port. Siehe unseren Leitfaden zur Bandbreitenbemessung und wählen Sie die richtige Portgeschwindigkeit.
Fehlerbehebung
Streams puffern, Panel funktioniert: Bandbreite. Überprüfen Sie iftop während der Spitzenzeiten; wenn der Port ausgelastet ist, benötigen Sie einen größeren Uplink.
Admin-Panel 502: gebündeltes PHP-FPM ist abgestürzt. systemctl restart php-fpm_xui (Name variiert je nach Fork).
MariaDB startet nach Neustart nicht: beschädigte ibdata nach unsauberem Herunterfahren. Überprüfen Sie journalctl -u mariadb; möglicherweise benötigen Sie innodb_force_recovery=1 in my.cnf, um es wieder zum Laufen zu bringen und die Daten zu sichern.
Wie es weitergeht
Verlagern Sie die Transkodierung auf einen GPU-Server mit NVENC (siehe unseren FFmpeg NVENC-Leitfaden), fügen Sie einen Speicherserver für Catch-up/VOD hinzu und platzieren Sie einen CDN-Edge davor. Wenn Ihre Dimensionierung zwischen unseren Stufen liegt, sprechen Sie mit unserem Engineering-Team.