Fast Byte - Thuê VPS Giá Rẻ
Hướng dẫn chung

Hướng Dẫn Cài Đặt Jellyfin Trên VPS Làm Media Server Miễn Phí A-Z

Cách cài Jellyfin trên VPS Ubuntu 24.04 là hướng dẫn dành cho ai muốn tự lưu trữ phim, nhạc, ảnh và phát lại trên TV, điện thoại hay trình duyệt, thay vì phụ thuộc vào dịch vụ đám mây bên thứ ba. Với Jellyfin, toàn bộ dữ liệu nằm trên máy chủ của bạn, miễn […]

Ảnh đại diện Thanh Lam NguyễnThanh Lam Nguyễn14 phút đọc

Cách cài Jellyfin trên VPS Ubuntu 24.04 là hướng dẫn dành cho ai muốn tự lưu trữ phim, nhạc, ảnh và phát lại trên TV, điện thoại hay trình duyệt, thay vì phụ thuộc vào dịch vụ đám mây bên thứ ba. Với Jellyfin, toàn bộ dữ liệu nằm trên máy chủ của bạn, miễn phí 100% và không giới hạn tính năng. Bài viết dưới đây sẽ đi từng bước từ thêm kho APT chính thức, phân quyền thư mục media đến cấu hình Nginx kèm HTTPS trên một chiếc VPS tại ThueVPSGiaRe.vn.

1. Jellyfin là gì? Vì sao nên tự host trên VPS?

Jellyfin là nền tảng máy chủ đa phương tiện mã nguồn mở cho phép người dùng tự quản lý, tổ chức và phát trực tuyến video, bài hát cùng tranh ảnh cá nhân. Khi tự triển khai trên máy chủ riêng, toàn bộ dữ liệu lưu trữ đều thuộc quyền sở hữu tuyệt đối của bạn mà không phải trả phí đăng ký định kỳ.

Trong số các ứng dụng self-hosted phổ biến hiện nay, Jellyfin nổi bật nhờ khả năng tương thích mạnh mẽ trên nhiều nền tảng client từ trình duyệt web máy tính, ứng dụng điện thoại Android, iOS cho đến các dòng Smart TV thế hệ mới.

  • Miễn phí 100%: Dự án hoàn toàn không có tính năng khóa sau gói cước bản quyền hay tính năng thương mại hạn chế người dùng.
  • Quyền riêng tư tuyệt đối: Máy chủ không gửi dữ liệu telemetry phân tích thói quen xem phim của bạn về bất kỳ bên thứ ba nào.
  • Khả năng stream đa nền tảng: Hỗ trợ giải mã mượt mà trên nhiều thiết bị trong cùng mạng nội bộ hoặc qua Internet.

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, giá từ 50K/tháng

Tự xây dựng Media Server mượt mà với chi phí tiết kiệm

Dịch vụ máy chủ ảo tại Fast Byte mang đến phần cứng hiện đại với ổ cứng SSD NVMe tốc độ cao và cổng mạng dung lượng lớn, giúp luồng truyền tải phát trực tuyến video chuẩn HD/4K luôn ổn định, không lo gián đoạn hay nghẽn băng thông.

Tham khảo VPS giá rẻ

2. Yêu cầu cấu hình hệ thống trước khi triển khai jellyfin trên VPS Ubuntu

Trước khi bước vào quy trình cài đặt, bạn cần đảm bảo máy chủ đáp ứng đầy đủ các tiêu chuẩn kỹ thuật từ kiến trúc hệ điều hành cho tới dung lượng tài nguyên bộ nhớ nhằm tránh các xung đột trong quá trình biên dịch dữ liệu.

  • Hệ điều hành: Bản phân phối Ubuntu 24.04 LTS nền tảng kiến trúc 64-bit (amd64 hoặc arm64). Xin lưu ý rằng Jellyfin không hỗ trợ kiến trúc x86 32-bit (i386) do không có môi trường chạy .NET tương thích.
  • Bộ nhớ RAM & CPU: Tối thiểu 2 GB RAM đối với nhu cầu stream trực tiếp (Direct Play). Trường hợp máy chủ cần chuyển mã video độ phân giải cao theo thời gian thực (transcoding), bạn nên ưu tiên CPU thế hệ mới hoặc GPU có tính năng tăng tốc phần cứng.
  • Quyền quản trị: Bạn cần đăng nhập bằng một tài khoản người dùng có quyền sudo riêng trên hệ thống Ubuntu.
  • Ổ đĩa lưu trữ: Chuẩn bị sẵn một thư mục riêng biệt để lưu trữ nội dung giải trí (chẳng hạn như đường dẫn /srv/media).
  • Tên miền riêng: Nếu có nhu cầu truy cập an toàn từ xa qua môi trường mạng Internet với giao thức HTTPS, bạn nên trỏ tên miền về địa chỉ IP của VPS (ví dụ: media.example.com).

