如何在 Debian 10 Buster 上安裝 Jellyfin 媒體服務器


本教程展示瞭如何在 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。這將在本教程後面解釋。

第一步是選擇您喜歡的語言。

安裝-jellyfin-media-server-debian-10

在下一個屏幕上創建一個用戶帳戶。

傑里 fin-debian-10-apt-repositories

現在您可以添加庫了。點擊 Add Media Library 按鈕。

jellyfin-debian-buster-server

選一個 內容類型 (電影、音樂、電視節目等)和顯示名稱。

然後點擊 加號 (+) 按 按鈕選擇內容文件夾。

Jellyfin 媒體文件夾路徑

筆記, jellyfin 用戶必須對媒體目錄具有讀取和執行權限。比如我的2T外置硬盤是 /media/linuxbabe/ ,由根擁有。用戶不屬於組 root 我沒有訪問權限,所以我為我的用戶運行以下命令 jellyfin 讀取和執行權限。 (不推薦使用 chownchgrp 命令。利用 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/

如果您的外部硬盤驅動器僅用於存儲媒體文件,您可以這樣做,但如果您的外部硬盤驅動器上有敏感文件,則不要這樣做。

添加媒體文件夾後,您可以配置庫設置。選擇您的語言、國家等。

配置 Jellyfin 庫

點擊 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 設置嚮導將重新出現。

在哪裡下載電影和電視節目

  1. 使用像 Deluge 這樣的洪流客戶端。
  2. 了解如何從 Usenet 下載。

Usenet的優勢

  1. 增加隱私,因為其他人無法看到您正在下載的內容。
  2. 超快的下載速度。
  3. 文件的保存時間通常比種子文件長得多。例如,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 期間服務器提供的證書。

將自動獲取並安裝證書。

啟用 Jellyfin - https-certbot-letsencrypt-debian

您可以通過 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 媒體服務器。與往常一樣,如果您發現這篇文章有幫助,請註冊我們的免費新聞通訊以獲取提示和技巧。照顧好自己?