RDP Monster

Hướng dẫn thiết lập máy chủ Xtream: cài đặt Xtream UI trên Ubuntu

Hướng dẫn thiết lập máy chủ Xtream: cài đặt Xtream UI trên Ubuntu

Máy chủ Xtream thực chất là gì

Máy chủ Xtream là một máy Linux chạy panel quản lý IPTV giao tiếp bằng API Xtream Codes. Panel làm ba việc: nhận các luồng trực tiếp và nguồn video, quản lý các line (tài khoản người dùng gồm tên đăng nhập, mật khẩu, ngày hết hạn và giới hạn số kết nối), và phân phối mọi thứ trở lại qua HTTP thông qua một vài endpoint quen thuộc (player_api.php cho metadata, get.php cho playlist M3U, xmltv.php cho dữ liệu EPG). Vì gần như mọi ứng dụng IPTV phía client đều triển khai API này, "máy chủ Xtream" đã trở thành cách gọi tắt cho bất kỳ panel nào cung cấp nó, bất kể phần mềm thực sự chạy bên dưới là gì.

Một câu về phạm vi trước phần kỹ thuật: hướng dẫn này chỉ đề cập đến hạ tầng và việc quản trị panel, và người vận hành chịu trách nhiệm nắm giữ quyền phát sóng cho mọi luồng được phân phối qua panel. Nếu các khái niệm nền tảng còn mới với bạn, hãy bắt đầu với bài giới thiệu của chúng tôi về cách IPTV hoạt động ở cấp độ giao thức. Sau đó, thuật ngữ của panel sẽ dễ hiểu hơn nhiều.

Từ Xtream Codes đến Xtream UI và XUI.one

Xtream Codes là panel thương mại đã định hình cả mảng này. Vào tháng 9 năm 2019, một chiến dịch thực thi pháp luật do nhà chức trách Ý và Europol phối hợp đã thu giữ hạ tầng của công ty, và phần mềm này không bao giờ được bán hay cập nhật nữa. Tuy nhiên, API phía client khi đó đã là tiêu chuẩn của ngành, nên hệ sinh thái vẫn tồn tại lâu hơn công ty.

Hai dự án đã lấp vào khoảng trống. Xtream UI là bản fork cộng đồng miễn phí, xây dựng trên mã nguồn công khai cuối cùng 2.9; nó giữ cho panel sống thêm nhiều năm, nhưng việc phát triển công khai phần lớn đã đình trệ. XUI.one là panel thương mại mã nguồn đóng do một cựu lập trình viên Xtream UI viết, và trên thực tế là phiên bản kế nhiệm đang được duy trì hiện nay. Cả hai giữ cùng API, cùng mô hình line và cùng các cổng mặc định, đó là lý do hướng dẫn cài đặt cho bản này phần lớn áp dụng được cho bản kia, và vì sao bài viết này không gắn với bản fork cụ thể nào.

Yêu cầu máy chủ: CPU, RAM và băng thông

Mọi bản fork đều cần một bản cài Ubuntu LTS mới và tối giản, và đa số nhắm vào một phiên bản cụ thể. Hãy xem tài liệu của bản fork trước khi đặt mua máy chủ, vì cài trên sai phiên bản Ubuntu là nguyên nhân phổ biến nhất khiến bản cài bị lỗi. Trình cài đặt triển khai nginx, PHP và MariaDB đi kèm của riêng nó trong /home/xtreamcodes/, vì vậy đừng bao giờ cài nó lên một máy đã chạy web stack hoặc control panel hosting: chúng sẽ tranh chấp cổng và gói phần mềm.

