Plex Media Server 是一款适用于本地环境的 DIY 流媒体解决方案。它可以将不同类型的媒体文件集中存储在一个位置,然后可以从多个位置和设备(如电视、智能手机等)流式传输所有媒体文件。
本指南将告诉你如何在 Debian 12 服务器上安装 Plex 媒体服务器。您将使用 UFW(不复杂防火墙)和 Nginx 作为反向代理安装 Plex。
要开始学习本指南,请确保您具备以下条件:
在安装之前,让我们先将所需的依赖项安装到 Debian 机器上。
首先,运行以下命令更新 Debian 软件源。
sudo apt update
然后,使用下面的命令将依赖项安装到 Debian 系统中。输入 y,然后按 ENTER 键继续。
sudo apt install curl unzip socat libexpat1 apt-transport-https wget software-properties-common
安装好依赖项后,您就可以安装 Plex 媒体资源库了。但在此之前,您必须在 Debian 系统中添加 Plex 资源库。
运行以下命令将 Plex 资源库添加到您的 Debian 机器。
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
然后,使用以下命令为 Plex 资源库添加 GPG 密钥。
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
添加版本库和 GPG 密钥后,使用以下命令更新并刷新 Debian 版本库。
sudo apt update
现在版本库已经更新,你可以使用下面的命令安装 plexmediaserver 软件包。
sudo apt install plexmediaserver
安装完成后,运行以下 systemctl 命令启动并启用 plexmediaserver 服务。
sudo systemctl start plexmediaserver
sudo systemctl enable plexmediaserver
plexmediaserver 应该已经在 Debian 机器上运行。现在使用下面的命令进行验证。
sudo systemctl is-enabled plexmediaserver
sudo systemctl status plexmediaserver
如果一切顺利,你会看到 plexmediaserver 的状态为 active(运行中)。
在本指南中,您将使用 UFW 保护 Plex 媒体服务器。因此,您必须首先在 Debian 服务器上安装 UFW,然后启用 OpenSSH 配置文件,并为 Plex 媒体服务器添加主端口。
使用以下命令在 Debian 系统中安装 UFW。
sudo apt install ufw -y
安装完成后,添加 OpenSSH 配置文件以允许 SSH 流量,并为 Plex 打开 32400 端口。
sudo ufw allow OpenSSH
sudo ufw allow 32400
现在运行下面的命令启动并启用 UFW。出现提示时,输入 y 加以确认。
sudo ufw enable
最后,使用以下命令验证 UFW 状态和已启用规则的列表。确保 UFW 以激活状态运行,并且 OpenSSH 和端口 32400 都已启用。
sudo ufw status
至此,您已经安装了 Plex 并配置了 UFW。现在,让我们安装 Nginx,并将其配置为 Plex 媒体服务器安装的反向代理。
使用下面的命令在 Debian 机器上安装 Nginx 网络服务器。出现提示时输入 y,然后按 ENTER 键继续。
sudo apt install nginx
Nginx 安装完成后,运行以下命令验证 Nginx 服务。确保 Nginx 服务正在运行并已启用。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
如果已启用,应该会有诸如 enabled(已启用)的输出。运行时,会输出 active(正在运行)。
Nginx 运行后,运行下面的 ufw 命令,为 Plex 流量打开 HTTP 和 HTTPS 端口。默认情况下,UFW 提供一个应用程序配置文件 “WWW Full”,用于打开 HTTP 和 HTTPS。
运行下面的命令启用 “Nginx Full ”配置文件,然后重新加载 UFW 以应用。
sudo ufw allow 'Nginx Full'
sudo ufw reload
接下来,使用下面的 nano 编辑器命令创建新的服务器块配置/etc/nginx/sites-available/plex。这将用作安装 Plex 媒体服务器的反向代理。
vim /etc/nginx/sites-available/plex
添加下面的配置,并确保将域名更改为 Plex 域名。在此,您也可以使用本地环境的本地域名。
upstream plex_backend {
server 127.0.0.1:32400;
keepalive 32;
}
server {
listen 80;
server_name plex.howtoforge.local;
send_timeout 100m; #Some players don't reopen a socket and playback stops totally instead of resuming after an extended pause (e.g. Ch$
#Plex has A LOT of javascript, xml, and html. This helps a lot, but if it causes playback issues with devices turn it off. (Haven't enc$
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css text/xml application/xml text/javascript application/x-javascript image/svg+xml;
gzip_disable "MSIE [1-6]\.";
#Nginx default client_max_body_size is 1MB, which breaks the Camera Upload feature from the phones.
#Increasing the limit fixes the issue. Anyhow, if 4K videos are expected to be uploaded, the size might need to be increased even more
client_max_body_size 100M;
#Forward real ip and host to Plex
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 Sec-WebSocket-Extensions $http_sec_websocket_extensions;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
#Websockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
#Buffering off is sent to the client as soon as the data is received from Plex.
proxy_redirect off;
proxy_buffering off;
location / {
proxy_pass http://plex_backend;
}
}
保存文件并退出编辑器。
接下来,运行下面的命令启用/etc/nginx/sites-available/plex服务器块,并验证Nginx语法。
sudo ln -s /etc/nginx/sites-available/plex /etc/nginx/sites-enabled
sudo nginx -t
确保没有错误,并确保输出 “语法正常--测试成功”。
最后,运行下面的命令重启 Nginx 服务,并将更改应用到 Nginx。这样,您的 Plex 媒体服务器就可以通过 HTTP 和 HTTPS 端口访问了,这些端口由 Nginx 网络服务器处理。
sudo systemctl restart nginx
在本指南中,您将通过 SSL/TLS 证书确保 Plex 安装安全。对于本地域用户,可以生成自签名证书,并在 Nginx 服务器块上手动启用 HTTPS。如果使用公域,则使用 Certbot 和 Letsencrypt 生成 SSL/TLS 证书。
运行以下命令安装 certbot 和 certbot Nginx 插件。
sudo apt install certbot python3-certbot-nginx
安装完成后,运行下面的 certbot 命令,为 Plex 域名生成 SSL/TLS 证书。此外,请务必用您的信息更改电子邮件地址和域名。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email admin@howtoforge.local -d plex.howtoforge.local
该过程完成后,Nginx 服务器块将自动配置为 HTTPS。您可以在 /etc/letsencrypt/live/domain.com 目录中找到 SSL/TLS 证书。
打开浏览器,访问 Plex 域名(即: https://plex.howtoforge.local/)。您将被重定向到 plex.tv 网站,注册 Plex 账户。您可以通过 Facebook/Gmail/Apple 注册,也可以通过电子邮件地址注册。
注册完成后,打开一个新标签,访问您的 Plex 域名。如果安装成功,您将看到如下所示的 Plex 媒体服务器仪表盘:
恭喜您!您现在已经在 Debian 12 服务器上安装了 Plex 媒体服务器。您还在 Debian 上配置了 UFW,以确保 Plex 安装的安全性。此外,您还配置了 Nginx 作为 Plex 媒体服务器的反向代理,并通过 Letsencrypt 的 SSL.TLS 证书确保了 Plex 的安全。