Xtream 服务器搭建指南:在 Ubuntu 上安装 Xtream UI
- 2026年9月18日
- 09:00
- 作者: Adrien Roche
- 更新于 2026年10月3日
- 网络

Xtream 服务器到底是什么
Xtream 服务器就是一台运行支持 Xtream Codes API 的 IPTV 管理面板的 Linux 主机。面板做三件事:接入直播流和视频源;管理线路(带用户名、密码、到期日和连接数上限的用户账号);并通过若干众所周知的接口用 HTTP 把内容重新输出出去(player_api.php 提供元数据,get.php 提供 M3U 播放列表,xmltv.php 提供 EPG 数据)。由于几乎所有 IPTV 客户端都实现了这套 API,“Xtream 服务器”已经成为任何暴露该接口的面板的统称,底层究竟跑什么软件反而不重要。
进入技术部分前先界定范围:本文只涉及基础设施与面板管理,运营者需自行持有通过面板分发的每一路流的播放权。如果你对这些底层概念还不熟悉,可以先看我们的入门文章:IPTV 在协议层面是如何工作的,之后面板里的术语会好懂很多。
从 Xtream Codes 到 Xtream UI 与 XUI.one
Xtream Codes 是定义了这一品类的商业面板。2019 年 9 月,意大利执法机构与欧洲刑警组织联合行动查封了该公司的基础设施,此后这款软件再未销售或更新。但它的客户端 API 早已成为行业标准,因此整个生态比公司本身活得更久。
有两个项目填补了空缺。Xtream UI 是基于最后公开的 2.9 代码库构建的免费社区分支,它让这类面板延续了数年,但公开开发基本已停滞。XUI.one 是一位前 Xtream UI 开发者编写的闭源商业面板,也是当下事实上仍在维护的继任者。两者保留了相同的 API、相同的线路模型和相同的默认端口,所以针对其中一个的安装教程大多也适用于另一个;本文因此不绑定具体分支。
服务器要求:CPU、内存与带宽
所有分支都要求一个全新的最小化 Ubuntu LTS 安装,而且大多只针对某个特定版本;下单服务器前先查阅该分支的文档,因为装在错误的 Ubuntu 版本上是安装失败最常见的原因。安装脚本会在 /home/xtreamcodes/ 下部署自带的 nginx、PHP 和 MariaDB,所以千万不要装在已经跑着 Web 栈或主机控制面板的机器上:它们会争抢端口和软件包。
配置归结为一个问题:你是在转发(原样透传流),还是在转码(用 ffmpeg 重新编码)?转发几乎不吃 CPU:服务器主要是在套接字之间搬字节。软件转码每路 1080p 频道大约需要一个现代核心,预算就是在这里失控的。内存方面,4 GB 够跑一个小型测试面板;一旦 MariaDB 缓存加上几个 ffmpeg 进程叠起来,生产环境用 8 GB 或更多才合理。数据库要放在 SSD 上。
带宽纯粹是算术题:峰值并发观众数乘以流的码率,再留出余量。没有任何面板设置能改变这个算式。
| 峰值并发观众数 | CPU(仅转发) | 内存 | 按每位观众 8 Mbps 计的带宽 |
|---|---|---|---|
| 25 | 2 核 | 4 GB | ~200 Mbps |
| 100 | 4 核 | 8 GB | ~800 Mbps |
| 250 | 6-8 核 | 16 GB | ~2 Gbps |
以上数字假设只做转发、码率为典型的 8 Mbps 1080p;转码会成倍放大 CPU 那一列,而不是带宽那一列。持续吞吐远比标称端口速率重要,所以要在真实负载下测试。如果你不想自己做这些配置功课,我们的面向流媒体负载的服务器正是按这种持续吞吐场景来配置的。
在 Ubuntu 上安装 Xtream UI 式面板
每个分支都有自己的安装脚本,但流程都是同样的三步。下面的命令刻意写得通用:安装脚本只从所用分支的官方发布页下载,绝不要用来源不明的转载,并且在以 root 运行前先把脚本读一遍。
第 1 步:准备一个干净的系统
apt update && apt upgrade -y
apt install -y wget unzip python3 net-tools
timedatectl set-timezone UTC如果安装了新内核就重启,并且认真设置时区:EPG 排期依赖系统时钟,时间偏差会让节目单错开好几个小时。
第 2 步:运行分支的安装脚本
cd /root
wget "$INSTALLER_URL" -O install.py # from your fork's official release page
python3 install.py脚本会安装自带的软件栈、创建数据库(例如 Xtream UI 会在 127.0.0.1:7999 上运行自己的 MariaDB,数据库名为 xtream_iptvpro),并在结束时打印管理地址、端口和凭据。请立刻记录下来:有些分支会生成随机的管理路径或端口,而且不会再显示第二次。
第 3 步:首次登录与基本检查
在浏览器中打开 http://your-server-ip:25500,用生成的凭据登录,并且第一件事就是修改管理员密码。然后确认服务确实在监听:
ss -tlnp | grep -E '25500|25461'你应该能看到面板自带的 nginx 同时绑定了这两个端口。此后面板侧的工作(定义主服务器、创建分类和一条测试线路)全部在 Web 界面里完成。
端口、反向代理与 TLS
沿用 Xtream Codes 的默认端口是:管理面板 25500,面向客户端的 HTTP 输出 25461(线路就是通过后者获取播放列表和流)。只开放必要端口,其余用防火墙挡住;如果你的管理 IP 是固定的,就把面板端口限制到该 IP:
ufw allow 22/tcp
ufw allow 25461/tcp
ufw allow from YOUR_ADMIN_IP to any port 25500 proto tcp
ufw enable然后验证外部实际能看到什么:我们的指南如何在 Linux 上检查开放端口介绍了 ss、nmap,以及“正在监听”与“可被访问”之间的区别。
很多运营者会在客户端端口前面用 nginx 或 HAProxy 监听 80、443 或 8080,因为有些网络会直接封掉非标准端口;代理也可以为管理面板终结 TLS。有一点必须说清楚:不少老旧机顶盒和 IPTV 应用在普通 HTTP 下表现更稳定,所以在给流媒体端口强制启用 HTTPS 之前,先用你实际的客户端组合测试。另外别把这些当成安全措施:把管理面板换到冷门端口只是减少日志里的扫描噪音。真正的加固是严格的防火墙、强壮且唯一的密码、管理界面上的 TLS,以及及时更新的操作系统。
备份、监控与更新
数据库就是面板本身:流、线路、频道包和 EPG 配置全都存在 MariaDB 里。每天导出一次,并把备份文件复制到服务器之外:
mysqldump -h 127.0.0.1 -P 7999 -u user_iptvpro -p xtream_iptvpro | gzip > /root/xtream-db-$(date +%F).sql.gz
tar czf /root/xtream-config-$(date +%F).tar.gz /home/xtreamcodes/iptv_xtream_codes/config监控方面,面板仪表盘已经显示每路流的实时连接数;再加上 vnstat 看带宽趋势,用 htop 揪出跑飞的 ffmpeg 进程。高连接数也意味着成千上万个打开的套接字,所以要确认安装脚本调高了文件描述符上限(多数脚本会通过 sysctl 和 limits.conf 调整,但仍要检查)。最后,对自己在跑的软件要有清醒认识:不再获得补丁的分支应当被视为一个暴露在互联网上的遗留 PHP 应用。把它放在一台不跑别的东西的专用服务器上,只暴露最少的端口,并定期给底层操作系统打补丁。
这些都不需要什么特殊硬件,只需要一台具备 root 权限的干净 Ubuntu LTS 主机,以及一条在整晚上百个套接字各拉 8 Mbps 时依然平稳的网络。这正是我们的Linux VPS 套餐所面向的场景:独享 CPU 与内存、无限流量(公平使用)、完整管理权限且无需 KYC,付款确认后约 10 秒交付。下单、运行安装脚本,一小时内你就能站在面板登录界面前。
常见问题
Xtream UI 还在维护吗?
Xtream 服务器和 Plex 或 Jellyfin 服务器有什么区别?
一路 IPTV 流会占用多少带宽?
我能把 Xtream 面板装在共享主机上或与 cPanel 共存吗?
/home/xtreamcodes/ 下部署自带的 nginx、PHP 和 MariaDB 构建,并绑定 25500、25461 等固定端口。共享主机既不给 root 权限也没有空闲端口,而 cPanel 或 Plesk 之类的控制面板会与自带软件栈直接冲突。最低可行的平台是一台不跑其他任何东西的干净 Ubuntu LTS VPS 或独立服务器。Adrien Roche, 基础设施与主机托管编辑
系统工程师,拥有 10 年以上运维 Windows Server 和 Linux 集群的经验。Adrien 负责 rdp.monster 的基础设施文档,并撰写关于 RDP、VPS 托管、服务器管理、网络和隐私工具的指南。