Việc chọn cấu hình quy về một câu hỏi: bạn đang restream (chuyển tiếp luồng nguyên vẹn) hay transcode (mã hóa lại bằng ffmpeg)? Restream gần như không tốn CPU: máy chủ chủ yếu sao chép byte giữa các socket. Transcode bằng phần mềm tốn khoảng một nhân CPU hiện đại cho mỗi kênh 1080p, và đó là chỗ ngân sách đội lên. Về RAM, 4 GB đủ cho một panel thử nghiệm nhỏ; 8 GB trở lên là hợp lý khi chạy thật, lúc bộ nhớ đệm MariaDB và vài tiến trình ffmpeg cộng dồn. Hãy đặt cơ sở dữ liệu trên ổ SSD.

Băng thông chỉ là phép tính: số người xem đồng thời lúc cao điểm nhân với bitrate của luồng, cộng thêm khoảng dự phòng. Không thiết lập nào trong panel thay đổi được phép tính đó.

Người xem đồng thời lúc cao điểmCPU (chỉ restream)RAMBăng thông ở 8 Mbps mỗi người xem
252 nhân4 GB~200 Mbps
1004 nhân8 GB~800 Mbps
2506-8 nhân16 GB~2 Gbps

Các số liệu này giả định chỉ restream và bitrate 1080p điển hình 8 Mbps; transcode làm tăng gấp nhiều lần cột CPU, không phải cột băng thông. Thông lượng duy trì liên tục quan trọng hơn nhiều so với tốc độ cổng được quảng cáo, vì vậy hãy thử nghiệm dưới tải thật. Nếu bạn muốn bỏ qua phần tính toán cấu hình, các máy chủ dành cho tác vụ streaming của chúng tôi được thiết kế đúng cho kiểu sử dụng cần thông lượng ổn định liên tục này.

Cài đặt panel kiểu Xtream UI trên Ubuntu

Mỗi bản fork có trình cài đặt riêng, nhưng tất cả đều theo cùng một quy trình ba bước. Các lệnh dưới đây được cố ý viết ở dạng chung: chỉ tải trình cài đặt từ trang phát hành chính thức của bản fork, đừng bao giờ tải từ một bản đăng lại ngẫu nhiên, và hãy đọc script trước khi chạy nó với quyền root.

Bước 1: Chuẩn bị một hệ thống sạch

apt update && apt upgrade -y
apt install -y wget unzip python3 net-tools
timedatectl set-timezone UTC

Khởi động lại nếu có kernel mới được cài, và đặt múi giờ một cách có chủ đích: lịch EPG phụ thuộc vào đồng hồ hệ thống, và sai lệch giờ sẽ khiến lịch phát sóng lệch hàng giờ.

Bước 2: Chạy trình cài đặt của bản fork

cd /root
wget "$INSTALLER_URL" -O install.py   # from your fork's official release page
python3 install.py

Script cài stack đi kèm, tạo cơ sở dữ liệu (ví dụ Xtream UI chạy MariaDB riêng trên 127.0.0.1:7999 với cơ sở dữ liệu tên xtream_iptvpro) và in ra URL quản trị, cổng và thông tin đăng nhập khi hoàn tất. Hãy ghi lại ngay: một số bản fork tạo đường dẫn hoặc cổng quản trị ngẫu nhiên và sẽ không hiển thị lần thứ hai.

Bước 3: Đăng nhập lần đầu và kiểm tra cơ bản

Mở http://your-server-ip:25500 trong trình duyệt, đăng nhập bằng thông tin đã được tạo và đổi mật khẩu quản trị trước mọi việc khác. Sau đó xác nhận các dịch vụ thực sự đang lắng nghe:

ss -tlnp | grep -E '25500|25461'

Bạn sẽ thấy nginx đi kèm của panel gắn vào cả hai cổng. Từ đó, phần việc phía panel (khai báo máy chủ chính, tạo danh mục và một line thử nghiệm) diễn ra hoàn toàn trong giao diện web.

Cổng, reverse proxy và TLS

Các giá trị mặc định kế thừa từ Xtream Codes là 25500 cho panel quản trị và 25461 cho đầu ra HTTP phía client (cổng mà các line kết nối tới để lấy playlist và luồng phát). Chỉ mở những gì cần thiết và chặn phần còn lại bằng tường lửa; nếu IP quản trị của bạn là IP tĩnh, hãy giới hạn cổng panel cho riêng IP đó:

ufw allow 22/tcp
ufw allow 25461/tcp
ufw allow from YOUR_ADMIN_IP to any port 25500 proto tcp
ufw enable

Sau đó kiểm tra những gì bên ngoài thực sự nhìn thấy. Hướng dẫn kiểm tra cổng đang mở trên Linux của chúng tôi đề cập ss, nmap và sự khác nhau giữa đang lắng nghe và truy cập được.

Nhiều người vận hành đặt nginx hoặc HAProxy trước cổng client trên 80, 443 hoặc 8080, vì một số mạng chặn hẳn các cổng không chuẩn; proxy cũng có thể đảm nhận TLS cho panel quản trị. Một lưu ý thẳng thắn: nhiều set-top box cũ và ứng dụng IPTV vẫn hoạt động tốt hơn qua HTTP thường, vì vậy hãy thử với chính các client của bạn trước khi bắt buộc HTTPS trên cổng phát. Và đừng nhầm những điều này với bảo mật: chuyển panel quản trị sang một cổng lạ chỉ giảm bớt nhiễu từ các máy quét trong log. Bảo mật thật sự là tường lửa chặt chẽ, mật khẩu mạnh và không dùng lại, TLS trên giao diện quản trị và hệ điều hành luôn được cập nhật.

Sao lưu, giám sát và cập nhật

Cơ sở dữ liệu chính là panel: luồng phát, line, bouquet và cấu hình EPG đều nằm trong MariaDB. Hãy dump nó hằng ngày và sao chép bản dump ra khỏi máy chủ:

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

Về giám sát, bảng điều khiển của panel đã hiển thị số kết nối trực tiếp theo từng luồng; thêm vnstat để theo dõi xu hướng băng thông và htop để phát hiện một tiến trình ffmpeg chạy mất kiểm soát. Số kết nối cao cũng đồng nghĩa với hàng nghìn socket đang mở, nên hãy kiểm tra xem trình cài đặt đã nâng giới hạn file descriptor chưa. Đa số đã làm việc này, qua các tinh chỉnh sysctl và limits.conf, nhưng vẫn nên kiểm tra. Cuối cùng, hãy thực tế về phần mềm bạn đang chạy: một bản fork không còn nhận bản vá nên được coi là một ứng dụng PHP cũ phơi ra internet. Hãy để nó trên một máy chủ riêng không làm gì khác, chỉ mở tối thiểu, và thường xuyên vá hệ điều hành bên dưới.

Không cần phần cứng gì đặc biệt. Bạn chỉ cần một máy Ubuntu LTS sạch có quyền root và một mạng giữ ổn định khi cả trăm socket, mỗi socket kéo 8 Mbps, chạy suốt buổi tối. Đó chính là mục đích của các gói VPS Linux của chúng tôi: CPU và RAM riêng, băng thông không giới hạn (sử dụng hợp lý), toàn quyền quản trị, không cần KYC, và giao trong khoảng 10 giây sau khi thanh toán được xác nhận. Đặt mua, chạy trình cài đặt, và bạn có thể đến màn hình đăng nhập panel trong vòng một giờ.

Câu hỏi thường gặp

Xtream UI có còn được duy trì không?

Việc phát triển công khai Xtream UI phần lớn đã đình trệ; XUI.one là phiên bản kế nhiệm đang được duy trì tích cực.
Bản fork miễn phí Xtream UI có các bản phát hành công khai đáng kể cuối cùng từ nhiều năm trước, và các kênh cộng đồng ban đầu của nó đã im ắng. XUI.one, panel thương mại mã nguồn đóng của một cựu lập trình viên Xtream UI, là nơi việc phát triển đang diễn ra hiện nay. Nếu bạn vẫn chạy Xtream UI, hãy coi nó là phần mềm cũ: đặt nó trên một máy chủ riêng có tường lửa, giới hạn cổng quản trị cho các IP đã biết, và sao lưu cơ sở dữ liệu hằng ngày để có thể chuyển đổi nhanh.

