RDP Monster

Xtream 服务器搭建指南:在 Ubuntu 上安装 Xtream UI

Xtream 服务器搭建指南:在 Ubuntu 上安装 Xtream UI

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 计的带宽
252 核4 GB~200 Mbps
1004 核8 GB~800 Mbps
2506-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 UI 的公开开发基本已停滞;XUI.one 才是仍在积极维护的继任者。
免费的 Xtream UI 分支最后一次重要公开发布已是数年前,其原有的社区渠道也早已沉寂。如今活跃的开发发生在 XUI.one(一款出自前 Xtream UI 开发者之手的闭源商业面板)。如果你仍要运行 Xtream UI,就把它当作遗留软件对待:放在一台有防火墙的专用服务器上,把管理端口限制到已知 IP,并每天备份数据库,以便随时快速迁移。

Xtream 服务器和 Plex 或 Jellyfin 服务器有什么区别?

Plex 和 Jellyfin 是个人媒体服务器;Xtream 面板是面向多用户的直播流分发中间件。
Plex 和 Jellyfin 会索引本地媒体库并把内容推送到你自己的设备上。Xtream 面板则围绕直播频道和订阅者管理构建:它接入流,创建带到期日和连接数上限的线路(用户账号),并提供 IPTV 应用所期待的 Xtream Codes API。如果你只是想在家看自己的文件,Plex 或 Jellyfin 才是对的工具;Xtream 面板只会带来毫无意义的负担。

一路 IPTV 流会占用多少带宽?

标清大约 2-4 Mbps,1080p 约 5-10 Mbps,4K HEVC 约 15-25 Mbps。
这取决于源码率,而不是面板:标清频道通常为 2-4 Mbps,1080p 约 5-10 Mbps,4K HEVC 为 15-25 Mbps。把码率乘以峰值并发观众数即可估算上行需求:100 名观众观看 8 Mbps 的频道,大约需要 800 Mbps 的持续上行,另外还要留余量。持续吞吐比标称端口速率更重要,所以正式上线前要在真实负载下测试服务器。

我能把 Xtream 面板装在共享主机上或与 cPanel 共存吗?

不行,面板需要一台具备 root 权限的专用 Linux 服务器,并使用它自带的 Web 栈。
面板安装脚本会在 /home/xtreamcodes/ 下部署自带的 nginx、PHP 和 MariaDB 构建,并绑定 25500、25461 等固定端口。共享主机既不给 root 权限也没有空闲端口,而 cPanel 或 Plesk 之类的控制面板会与自带软件栈直接冲突。最低可行的平台是一台不跑其他任何东西的干净 Ubuntu LTS VPS 或独立服务器。

Adrien Roche, 基础设施与主机托管编辑

系统工程师,拥有 10 年以上运维 Windows Server 和 Linux 集群的经验。Adrien 负责 rdp.monster 的基础设施文档,并撰写关于 RDP、VPS 托管、服务器管理、网络和隐私工具的指南。

注册加入我们的分销商计划

您的信息

如有任何疑问, contact us by clicking here !
姓名(必填)
请填写您的邮箱地址,您必须拥有以下网站的账号: manager.rdp.monster !

您的公司

如果您有网站,请填写网址
请简要说明您打算如何向客户销售服务,例如在论坛上与人交流推广。

我们使用 cookie !

我们使用 cookie 来改善您的浏览体验、提供个性化的广告或内容,并分析我们的流量。点击「接受」即表示您同意我们使用 cookie。