本教程將向您展示如何在您的 Debian 10 服務器/桌面上安裝 Jellyfin 媒體服務器。 Jellyfin 是一個免費的開源應用程序,可讓您在漂亮的界面中組織您的電影、電視節目、音樂和照片,並在您的 PC、平板電腦、手機、電視、Roku 等設備上通過網絡流式傳輸它們。互聯網這些媒體文件。 Jellyfin 可以安裝在 Linux、MacOS 和 Windows 上。
傑瑞芬的特點
Jellyfin 是 Emby 媒體服務器的一個分支。 它包含許多與 Plex 和 Emby 相同的功能。
- 與 Plex 和 Emby 不同,Jellyfin 是 100% 免費和開源的。無廣告。移動應用程序沒有播放限制。 (雖然 iOS 應用無法在後台播放視頻。)
- 觀看直播電視並設置自動錄製以擴展您的媒體庫。
- 它會自動從 TheTVDB、TheMovieDB、OpenMovie 數據庫和爛番茄中檢索藝術作品和元數據。
- 支持 DLNA。
- 您可以安裝可選插件以提供附加功能。
- 支持使用 FFMpeg 進行視頻編碼/解碼的硬件加速。
- 更多的。
在 Debian 10 上安裝 Jellyfin 媒體服務器
Jellyfin 不包含在默認的 Debian 存儲庫中,但它有自己的存儲庫。運行以下命令將 Jellyfin 存儲庫添加到您的 Debian 10 系統。
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian buster main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
然後運行以下命令將 Jeffyfin GPG 密鑰導入您的 Debian 系統,以便 APT 在安裝過程中驗證軟件包的完整性。
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -
此外,此存儲庫使用 HTTPS 連接,必須安裝 apt-transport-https
什麼時候 ca-certificates
盒。
sudo apt install apt-transport-https ca-certificates
最後,更新 Debian 系統上的軟件包索引並安裝 Jellyfin。
sudo apt update sudo apt install jellyfin
此命令還將其他三個包安裝為依賴項。
jellyfin-ffmpeg
: 用於視頻轉碼。jellyfin-server
: 後端服務器。jellyfin-web
: 前端網頁界面。
現在您已經安裝了 Jellyfin 媒體服務器,您可以使用以下命令檢查其狀態:
systemctl status jellyfin
如您所見,它適用於 Debian 10 系統。 (根據 q
重新獲得終端控制權的關鍵。 )。
如果 Jellyfin 媒體服務器沒有運行,您可以使用以下命令啟動它:
sudo systemctl start jellyfin
Jellyfin 媒體服務器的初始設置
8096 端口提供基於 Web 的管理界面。您可以通過以下 URL 訪問 Jellyfin Web 界面:
https://127.0.0.1:8096/web
如果 Jellyfin 安裝在遠程 Debian 服務器上,則必須使用 Nginx 或 Apache 訪問 Web UI。這將在本教程後面討論。
第一步是選擇您喜歡的語言。
在下一個屏幕上,創建一個用戶帳戶。
您現在可以添加庫。點擊 Add Media Library
按鈕。
請選擇一個 內容類型 (電影、音樂、電視節目等)和顯示名稱。
然後點擊 加號 (+) 單擊按鈕以選擇內容文件夾。
筆記, jellyfin
用戶必須對媒體目錄具有讀取和執行權限。比如我的2T外置硬盤安裝在 /media/linuxbabe/
, 歸根所有。不屬於該組的用戶 root
我無法訪問它,所以我向用戶運行以下命令 jellyfin
讀取和執行權限。 (不推薦使用 chown
還 chgrp
命令。利用 setfacl
命令就足夠了。 )。
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/
您可能需要為各個媒體目錄分配權限,如下所示。
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name
添加遞歸標誌 (-R
),這是 jellyfin
讀取和運行驅動器上所有文件和子目錄的權限。
sudo setfacl -R -m u:jellyfin:rx /media/linuxbabe/
如果外部硬盤驅動器僅用於存儲媒體文件,則可以這樣做,但如果外部硬盤驅動器具有敏感文件,則不能這樣做。
添加媒體文件夾後,您可以配置庫設置。請選擇語言、國家等。
點擊 Ok
什麼時候 Next
按鈕。您以後可以隨時添加庫。以下步驟允許您選擇是否啟用遠程訪問。 我們不建議啟用本機遠程訪問方法,因為它們不提供 HTTPS 加密。清除這兩個複選框。如果您需要遠程訪問,請閱讀本文後面的“如何設置反向代理”。
點擊 Next
什麼時候 Finish
按鈕。最後,登錄您的 Jellyfin 帳戶。
重做初始設置
如果您在初始設置中出錯,您可以重新開始。首先,編輯 Jellyfin 配置文件。
sudo nano /etc/jellyfin/system.xml
改變
<IsStartupWizardCompleted>true</IsStartupWizardCompleted>
到達
<IsStartupWizardCompleted>false</IsStartupWizardCompleted>
保存並關閉文件。然後重新啟動 Jellyfin。
sudo systemctl restart jellyfin
立即訪問 localhost:8096/web
設置嚮導將重新出現。
在哪裡下載電影和電視節目
- 使用像 Deluge 這樣的洪流客戶端。
- 了解如何從 Usenet 下載。
使用網的好處
- 它為您提供更好的隱私,因為其他人看不到您正在下載的內容。
- 超快的下載速度。
- 文件的保存時間通常比種子文件長得多。例如,Newsdemon 存儲文件 4430 天(12 年或更長時間),因此可以非常快速地下載舊內容。
設置反向代理
因為我聽到 127.0.0.1:8096
, Jellyfin Web 界面只能用於來自同一台計算機的連接。您可以使用 Nginx 設置 Jellyfin 反向代理或 Apache 以允許遠程計算機訪問 Jellyfin Web 界面。
nginx
Nginx 是一個非常流行的 Web 服務器和反向代理。 如果您使用 Nginx,請運行以下命令進行安裝。
sudo apt install nginx
接下來,創建一個 Jellyfin 服務器塊文件。
sudo nano /etc/nginx/conf.d/jellyfin.conf
將以下內容添加到此文件中:交換 jellyfin.example.com
使用您自己的域名。您還需要為此子域添加 DNSA 記錄。如果您沒有真實域名,我們建議您訪問 NameCheap 進行購買。它很便宜,並且為您的餘生免費提供 whois 隱私保護。
server {
listen 80;
listen [::]:80;
server_name jellyfin.example.com;
access_log /var/log/nginx/jellyfin.access;
error_log /var/log/nginx/jellyfin.error;
set $jellyfin 127.0.0.1;
location / {
proxy_pass https://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-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
# Disable buffering when the nginx proxy gets very resource heavy upon streaming
proxy_buffering off;
}
# location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/
location ~ ^/web/$ {
# Proxy main Jellyfin traffic
proxy_pass https://$jellyfin:8096/web/index.html/;
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-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
location /socket {
# Proxy Jellyfin Websockets traffic
proxy_pass https://$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-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-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
# Security / XSS Mitigation Headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
}
保存並關閉此文件。接下來,測試您的 Nginx 配置。
sudo nginx -t
如果測試成功,請重新加載 Nginx 以使更改生效。
sudo systemctl reload nginx
您現在可以通過以下方式訪問 Jellyfin 媒體服務器: jellyfin.example.com
..
阿帕奇
如果您想通過 Nginx 使用 Apache,請使用以下命令安裝 Apache Web 服務器。
sudo apt install apache2
必須啟用 Apache 作為反向代理 proxy
模塊和頭模塊。
sudo a2enmod proxy proxy_http headers proxy_wstunnel
接下來,為 Jellyfin 創建一個虛擬主機文件。
sudo nano /etc/apache2/sites-available/jellyfin.conf
將以下配置放入文件中。交換 jellyfin.example.com
請使用實際域名。不要忘記為此子域創建 DNSA 記錄。如果您沒有真實域名,我們建議您訪問 NameCheap 進行購買。它很便宜,並且為您的餘生免費提供 whois 隱私保護。
<VirtualHost *:80>
ServerName jellyfin.example.com
ErrorDocument 404 /404.html
#HTTP proxy
ProxyPass / https://localhost:8096/
ProxyPassReverse / https://localhost:8096/
#Websocket proxy
SSLProxyEngine on
<Location /:/websockets/notifications>
ProxyPass wss://localhost:8096/:/websockets/notifications
ProxyPassReverse wss://localhost:8096/:/websockets/notifications
</Location>
Header always unset X-Frame-Options
</VirtualHost>
保存並關閉文件。然後啟用這個虛擬主機。
sudo a2ensite jellyfin.conf
重啟阿帕奇
sudo systemctl restart apache2
您現在可以使用您的域名訪問 Jellyfin 媒體服務器 jellyfin.example.com
..
啟用 HTTPS
您可以通過安裝 Let’s Encrypt 頒發的免費 TLS 證書來啟用 HTTPS,以在從外部訪問 Jellyfin 服務器時加密 HTTP 流量。通過運行以下命令在 Debian 10 上安裝 Let’s Encrypt 客戶端 (certbot):
sudo apt install certbot
如果要使用 Nginx,還需要安裝 Certbot Nginx 插件。
sudo apt install python3-certbot-nginx
然後運行以下命令獲取並安裝 TLS 證書。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
如果要使用 Apache,則需要安裝 Certbot Apache 插件。
sudo apt install python3-certbot-apache
然後運行以下命令獲取並安裝 TLS 證書。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
在哪裡:
--nginx
: 使用 nginx 插件。--apache
: 使用 Apache 插入。--agree-tos
: 我接受使用條款。--redirect
: 301 通過重定向強制 HTTPS。--hsts
:將 Strict-Transport-Security 標頭添加到所有 HTTP 響應。強制瀏覽器始終對域使用 TLS。 防止 SSL / TLS 剝離。--staple-ocsp
:啟用 OCSP 訂書釘。有效的 OCSP 響應被裝訂到 TLS 期間服務器提供的證書。
現在將自動獲取並安裝證書。
您可以通過 HTTPS 訪問 Jellyfin Web 界面。 https://jellyfin.example.com
..
如何在 Debian 10 上升級 Jellyfin
當新版本的 Jellyfin Media Server 發佈時,您可以通過運行以下命令對其進行升級:
sudo apt update sudo apt upgrade
然後重新啟動 Jellyfin。
sudo systemctl restart jellyfin
故障排除
如果 Debian 服務器正在運行 WireGuard VPN,您可能會在 Jellyfin 日誌中看到以下錯誤(sudo journalctl -eu jellyfin
)。
[ERR] Error sending socket message from 10.0.0.102 to 239.255.255.250:1900 System.Net.Sockets.SocketException (0xFFFFFFFF): Bad value for ai_flags
此錯誤表示 WireGuard 接口無法向 SSDP(簡單服務發現協議)多播地址 239.255.255.250 發送消息。這是因為 WireGuard 接口不允許訪問 IP 地址。
要解決此問題,請編輯 WireGuard 接口配置文件。
sudo nano /etc/wireguard/your-interface.conf
查出 AllowedIPs
範圍。礦山如下。
AllowedIPs = 10.0.0.0/8
如您所見,只有 VPN 客戶端允許連接到 10.0.0.0/8 網絡。立即添加 239.255.255.250
地址。
AllowedIPs = 10.0.0.0/8, 239.255.255.250
保存並關閉文件。 重新啟動 WireGuard。
sudo systemctl restart [email protected]
重新啟動 Jellyfin。
sudo systemctl restart jellyfin
檢查 Jellyfin 日誌(sudo journalctl -eu jellyfin
) 還。上述錯誤應該會消失。
包起來
我們希望本教程能幫助您在 Debian 10 上安裝 Jellyfin 媒體服務器。與往常一樣,如果您覺得這篇文章有用,請訂閱我們的免費時事通訊以獲取更多提示和技巧。照顧好自己?