本教程展示瞭如何在 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 Media Server 沒有運行,您可以使用以下命令啟動它:
sudo systemctl start jellyfin
初始 Jellyfin 媒體服務器設置
端口 8096 上提供了基於 Web 的管理界面。您可以通過以下 URL 訪問 Jellyfin Web 界面:
https://127.0.0.1:8096/web
如果您在遠程 Debian 服務器上安裝了 Jellyfin,則需要使用 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 下載。
Usenet的優勢
- 增加隱私,因為其他人無法看到您正在下載的內容。
- 超快的下載速度。
- 文件的保存時間通常比種子文件長得多。例如,Newsdemon 存儲文件 4430 天(超過 12 年),因此可以非常快速地下載舊內容。
設置反向代理
因為你聽到了 127.0.0.1:8096
,Jellyfin Web 界面只能用於來自同一台計算機的連接。要使 Jellyfin Web 界面可從遠程計算機訪問,請使用 Nginx 為 Jellyfin 設置反向代理或 Apache。
nginx
Nginx 是一個非常流行的 Web 服務器和反向代理。 如果您使用 Nginx,請運行以下命令進行安裝:
sudo apt install nginx
接下來,創建一個 Jellyfin 服務器塊文件。
sudo nano /etc/nginx/conf.d/jellyfin.conf
將以下內容添加到此文件中:交換 jellyfin.example.com
使用您自己的域名。您還需要為此子域添加 DNS A 記錄。如果您沒有真實域名,我們建議您訪問 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
請使用您的實際域名。不要忘記為此子域創建 DNS A 記錄。如果您沒有真實域名,我們建議您訪問 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
要在外部訪問 Jellyfin 服務器時加密 HTTP 流量,您可以通過安裝 Let’s Encrypt 頒發的免費 TLS 證書來啟用 HTTPS。通過運行以下命令在 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
:強制 HTTPS 超過 301 重定向。--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
保存並關閉文件。重新啟動電線保護裝置。
sudo systemctl restart [email protected]
重新啟動 Jellyfin。
sudo systemctl restart jellyfin
檢查 Jellyfin 日誌(sudo journalctl -eu jellyfin
) 還。上述錯誤應該會消失。
包起來
我們希望本教程能幫助您在 Debian 10 上安裝 Jellyfin 媒體服務器。與往常一樣,如果您發現這篇文章有幫助,請註冊我們的免費新聞通訊以獲取提示和技巧。照顧好自己?