使用 Docker 部署 Jellyfin 媒體服務器:打造個人 Netflix(2026版)
Jellyfin 是一款完全免費、開源的媒體服務器軟件,讓您可以在自己的服務器上搭建個人流媒體平臺。與 Plex 和 Emby 不同,Jellyfin 沒有任何付費限制,所有功能完全開放,包括硬件轉碼、多用戶支持、移動端應用等。本教程將帶您從零開始,通過 Docker 部署 Jellyfin,打造屬於您自己的"Netflix"。
目錄
1. 什麼是 Jellyfin?
1.1 Jellyfin 簡介
Jellyfin 是 Emby 3.5.2 版本的開源分支,於 2018 年正式發佈。由於 Emby 轉向閉源並引入付費功能,社區開發者決定創建一個完全開源、免費的替代品,這就是 Jellyfin 的由來。
核心特點:
- 🆓 完全免費:無任何付費功能或訂閱
- 🔓 開源透明:代碼完全公開,可審計
- 🎬 媒體管理:自動整理電影、劇集、音樂
- 📺 多客戶端:Web、iOS、Android、智能電視
- ⚡ 硬件轉碼:支持 GPU 加速轉碼
- 👥 多用戶支持:獨立賬戶和觀看歷史
- 🌐 遠程訪問:隨時隨地訪問媒體庫
- 🔒 隱私保護:數據完全掌控在自己手中
1.2 與其他媒體服務器對比
| 特性 | Jellyfin | Plex | Emby | Kodi |
|---|---|---|---|---|
| 價格 | 🆓 完全免費 | 💰 部分付費 | 💰 部分付費 | 🆓 免費 |
| 開源 | ✅ 完全開源 | ❌ 閉源 | ❌ 閉源 | ✅ 開源 |
| 硬件轉碼 | ✅ 免費 | 💰 Plex Pass | 💰 Emby Premiere | ⚠️ 需插件 |
| 移動端 App | ✅ 免費 | 💰 Plex Pass | 💰 付費 | ✅ 免費 |
| 離線下載 | ✅ 免費 | 💰 Plex Pass | 💰 付費 | N/A |
| ** DVR 錄製** | ✅ 免費 | 💰 Plex Pass | 💰 付費 | ⚠️ 需插件 |
| 多服務器 | ✅ 免費 | 💰 Plex Pass | 💰 付費 | N/A |
| 社區支持 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 易用性 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 自定義性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
選擇建議:
- 🎯 追求免費和開源 → Jellyfin
- 📱 需要最佳用戶體驗 → Plex
- ⚖️ 折中方案 → Emby
- 🖥️ 本地播放為主 → Kodi
1.3 發展歷程
| 時間 | 事件 |
|---|---|
| 2018.12 | Jellyfin 項目啟動 |
| 2019.02 | 首個穩定版本發佈 |
| 2020.07 | 10.0 版本,重大改進 |
| 2021.03 | 移動端 App 發佈 |
| 2022.01 | 硬件轉碼完善 |
| 2023.06 | 10.8 版本,UI 重構 |
| 2024.11 | 10.9 版本,性能提升 |
| 2025.05 | 10.10 版本,AI 元數據 |
| 2026.01 | 持續更新,社區活躍 |
2. 為什麼選擇 Jellyfin?
2.1 核心優勢
優勢一:完全免費,無隱藏費用
Plex/Emby 的付費牆:
Plex Pass ($119.99 終身或 $4.99/月):
❌ 硬件轉碼
❌ 移動同步
❌ DVR 錄製
❌ 高級音樂功能
Emby Premiere ($54/年或 $119 終身):
❌ 硬件轉碼
❌ 離線下載
❌ 直播電視
❌ 家長控制增強Jellyfin:
✅ 所有功能完全免費
✅ 無訂閱費用
✅ 無功能限制
✅ 社區驅動開發實際節省:
假設使用 5 年:
Plex Pass 終身:$119.99
Emby Premiere 5年:$270
Jellyfin:$0
節省:$120-270優勢二:隱私和數據主權
雲端服務的問題:
Plex/Emby:
❌ 需要連接到官方服務器
❌ 元數據請求經過第三方
❌ 觀看習慣被追蹤
❌ 可能收集使用數據Jellyfin 的本地優先:
✅ 完全本地運行
✅ 無需外部服務器
✅ 數據完全私有
✅ 可選擇性啟用元數據
✅ 可離線使用隱私保護:
# Jellyfin 可以完全斷網運行
# 只需內網即可訪問
# 不依賴任何雲服務優勢三:強大的硬件轉碼
什麼是轉碼:
原始視頻格式 → 實時轉換 → 兼容格式
例如:
4K HEVC → 1080p H.264
(用於不支持原格式的設備)硬件轉碼優勢:
CPU 軟解:
- 佔用大量 CPU
- 功耗高
- 可能卡頓
GPU 硬解:
- 佔用極少 CPU
- 功耗低
- 流暢播放
- 支持多路併發支持的硬件:
✅ Intel Quick Sync (核顯)
✅ NVIDIA NVENC/NVDEC
✅ AMD VCE/VCN
✅ ARM Mali (部分設備)
✅ Raspberry Pi (部分型號)性能對比:
| 硬件 | 併發轉碼數 | 功耗 |
|---|---|---|
| Intel i5 (核顯) | 3-5 路 | 15W |
| NVIDIA GTX 1650 | 5-8 路 | 75W |
| AMD RX 5500 | 4-6 路 | 100W |
| CPU 軟解 (i7) | 1-2 路 | 65W |
優勢四:活躍的社區和插件生態
官方插件:
📚 元數據提供者
🎵 音樂歌詞
📺 直播電視集成
🔤 字幕下載
🎨 主題定製
📊 統計分析社區貢獻:
GitHub Stars: 30,000+
Contributors: 500+
Releases: 定期更新
Issues: 快速響應文檔資源:
✅ 官方文檔完善
✅ 社區教程豐富
✅ YouTube 視頻眾多
✅ 論壇活躍2.2 適用場景
場景 1:家庭媒體中心
需求:
- 存儲家庭照片和視頻
- 共享電影和劇集
- 多設備同時觀看
- 兒童內容管理Jellyfin 方案:
✅ 集中存儲所有媒體
✅ 自動整理和分類
✅ 多用戶獨立賬戶
✅ 家長控制功能
✅ 跨設備同步進度場景 2:個人影視庫
需求:
- 收藏大量電影
- 追劇管理
- 高質量播放
- 隨時訪問Jellyfin 方案:
✅ 自動下載元數據
✅ 海報牆展示
✅ 續播功能
✅ 收藏和播放列表
✅ 評分和評論場景 3:音樂庫管理
需求:
- 大量音樂收藏
- 按藝術家/專輯分類
- 歌詞顯示
- 多房間播放Jellyfin 方案:
✅ 自動整理音樂
✅ ID3 標籤讀取
✅ 歌詞同步
✅ 播放隊列
✅ 隨機播放場景 4:遠程訪問
需求:
- 外出時訪問家中媒體
- 手機/平板觀看
- 流量優化
- 安全訪問Jellyfin 方案:
✅ Web 界面訪問
✅ 移動端 App
✅ 自適應碼率
✅ HTTPS 加密
✅ 用戶認證3. 系統要求與準備
3.1 硬件要求
最低配置
CPU: 雙核 2GHz+
RAM: 2GB
存儲: 20GB (系統) + 媒體空間
網絡: 100Mbps
GPU: 可選(用於轉碼)適用場景:
- 少量媒體文件(< 500GB)
- 1-2 個併發用戶
- 直接播放為主(少轉碼)
- 樹莓派等低功耗設備
推薦配置
CPU: 四核 3GHz+ (Intel 8代+ 或 AMD Ryzen)
RAM: 8GB
存儲: 100GB (系統) + TB 級媒體存儲
網絡: Gigabit Ethernet
GPU: Intel 核顯 或 NVIDIA GTX 1650+適用場景:
- 中等媒體庫(1-5TB)
- 3-5 個併發用戶
- 需要硬件轉碼
- 4K 內容支持
高性能配置
CPU: 六核+ (Intel i7/i9 或 AMD Ryzen 7/9)
RAM: 16-32GB
存儲: NVMe SSD (系統) + RAID 陣列 (媒體)
網絡: 2.5Gbps+ Ethernet
GPU: NVIDIA RTX 3060+ 或 Intel Arc適用場景:
- 大型媒體庫(10TB+)
- 10+ 併發用戶
- 多路 4K 轉碼
- 企業級應用
3.2 存儲規劃
存儲結構建議
/media/
├── movies/ # 電影
│ ├── Movie Name (Year)/
│ │ ├── movie.mp4
│ │ ├── poster.jpg
│ │ └── fanart.jpg
├── tv/ # 電視劇
│ ├── Show Name/
│ │ ├── Season 01/
│ │ │ ├── S01E01.mp4
│ │ │ └── S01E02.mp4
│ │ └── Season 02/
├── music/ # 音樂
│ ├── Artist Name/
│ │ ├── Album Name/
│ │ │ ├── 01 Song.mp3
│ │ │ └── cover.jpg
├── photos/ # 照片(可選)
└── books/ # 電子書(可選)命名規範
電影:
✅ 好:
Avatar (2009).mkv
The Dark Knight (2008).mp4
❌ 差:
avatar_final_v2.mkv
movie1.mp4電視劇:
✅ 好:
Breaking Bad/
├── Season 01/
│ ├── Breaking Bad - S01E01.mkv
│ └── Breaking Bad - S01E02.mkv
❌ 差:
bb/
├── s1/
│ ├── ep1.avi
│ └── 1-2.mkv音樂:
✅ 好:
Artist/
└── Album/
├── 01 - Song Title.mp3
└── folder.jpg
❌ 差:
music/
└── songs/
├── track1.mp3
└── song.mp33.3 網絡要求
帶寬計算
直接播放:
SD (480p): 2-5 Mbps
HD (1080p): 5-10 Mbps
4K (2160p): 15-25 Mbps轉碼播放:
取決於轉碼質量:
480p: 1-2 Mbps
720p: 2-4 Mbps
1080p: 4-8 Mbps併發計算:
示例:5 個用戶同時觀看 1080p
直接播放:5 × 8 Mbps = 40 Mbps
轉碼播放:5 × 5 Mbps = 25 Mbps
建議上行帶寬:50-100 Mbps路由器設置
端口轉發(如需外網訪問):
TCP 8096: Jellyfin Web UI
TCP 8920: HTTPS (如果啟用)
UDP 1900: DLNA (可選)QoS 設置:
優先 Jellyfin 流量
確保流暢播放
避免其他下載影響3.4 軟件準備
必需軟件:
✅ Docker 和 Docker Compose
✅ 文本編輯器
✅ SSH 客戶端(遠程管理)
✅ 瀏覽器可選軟件:
📁 File Browser(文件管理)
🔄 Watchtower(自動更新)
🌐 Nginx Proxy Manager(反向代理)
🔍 Radarr/Sonarr(自動下載)4. Docker 部署方案
4.1 安裝 Docker
Ubuntu/Debian
# 卸載舊版本
sudo apt remove docker docker-engine docker.io containerd runc
# 安裝依賴
sudo apt update
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# 添加 GPG 密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加倉庫
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安裝 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
# 驗證安裝
docker --version
docker compose versionCentOS/RHEL
# 添加倉庫
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安裝
sudo yum install docker-ce docker-ce-cli containerd.io
# 啟動並開機自啟
sudo systemctl start docker
sudo systemctl enable dockermacOS
# 安裝 Docker Desktop
brew install --cask docker
# 啟動
open /Applications/Docker.appWindows
下載 Docker Desktop for Windows
https://www.docker.com/products/docker-desktop
安裝並啟動4.2 創建目錄結構
# 創建項目目錄
mkdir -p ~/jellyfin/{config,cache,media}
cd ~/jellyfin
# 目錄說明:
# config/ - Jellyfin 配置文件
# cache/ - 緩存和轉碼臨時文件
# media/ - 媒體文件(或掛載外部存儲)如果使用外部存儲:
# 掛載硬盤
sudo mount /dev/sdb1 /mnt/media
# 創建符號鏈接
ln -s /mnt/media ~/jellyfin/media4.3 Docker Compose 配置
創建 docker-compose.yml:
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: 1000:1000 # 使用當前用戶 ID
network_mode: host # 使用 host 網絡模式
volumes:
- ./config:/config
- ./cache:/cache
- ./media:/media:ro # 只讀掛載媒體
environment:
- TZ=Asia/Shanghai # 時區
- UMASK_SET=022
devices:
# Intel 核顯(如使用)
- /dev/dri:/dev/dri
# NVIDIA GPU(如使用,需要 nvidia-docker)
# - /dev/nvidia0:/dev/nvidia0
# - /dev/nvidiactl:/dev/nvidiactl
# - /dev/nvidia-uvm:/dev/nvidia-uvm
restart: unless-stopped
labels:
- "com.centurylinklabs.watchtower.enable=true"重要說明:
用戶 ID 獲取:
# 查看當前用戶 ID
id
# 輸出示例:
# uid=1000(username) gid=1000(username) groups=1000(username)
# 修改 docker-compose.yml 中的 user: 1000:1000網絡模式:
host 模式:
✅ 性能最佳
✅ 端口自動映射
❌ 與其他容器可能衝突
bridge 模式(備選):
ports:
- "8096:8096"
- "8920:8920"設備掛載:
Intel 核顯:
# 檢查是否有 DRI 設備
ls -la /dev/dri
# 應該看到:
# card0
# renderD128NVIDIA GPU:
# 需要安裝 NVIDIA Container Toolkit
# 參考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
# 測試
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi4.4 啟動服務
# 啟動 Jellyfin
docker compose up -d
# 查看日誌
docker compose logs -f jellyfin
# 查看運行狀態
docker ps期望輸出:
CONTAINER ID IMAGE STATUS
xxx jellyfin/jellyfin:latest Up 2 minutes4.5 訪問 Jellyfin
首次訪問:
瀏覽器打開:http://your-server-ip:8096
例如:http://192.168.1.100:8096看到歡迎頁面:
🎉 Welcome to Jellyfin!
請選擇語言 → 繼續5. 初始配置與設置
5.1 初始嚮導
步驟 1:選擇語言
選擇:簡體中文 或 English
點擊 "Next"步驟 2:創建管理員賬戶
用戶名:admin(或其他)
密碼:強密碼(至少 8 位)
確認密碼:再次輸入
⚠️ 重要:
- 記住密碼
- 使用強密碼
- 建議啟用兩步驗證(後續)步驟 3:添加媒體庫
添加電影庫:
1. 點擊 "Add Media Library"
2. 內容類型:Movies(電影)
3. 顯示名稱:Movies(或中文"電影")
4. 文件夾:選擇 /media/movies
5. 點擊 "OK"添加電視劇庫:
1. 點擊 "Add Media Library"
2. 內容類型:TV Shows(電視劇)
3. 顯示名稱:TV Shows(或"電視劇")
4. 文件夾:選擇 /media/tv
5. 點擊 "OK"添加音樂庫(可選):
1. 內容類型:Music(音樂)
2. 顯示名稱:Music(或"音樂")
3. 文件夾:選擇 /media/music
4. 點擊 "OK"步驟 4:元數據語言
首選元數據語言:Chinese Simplified(簡體中文)
或 English(英文,元數據更全)
國家/地區:China(中國)步驟 5:完成設置
點擊 "Finish"
進入主界面5.2 基本設置
進入 Dashboard(儀表板):
General(常規)
Server name: My Jellyfin Server
Preferred language: 簡體中文
Enable automatic port mapping: No(如已手動配置)Playback(播放)
Enable hardware acceleration:
- 選擇您的 GPU 類型
* Intel QuickSync
* NVIDIA NVENC
* AMD VCE
* Disabled(如無 GPU)
Transcoding throttle: 0(無限制)
Enable throttling: NoStreaming(流媒體)
Internet streaming bitrate limit: 0(無限制)
或根據帶寬設置:
- 10 Mbps: 10000 kbps
- 50 Mbps: 50000 kbps
Remote quality: Auto(自動)5.3 用戶管理
創建新用戶
Dashboard → Users → Add User
用戶名:guest
密碼:(可選)
允許遠程控制:Yes
允許媒體下載:No(根據需要)
點擊 "Save"家長控制
Dashboard → Users → 選擇用戶 → Parental Control
限制內容評級:
- 電影:PG-13 以下
- 電視:TV-14 以下
隱藏特定媒體庫:Yes/No
設置觀看時間限制:可選5.4 備份配置
手動備份:
# 備份配置目錄
tar czf jellyfin-backup-$(date +%Y%m%d).tar.gz ~/jellyfin/config/
# 下載到本地
scp user@server:~/jellyfin-backup-*.tar.gz ./自動備份:
# 添加到 docker-compose.yml
services:
jellyfin-backup:
image: alpine
volumes:
- ./config:/source:ro
- ./backups:/backup
command: >
sh -c "
tar czf /backup/jellyfin-$(date +%Y%m%d).tar.gz /source &&
find /backup -name '*.tar.gz' -mtime +30 -delete
"
restart: no6. 硬件轉碼配置
6.1 Intel 核顯配置
檢查硬件
# 查看顯卡信息
lspci | grep VGA
# 應該看到:
# Intel Corporation UHD Graphics 630
# 檢查 DRI 設備
ls -la /dev/dri加載驅動
# 確保加載 i915 驅動
sudo modprobe i915
# 驗證
lsmod | grep i915權限設置
# 添加用戶到 video 組
sudo usermod -aG video $USER
# 重啟 Docker 容器
docker compose down
docker compose up -dJellyfin 設置
Dashboard → Playback → Transcoding
Hardware acceleration: Intel QuickSync (QSV)
Encoder preset: Quality
Encoding rate control: VBR
Enable VPP Tone Mapping: Yes(HDR 內容)測試轉碼:
1. 播放一個需要轉碼的視頻
2. Dashboard → Dashboard → Active Devices
3. 查看是否顯示 "HW"(硬件加速)6.2 NVIDIA GPU 配置
安裝驅動
# Ubuntu
sudo apt install nvidia-driver-535
# 重啟
sudo reboot
# 驗證
nvidia-smi安裝 NVIDIA Container Toolkit
# 添加倉庫
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安裝
sudo apt update
sudo apt install nvidia-container-toolkit
# 配置 Docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker測試 GPU
# 測試容器
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
# 應該看到 GPU 信息更新 Docker Compose
services:
jellyfin:
# ... 其他配置
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]Jellyfin 設置
Dashboard → Playback → Transcoding
Hardware acceleration: NVIDIA NVENC
Enable hardware encoding: Yes
Enable hardware decoding: Yes
HEVC Decoder: NVIDIA NVDEC
VP9 Decoder: NVIDIA NVDEC6.3 AMD GPU 配置
安裝驅動
# Ubuntu
sudo apt install mesa-vulkan-drivers vainfo
# 驗證
vainfoJellyfin 設置
Hardware acceleration: AMD VCE
Enable hardware encoding: Yes
Enable hardware decoding: Yes6.4 轉碼參數優化
通用設置
Transcoding path: /cache/transcodes
Delete segments older than: 1 day
Throttle Transcodes: No
Enable segment deletion: Yes編碼器預設
Quality vs Speed:
- Faster: 更快,質量稍低
- Balanced: 平衡(推薦)
- Slower: 更慢,質量更高
Rate Control:
- CBR: 固定碼率
- VBR: 可變碼率(推薦)
- CQP: 固定質量HDR 處理
Enable VPP Tone Mapping: Yes(將 HDR 轉為 SDR)
Tonemapping Algorithm: Reinhard
Tonemapping Range: TV
Tonemapping Desaturation: 0.57. 元數據刮削與管理
7.1 元數據提供者
Jellyfin 支持多個元數據源:
內置提供者:
✅ TheMovieDB(電影/劇集)
✅ TheTVDB(電視劇)
✅ MusicBrainz(音樂)
✅ OMDB(補充信息)
✅ Fanart.tv(背景圖)配置方法:
Dashboard → Libraries → 選擇庫 → Manage Library → Metadata Downloaders
啟用/禁用提供者
調整優先級(拖拽排序)推薦配置:
電影庫:
1. TheMovieDB
2. OMDB
3. Fanart.tv電視劇庫:
1. TheTVDB
2. TheMovieDB
3. Fanart.tv7.2 自動刮削
觸發條件:
✅ 添加新媒體文件時
✅ 手動刷新元數據
✅ 定時任務(可配置)手動刷新:
1. 進入媒體庫
2. 右鍵點擊項目
3. 選擇 "Refresh Metadata"
4. 選擇 "Replace all metadata"(完全替換)
或 "Search for missing metadata"(僅補充)批量刷新:
Library → 點擊右上角三個點
→ Scan Library
→ Replace all metadata7.3 自定義元數據
編輯信息
1. 點擊媒體項目
2. 點擊編輯按鈕(鉛筆圖標)
3. 修改:
- 標題
- 概述
- 年份
- 評級
- 流派
- 演員
4. 保存上傳封面
1. 編輯項目
2. 點擊 "Change Image"
3. 上傳圖片
- Poster(海報)
- Backdrop(背景)
- Logo(標誌)
- Thumb(縮略圖)NFO 文件支持
Jellyfin 支持從 NFO 文件讀取元數據:
電影 NFO 示例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<movie>
<title>Avatar</title>
<originaltitle>Avatar</originaltitle>
<year>2009</year>
<plot>A paraplegic Marine dispatched to the moon...</plot>
<runtime>162</runtime>
<mpaa>PG-13</mpaa>
<genre>Action</genre>
<genre>Adventure</genre>
<director>James Cameron</director>
<actor>
<name>Sam Worthington</name>
<role>Jake Sully</role>
</actor>
</movie>放置位置:
Movie Folder/
├── movie.mp4
└── movie.nfo7.4 字幕管理
自動下載字幕
安裝字幕插件:
Dashboard → Plugins → Catalog
搜索 "OpenSubtitles"
安裝並重啟配置字幕:
Dashboard → Plugins → OpenSubtitles
輸入 API Key(免費註冊 opensubtitles.org)
設置首選語言:Chinese, English手動添加字幕:
1. 下載字幕文件(.srt, .ass)
2. 重命名為與視頻相同
3. 放在同一目錄
示例:
Movie.mp4
Movie.zh.srt (中文字幕)
Movie.en.srt (英文字幕)字幕設置
Dashboard → Playback → Subtitles
Subtitle mode: Default
Download subtitles: Yes
Preferred subtitle language: Chinese
Fallback subtitle language: English8. 遠程訪問設置
8.1 方案對比
| 方案 | 難度 | 安全性 | 性能 | 成本 |
|---|---|---|---|---|
| 端口轉發 | ⭐ 簡單 | ⚠️ 一般 | ⭐⭐⭐⭐⭐ | 🆓 免費 |
| Cloudflare Tunnel | ⭐⭐ 中等 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 🆓 免費 |
| VPN | ⭐⭐⭐ 複雜 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 🆓-💰 |
| Tailscale | ⭐ 簡單 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 🆓 免費 |
8.2 Cloudflare Tunnel(推薦)
參見本站教程:Cloudflare Tunnel 完全指南
快速配置:
# cloudflared config.yml
tunnel: your-tunnel-id
credentials-file: /path/to/creds.json
ingress:
- hostname: jellyfin.yourdomain.com
service: http://localhost:8096
- service: http_status:404優勢:
✅ 無需端口轉發
✅ 自動 HTTPS
✅ DDoS 防護
✅ 隱藏真實 IP8.3 端口轉發
路由器設置:
1. 登錄路由器管理界面
2. 找到 Port Forwarding / Virtual Server
3. 添加規則:
- 外部端口:8096
- 內部 IP:Jellyfin 服務器 IP
- 內部端口:8096
- 協議:TCP
4. 保存動態 DNS(如無固定公網 IP):
使用服務:
- No-IP
- DuckDNS
- DynDNS
配置 DDNS 客戶端
域名指向動態 IP訪問:
http://your-ddns-domain:8096⚠️ 安全警告:
端口轉發暴露服務到互聯網
務必:
✅ 使用強密碼
✅ 啟用 HTTPS
✅ 定期更新
✅ 監控訪問日誌8.4 Tailscale(最簡單)
安裝 Tailscale:
# 服務器
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# 客戶端(手機/電腦)
下載 Tailscale App
登錄同一賬戶訪問:
使用 Tailscale 分配的 IP
http://100.x.x.x:8096優勢:
✅ 零配置
✅ 端到端加密
✅ 無需公網 IP
✅ 跨平臺支持8.5 HTTPS 配置
使用 Let's Encrypt
安裝 Certbot:
sudo apt install certbot
# 獲取證書
sudo certbot certonly --standalone -d jellyfin.yourdomain.com配置 Nginx 反向代理:
server {
listen 443 ssl;
server_name jellyfin.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/jellyfin.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jellyfin.yourdomain.com/privkey.pem;
location / {
proxy_pass http://localhost: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;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}自動續期:
# 添加 cron 任務
sudo crontab -e
# 每月 1 號檢查續期
0 0 1 * * certbot renew --quiet && systemctl reload nginx9. 移動端 App 使用
9.1 官方 App
iOS / iPadOS
安裝:
App Store 搜索 "Jellyfin"
下載官方 App(免費)連接服務器:
1. 打開 App
2. 點擊 "Add Server"
3. 輸入地址:
- 內網:http://192.168.x.x:8096
- 外網:https://jellyfin.yourdomain.com
4. 登錄賬戶
5. 開始瀏覽功能:
✅ 瀏覽媒體庫
✅ 播放視頻/音樂
✅ 離線下載
✅ 投屏(AirPlay)
✅ 推送通知Android
安裝:
Google Play 搜索 "Jellyfin"
或 F-Droid
下載官方 App功能:
✅ 所有 iOS 功能
✅ Chromecast 投屏
✅ 後臺播放
✅ 小部件9.2 第三方客戶端
Infuse(iOS/macOS)⭐ 推薦
特點:
✅ 精美的界面
✅ 強大的解碼能力
✅ 自動元數據
✅ Dolby Vision 支持
✅ 一次性購買(非訂閱)配置:
1. 安裝 Infuse
2. Settings → Services → Add
3. 選擇 Jellyfin
4. 輸入服務器地址
5. 登錄價格:
免費版:基本功能
Pro 版:$9.99/年 或 $29.99 終身Yatse(Android)
特點:
✅ 遙控器功能
✅ 通知集成
✅ 小部件
✅ 高度可定製9.3 智能電視
Samsung/LG Smart TV
方法 1:Web 瀏覽器
1. 打開電視瀏覽器
2. 訪問 Jellyfin Web UI
3. 登錄使用方法 2:Kodi + Jellyfin 插件
1. 安裝 Kodi
2. 添加 Jellyfin 插件
3. 配置服務器Apple TV
App:
App Store 下載 "Swiftfin"(免費開源)
或 "Infuse"(付費,體驗更佳)Android TV / Fire TV
App:
Google Play 下載官方 Jellyfin App
或使用 Kodi9.4 離線下載
iOS/Android:
1. 找到要下載的項目
2. 點擊下載圖標
3. 選擇質量:
- Original(原畫質)
- High(高)
- Medium(中)
- Low(低)
4. 等待下載完成
5. 離線觀看管理下載:
Profile → Downloads
查看已下載內容
刪除不需要的
設置下載限制(WiFi only)10. 性能優化與維護
10.1 數據庫優化
定期清理:
Dashboard → Scheduled Tasks
運行:
- Clean Database(清理數據庫)
- Remove Old Cache Items(清理緩存)
- Optimize Database(優化數據庫)手動優化:
# 停止 Jellyfin
docker compose down
# 備份數據庫
cp ~/jellyfin/config/data/jellyfin.db ~/jellyfin.db.backup
# 優化 SQLite
sqlite3 ~/jellyfin/config/data/jellyfin.db "VACUUM;"
# 重啟
docker compose up -d10.2 緩存管理
清理轉碼緩存:
# 刪除舊的轉碼文件
find ~/jellyfin/cache/transcodes -type f -mtime +7 -delete
# 或自動清理
# Dashboard → Playback → Delete segments older than: 7 days清理圖片緩存:
Dashboard → Scheduled Tasks
運行:Clean Image Cache10.3 監控和日誌
查看日誌:
# Docker 日誌
docker compose logs -f jellyfin
# 日誌文件
tail -f ~/jellyfin/config/log_*.log監控資源:
# CPU 和內存
docker stats jellyfin
# 磁盤使用
du -sh ~/jellyfin/*Dashboard 監控:
Dashboard → Dashboard
查看:
- Active Devices(活躍設備)
- Current Streams(當前流)
- System Activity(系統活動)10.4 自動更新
使用 Watchtower:
# 添加到 docker-compose.yml
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true # 刪除舊鏡像
- WATCHTOWER_SCHEDULE=0 0 3 * * * # 每天 3 點檢查
restart: unless-stopped手動更新:
# 拉取最新鏡像
docker compose pull
# 重啟容器
docker compose down
docker compose up -d
# 清理舊鏡像
docker image prune -f10.5 備份策略
完整備份腳本:
#!/bin/bash
# backup-jellyfin.sh
BACKUP_DIR=~/backups/jellyfin
DATE=$(date +%Y%m%d_%H%M%S)
# 創建備份目錄
mkdir -p $BACKUP_DIR
# 備份配置
tar czf $BACKUP_DIR/config_$DATE.tar.gz ~/jellyfin/config/
# 備份數據庫
cp ~/jellyfin/config/data/jellyfin.db $BACKUP_DIR/db_$DATE.db
# 刪除 30 天前的備份
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
find $BACKUP_DIR -name "*.db" -mtime +30 -delete
echo "Backup completed: $DATE"定時備份:
# 添加 cron 任務
crontab -e
# 每天凌晨 2 點備份
0 2 * * * /path/to/backup-jellyfin.sh10.6 故障排除
問題 1:無法訪問 Web UI
檢查:
# 容器是否運行
docker ps | grep jellyfin
# 端口是否監聽
sudo netstat -tlnp | grep 8096
# 防火牆規則
sudo ufw status解決:
# 重啟容器
docker compose restart
# 檢查日誌
docker compose logs jellyfin問題 2:轉碼失敗
檢查:
# GPU 是否可用
nvidia-smi
# 或
vainfo
# 權限是否正確
ls -la /dev/dri解決:
Dashboard → Playback
嘗試不同的硬件加速器
或禁用硬件加速測試問題 3:元數據不顯示
檢查:
文件命名是否正確
文件夾結構是否符合規範
網絡連接是否正常解決:
1. 刷新元數據
2. 檢查元數據提供者設置
3. 手動編輯信息
4. 查看日誌排查錯誤問題 4:播放卡頓
檢查:
網絡帶寬是否足夠
服務器負載是否過高
是否需要轉碼解決:
1. 降低播放質量
2. 啟用硬件轉碼
3. 預轉碼媒體
4. 優化網絡常見問題解答
Q1: Jellyfin 支持哪些視頻格式?
A: 幾乎支持所有常見格式。
視頻編碼:
✅ H.264/AVC
✅ H.265/HEVC
✅ VP8/VP9
✅ AV1(新)
✅ MPEG-2/4
✅ WMV音頻編碼:
✅ AAC
✅ AC3/E-AC3
✅ DTS
✅ FLAC
✅ MP3
✅ Opus容器格式:
✅ MP4
✅ MKV
✅ AVI
✅ MOV
✅ TS/M2TS
✅ WEBMQ2: 如何遷移 Plex/Emby 到 Jellyfin?
A: Jellyfin 提供遷移工具。
從 Plex 遷移:
1. 安裝 Jellyfin
2. Dashboard → Advanced → Import Data
3. 選擇 Plex 數據庫
4. 映射媒體路徑
5. 導入從 Emby 遷移:
由於 Jellyfin 是 Emby 分支
可以直接使用 Emby 的配置和數據庫
只需更換程序即可Q3: 可以同時多少人觀看?
A: 取決於硬件和網絡。
直接播放:
千兆網絡:10-20 人
百兆網絡:3-5 人硬件轉碼:
Intel i5 核顯:3-5 路 1080p
NVIDIA GTX 1650:5-8 路 1080p
高端 GPU:10+ 路CPU 軟解:
i7-12700K:1-2 路 1080p
不推薦軟解Q4: 如何預轉碼媒體?
A: 使用 FFmpeg 批量轉碼。
腳本示例:
#!/bin/bash
# pre-transcode.sh
INPUT_DIR="/media/movies"
OUTPUT_DIR="/media/transcoded"
for file in "$INPUT_DIR"/*.mkv; do
filename=$(basename "$file")
ffmpeg -i "$file" \
-c:v libx264 -preset fast -crf 23 \
-c:a aac -b:a 128k \
"$OUTPUT_DIR/${filename%.mkv}.mp4"
done優點:
✅ 播放更流暢
✅ 減少服務器負載
✅ 兼容性好缺點:
❌ 佔用存儲空間
❌ 轉碼耗時長
❌ 質量有損失Q5: 如何優化 4K 播放?
A: 多個方面優化。
網絡:
- 使用有線連接
- 確保帶寬充足(25Mbps+)
- 路由器 QoS 設置服務器:
- 啟用硬件解碼
- SSD 存儲媒體
- 足夠的 RAM客戶端:
- 使用支持硬解的設備
- 更新播放器
- 選擇合適的應用Jellyfin 設置:
- 禁用不必要的元數據下載
- 優化圖片緩存
- 使用 direct playQ6: 可以錄製直播電視嗎?
A: 是的,Jellyfin 支持 DVR。
需要:
✅ HDHomeRun 或其他 tuner
✅ 天線或有線電視
✅ 配置 TV Provider設置:
Dashboard → Live TV
添加 Tuner
掃描頻道
設置錄製計劃Q7: 數據安全嗎?
A: 相對安全,但需注意。
安全措施:
✅ 使用強密碼
✅ 啟用 HTTPS
✅ 定期更新
✅ 備份數據
✅ 限制遠程訪問
✅ 監控日誌額外保護:
- 使用 VPN 遠程訪問
- 啟用兩步驗證
- 設置失敗登錄鎖定
- 定期審查用戶權限Q8: Jellyfin 未來發展方向?
A: 社區驅動的持續改進。
路線圖:
🎯 更好的移動端體驗
🎯 AI 輔助元數據
🎯 改進的轉碼性能
🎯 更多插件和集成
🎯 雲同步功能
🎯 社交功能社區參與:
- GitHub 貢獻代碼
- 報告 bug
- 提出建議
- 幫助翻譯
- 撰寫文檔總結
Jellyfin 是構建個人媒體服務器的絕佳選擇,它免費、開源、功能強大。
🎯 核心價值
- 完全免費:無任何隱藏費用
- 隱私保護:數據完全本地化
- 硬件轉碼:高效處理各種格式
- 跨平臺:支持幾乎所有設備
- 社區活躍:持續改進和支持
💡 實施建議
- 從小開始:先部署基礎功能
- 逐步擴展:根據需要添加功能
- 重視備份:定期備份配置和數據
- 關注安全:啟用 HTTPS 和強密碼
- 參與社區:獲取幫助和分享經驗
📚 延伸閱讀
💬 獲取幫助
- 📖 官方文檔:jellyfin.org/docs
- 💬 論壇:forum.jellyfin.org
- 💬 Discord:discord.gg/jellyfin
- 🐛 問題反饋:GitHub Issues
- 💡 本站交流:歡迎在評論區分享經驗
🎬 開始構建您的個人 Netflix,享受完全控制的媒體體驗!
💡 提示:收藏本頁面以備將來參考。如果您覺得本教程有幫助,歡迎分享給更多朋友!