Máy chủ Xtream khác gì máy chủ Plex hoặc Jellyfin?

Plex và Jellyfin là máy chủ media cá nhân; panel Xtream là middleware phân phối luồng trực tiếp cho nhiều người dùng.
Plex và Jellyfin lập chỉ mục thư viện media cục bộ và phát nó tới các thiết bị của chính bạn. Panel Xtream được xây dựng xoay quanh các kênh trực tiếp và quản lý thuê bao: nó nhận luồng phát, tạo các line (tài khoản người dùng) có ngày hết hạn và giới hạn kết nối, và cung cấp API Xtream Codes mà các ứng dụng IPTV cần. Nếu bạn chỉ muốn xem các tệp của mình ở nhà, Plex hoặc Jellyfin là công cụ phù hợp; một panel Xtream sẽ chỉ là gánh nặng vô ích.

Một luồng IPTV dùng bao nhiêu băng thông?

Khoảng 2-4 Mbps cho SD, 5-10 Mbps cho 1080p và 15-25 Mbps cho 4K HEVC.
Điều này phụ thuộc vào bitrate của nguồn, không phải vào panel: kênh SD thường ở mức 2-4 Mbps, 1080p khoảng 5-10 Mbps, và 4K HEVC 15-25 Mbps. Nhân bitrate với số người xem đồng thời lúc cao điểm để tính đường truyền lên: 100 người xem các kênh 8 Mbps cần khoảng 800 Mbps băng thông tải lên liên tục, cộng thêm khoảng dự phòng. Thông lượng duy trì liên tục quan trọng hơn tốc độ cổng được quảng cáo, vì vậy hãy thử nghiệm máy chủ dưới tải thật trước khi đưa vào hoạt động.

Tôi có thể cài panel Xtream trên shared hosting hoặc cùng với cPanel không?

Không, panel cần một máy chủ Linux riêng có quyền root và web stack đi kèm của riêng nó.
Trình cài đặt panel triển khai các bản nginx, PHP và MariaDB riêng trong /home/xtreamcodes/ và gắn vào các cổng cố định như 25500 và 25461. Shared hosting không cho bạn quyền root cũng không có cổng trống, và các control panel như cPanel hoặc Plesk xung đột trực tiếp với stack đi kèm. Nền tảng tối thiểu khả thi là một VPS hoặc máy chủ chuyên dụng Ubuntu LTS sạch, không chạy gì khác.

Adrien Roche, Biên tập viên hạ tầng & hosting

Kỹ sư hệ thống với hơn 10 năm vận hành các hệ thống Windows Server và Linux. Adrien phụ trách tài liệu hạ tầng của rdp.monster và viết các hướng dẫn về RDP, hosting VPS, quản trị máy chủ, mạng và công cụ bảo vệ quyền riêng tư.

Đăng ký chương trình đại lý của chúng tôi

Thông tin của bạn

Nếu bạn có bất kỳ câu hỏi nào, liên hệ với chúng tôi tại đây !
Họ và tên(Bắt buộc)
Nhập địa chỉ email của bạn, bạn cần có tài khoản trên manager.rdp.monster !

Công ty của bạn

Nhập địa chỉ website của bạn nếu có
Giải thích ngắn gọn cách bạn sẽ bán dịch vụ cho khách hàng. Ví dụ: trò chuyện với mọi người trên các diễn đàn.

Đến quái vật cũng mê cookie!

Chúng tôi sử dụng cookie để cải thiện trải nghiệm duyệt web của bạn, hiển thị quảng cáo hoặc nội dung phù hợp và phân tích lưu lượng truy cập. Khi nhấn "Chấp nhận", bạn đồng ý với việc chúng tôi sử dụng cookie.