3. Bước 1: Cập nhật hệ thống và kích hoạt kho Universe

Các gói phần mềm phụ trợ của Jellyfin — đặc biệt là công cụ tùy biến FFmpeg — đòi hỏi các gói thư viện có mặt trong kho Universe của Ubuntu. Đầu tiên, hãy tiến hành làm mới danh sách phần mềm và tải về các gói tiện ích quản trị quan trọng.

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg software-properties-common
sudo add-apt-repository universe

Lệnh trên đảm bảo toàn bộ hệ thống được vá các bản cập nhật mới nhất, đồng thời nạp đầy đủ curl cùng công cụ mã hóa khóa GPG phục vụ cho việc tích hợp kho bên ngoài an toàn. Nhấn ENTER để thêm thành phần ‘universe’ vào tất cả các kho lưu trữ.

Cập nhật hệ thống và kích hoạt kho Universe
Cập nhật hệ thống và kích hoạt kho Universe

4. Bước 2: Thêm kho APT chính thức của Jellyfin

Phương pháp thêm kho thủ công chuẩn định dạng tệp deb822 là phương án được khuyến nghị hàng đầu, bởi nó giúp quản trị viên kiểm soát hoàn toàn tệp cấu hình nguồn được ghi vào hệ thống.

Đầu tiên, bạn tiến hành tạo thư mục lưu trữ keyring và tải về khóa xác thực gói chính thức từ đội ngũ phát triển Jellyfin:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key \
  | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg

Tiếp theo, tạo tệp nguồn danh sách kho phần mềm dựa trên mã phiên bản hệ thống (đối với Ubuntu 24.04 codename tương ứng sẽ là noble):

export VERSION_OS="$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)"
export VERSION_CODENAME="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
export DPKG_ARCHITECTURE="$(dpkg --print-architecture)"
cat <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/${VERSION_OS}
Suites: ${VERSION_CODENAME}
Components: main
Architectures: ${DPKG_ARCHITECTURE}
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF

Sau khi hoàn thành, bạn có thể kiểm tra lại nội dung tệp vừa khởi tạo để chắc chắn các trường dữ liệu hiển thị chính xác:

cat /etc/apt/sources.list.d/jellyfin.sources
Thêm kho APT chính thức của Jellyfin
Thêm kho APT chính thức của Jellyfin

Lưu ý: Dự án Jellyfin cũng cung cấp tệp script cài đặt nhanh install-debuntu.sh. Tuy nhiên, nếu sử dụng script tự động, bạn luôn cần kiểm tra mã băm SHA-256 từ tệp đi kèm và đọc kỹ nội dung mã nguồn trước khi thực thi quyền sudo.

5. Bước 3: Cài đặt gói Jellyfin và khởi chạy dịch vụ

Gói cài đặt jellyfin là gói tổng hợp bao gồm cả phần máy chủ trung tâm, giao diện tương tác web và bộ giải mã FFmpeg chuyên biệt đã được tối ưu hiệu năng. Tiến hành đồng bộ lại danh sách gói và thực hiện cài đặt:

sudo apt update && sudo apt install -y jellyfin
Cài đặt gói Jellyfin
Cài đặt gói Jellyfin

Khi tiến trình cài đặt hoàn tất, dịch vụ hệ thống jellyfin sẽ tự động được thiết lập. Bạn có thể kiểm tra trạng thái và cấu hình cho dịch vụ khởi động cùng hệ thống bằng lệnh sau:

sudo systemctl status jellyfin
sudo systemctl enable --now jellyfin
Cài đặt jellyfin hoàn tất
Cài đặt jellyfin hoàn tất

Các đường dẫn tệp hệ thống quan trọng của Jellyfin

Đường dẫn thư mục Chức năng và nhiệm vụ
/etc/jellyfin Chứa toàn bộ các tệp cấu hình hoạt động của máy chủ media.
/var/lib/jellyfin Khu vực lưu trữ cơ sở dữ liệu nội dung, thư viện và metadata ảnh phim.
/var/cache/jellyfin Phân vùng bộ nhớ đệm tạm thời cùng các hình ảnh thumbnail tự động trích xuất.
/var/log/jellyfin Tập trung các tệp nhật ký ghi log hoạt động để phục vụ việc sửa lỗi.
/etc/default/jellyfin Lưu giữ các biến môi trường và thiết lập tham số khởi động của tiến trình.

6. Bước 4: Mở cổng tường lửa và khởi tạo cấu hình ban đầu

Theo mặc định, dịch vụ web của Jellyfin tiếp nhận các kết nối thông qua giao thức HTTP ở cổng 8096. Nếu bạn đang thiết lập một máy chủ phục vụ trong mạng gia đình nội bộ (LAN), việc cấu hình tường lửa UFW để mở dải IP chỉ định là thao tác bắt buộc:

sudo ufw allow from 192.168.1.0/24 to any port 8096 proto tcp

Sau khi cấp phép kết nối, bạn mở trình duyệt bất kỳ và truy cập theo đường dẫn http://IP-may-chu:8096 để giao diện khởi tạo hiển thị:

  • Lựa chọn ngôn ngữ hiển thị hệ thống thích hợp.
  • Thiết lập tên đăng nhập và mật khẩu an toàn cho tài khoản Quản trị viên (Admin).
  • Tiến hành liên kết danh mục phim/nhạc và chọn “Vietnamese” trong phần tùy chọn ngôn ngữ tải về thông tin metadata nếu nội dung chủ yếu là tiếng Việt.
Kết nối Jellyfin thành công
Kết nối Jellyfin thành công

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, giá từ 50K/tháng

Jellyfin cần VPS có RAM đủ và quyền root đầy đủ

Jellyfin yêu cầu tối thiểu 2 GB RAM, càng cần nhiều tài nguyên hơn nếu bạn định transcode video độ phân giải cao. VPS Linux giá rẻ của Fast Byte cho bạn toàn quyền quản trị máy chủ với CPU Intel Gold và SSD NVMe U.2, chủ động cài đặt kho APT, mở port và gắn chứng chỉ SSL tùy ý.

Tham khảo VPS giá rẻ

7. Bước 5: Phân quyền truy cập thư mục media bằng ACL

Tiến trình xử lý của Jellyfin được thực thi dưới người dùng hệ thống có tên jellyfin. Do đó, tiến trình này buộc phải được cấp quyền đọc và quyền truy cập vào các thư mục chứa dữ liệu video. Áp dụng kỹ thuật ACL (Access Control Lists) là giải pháp tối ưu nhất, giúp phân bổ quyền linh hoạt mà không làm thay đổi chủ sở hữu (owner) mặc định của tệp:

sudo apt install -y acl
sudo mkdir -p /srv/media/phim /srv/media/nhac
sudo setfacl -R -m u:jellyfin:rX /srv/media
sudo setfacl -R -d -m u:jellyfin:rX /srv/media

Trong hai câu lệnh trên, tham số -d giữ vai trò thiết lập quyền mặc định để bất kỳ tệp tin hay thư mục con nào được tạo ra hoặc tải thêm vào trong tương lai cũng sẽ tự động kế thừa quyền đọc của người dùng jellyfin.

Để xác minh quyền hạn đã thiết lập chuẩn xác, bạn có thể chạy thử lệnh kiểm tra dưới tư cách người dùng jellyfin:

sudo -u jellyfin ls /srv/media/phim

Lưu ý: Nếu dữ liệu media nằm trên ổ đĩa di động gắn ngoài tại phân vùng như /media/tenban, hãy chắc chắn rằng bạn đã cấp quyền thực thi (x) cho người dùng jellyfin qua từng cấp thư mục cha để tiến trình có thể duyệt tới thư mục đích.

8. Bước 6: Cấu hình Nginx Reverse Proxy và kích hoạt SSL

Việc mở trực tiếp cổng HTTP 8096 ra môi trường Internet tiềm ẩn rất nhiều rủi ro bảo mật dữ liệu. Thay vào đó, việc sử dụng web server Nginx làm reverse proxy kết hợp chứng chỉ SSL mã hóa sẽ tạo nên một lớp phòng thủ kiên cố cho dịch vụ.

Cài đặt gói Nginx cùng bộ công cụ Certbot tự động:

sudo apt install -y nginx certbot python3-certbot-nginx

Tạo tệp cấu hình virtual host mới tại /etc/nginx/sites-available/jellyfin với nội dung tương ứng:

server {
    listen 80;
    server_name media.example.com;

    client_max_body_size 20M;

    location / {
        proxy_pass http://127.0.0.1:8096;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_buffering off;
    }

    location /socket {
        proxy_pass http://127.0.0.1:8096;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Kích hoạt cấu hình, mở cổng HTTP/HTTPS trên tường lửa và thực hiện cấp chứng chỉ Let’s Encrypt qua Certbot tự động hoàn toàn:

sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo ufw allow "Nginx Full"
sudo certbot --nginx -d media.example.com -m [email protected] --agree-tos

Để hoàn thiện, bạn hãy truy cập vào mục Bảng điều khiển › Mạng trên giao diện quản trị Jellyfin, thêm địa chỉ 127.0.0.1 vào danh sách Known proxies (proxy tin cậy) nhằm đảm bảo hệ thống ghi nhận chính xác địa chỉ IP thực của người dùng khi kết nối.

9. Chẩn đoán và khắc phục các sự cố thường gặp

Dưới đây là một số vấn đề phổ biến nhất mà người dùng thường gặp phải trong quá trình vận hành Jellyfin kèm theo cách khắc phục chi tiết theo kinh nghiệm thực tế:

Thư viện trống trơn dù tệp tin vẫn tồn tại

Nguyên nhân chiếm phần lớn là do lỗi phân quyền truy cập. Bạn có thể kiểm tra trực tiếp bằng lệnh sudo -u jellyfin ls /duong-dan-media. Nếu nhận được thông báo lỗi “Permission denied”, hãy chạy lại các lệnh cấp quyền ACL như hướng dẫn ở Bước 5 cho cả thư mục hiện tại và các thư mục cha, sau đó chọn tùy chọn “Quét tất cả thư viện” trên giao diện web.

Phát video thất bại khi bắt đầu chuyển mã (Transcoding)

Jellyfin yêu cầu phiên bản FFmpeg tùy biến riêng đi kèm dưới dạng gói khuyến nghị (recommended). Nếu máy chủ của bạn thiết lập cấm cài gói recommended, phần mềm chuyển mã này có thể chưa được tích hợp. Bạn hãy kiểm tra lại bằng lệnh apt list --installed 'jellyfin-ffmpeg*' và mở tệp nhật ký trong /var/log/jellyfin để phân tích nguyên nhân tác vụ chuyển mã bị hủy.

Không thể kết nối đến cổng dịch vụ 8096

Bạn có thể kiểm tra các cổng mạng đang lắng nghe bằng lệnh ss thông qua cú pháp:

sudo ss -tlnp | grep 8096

Nếu kết quả cho thấy tiến trình vẫn đang lắng nghe bình thường nhưng các thiết bị ngoài không thể kết nối, nguyên nhân phần lớn nằm ở quy tắc chặn của tường lửa UFW hoặc chính sách bảo mật mạng từ đơn vị cho thuê máy chủ.

10. Câu hỏi thường gặp (FAQ)

Jellyfin có tính phí ẩn hoặc giới hạn tính năng như các đối thủ không?
Hoàn toàn không. Jellyfin là phần mềm tự do mã nguồn mở, không có bất kỳ mô hình trả phí nào hay tính năng cao cấp bị khóa bản quyền như các phần mềm media server thương mại khác.

Làm thế nào để sao lưu Jellyfin an toàn trước mỗi lần nâng cấp?
Để đảm bảo an toàn cho dữ liệu cấu hình, bạn nên đưa việc này vào kế hoạch sao lưu dữ liệu máy chủ định kỳ. Chỉ cần dừng dịch vụ và nén hai thư mục dữ liệu cốt lõi bằng các lệnh sau:

sudo systemctl stop jellyfin
sudo tar -czf /root/jellyfin-backup-$(date +%F).tar.gz /etc/jellyfin /var/lib/jellyfin
sudo systemctl start jellyfin

Cách cập nhật phiên bản Jellyfin mới nhất như thế nào?
Do chúng ta đã tích hợp trực tiếp kho APT chính thức của dự án, việc cập nhật Jellyfin sẽ diễn ra thuận tiện thông qua trình quản lý gói của Ubuntu bằng hai câu lệnh quen thuộc: sudo apt update && sudo apt upgrade. Trước khi nâng cấp các bản cập nhật lớn (major release), bạn nên đọc qua changelog để chủ động chuẩn bị cho các thay đổi về cấu trúc cơ sở dữ liệu.

Thực hiện theo đúng hướng dẫn về cách cài jellyfin trên VPS Ubuntu sẽ giúp bạn nhanh chóng thiết lập thành công hệ thống media server mã nguồn mở mạnh mẽ, bảo mật và hoàn toàn tự chủ. Điểm cốt lõi nằm ở việc phân quyền thư mục media chuẩn xác thông qua ACL, bảo vệ dịch vụ phía sau Nginx Reverse Proxy có chứng chỉ SSL và duy trì thói quen kiểm tra định kỳ các tệp nhật ký để hệ thống luôn vận hành trơn tru.

Cần một VPS giá rẻ để bắt đầu?

Chọn cấu hình vừa đủ nhu cầu, ưu tiên chi phí dễ tiếp cận và khả năng quản trị riêng.

Xem bảng giá VPS

Lưu ý: Hướng dẫn kỹ thuật trên được tổng hợp phục vụ mục đích tham khảo. Các câu lệnh, thông số cổng mạng và cấu hình máy chủ có thể có sự khác biệt tùy theo phiên bản hệ điều hành thực tế, môi trường ảo hóa cũng như các bản cập nhật phần mềm tiếp theo từ nhà phát triển. Người dùng được khuyến cáo kiểm thử kỹ lưỡng và sao lưu toàn bộ dữ liệu quan trọng trước khi áp dụng vào môi trường vận hành thực tế.

Chia sẻ: Facebook LinkedIn
Quay lại trang blog

Bài viết liên quan