Plex Media Server是一个用于本地环境的DIY流媒体解决方案。它允许你将不同类型的媒体文件集中存储,然后从多个位置和设备(如电视、智能手机等)流式传输所有媒体文件。
本指南将向你展示如何在Debian 12服务器上安装Plex Media Server。你将通过UFW(简单防火墙)和Nginx反向代理来安装Plex。
前置条件
开始本指南之前,请确保你具备以下条件:
- 一台Debian 12服务器
- 一个具有管理员权限的非root用户
- 一个已指向服务器IP地址的域名
安装依赖
在安装之前,先在Debian机器上安装所需的依赖。首先运行以下命令更新Debian软件源。
sudo apt update

之后使用以下命令在Debian系统上安装依赖包。提示时输入y,然后按Enter继续。
sudo apt install curl unzip socat libexpat1 apt-transport-https wget software-properties-common

在Debian上安装Plex Media Server
依赖安装完成后,你就可以安装Plex Media Repository了。但在安装之前,你必须先向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 (running)。

设置UFW
在本指南中,你将使用UFW来保护Plex Media Server。因此必须先在Debian服务器上安装UFW,然后启用OpenSSH配置并添加Plex Media Server的主端口。
使用以下命令在Debian系统上安装UFW。
sudo apt install ufw -y
安装完成后,添加OpenSSH配置以允许SSH流量,并开放端口32400用于Plex。
sudo ufw allow OpenSSH
sudo ufw allow 32400
运行以下命令启动并启用UFW。提示时输入y确认。
sudo ufw enable
最后使用以下命令验证UFW状态和已启用的规则列表。确保UFW状态为Active,且OpenSSH和端口32400都已启用。
sudo ufw status

安装和配置Nginx反向代理
至此,你已安装了Plex并配置了UFW。现在安装Nginx并将其配置为Plex Media Server的反向代理。使用以下命令在Debian机器上安装Nginx Web服务器。提示时输入y,然后按Enter继续。
sudo apt install nginx

Nginx安装完成后,运行以下命令验证Nginx服务。确保Nginx服务已运行并启用。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
如果已启用,输出应为enabled。如果正在运行,输出应显示active (running)。

在Nginx运行的情况下,运行以下ufw命令开放HTTP和HTTPS端口用于Plex流量。默认情况下,UFW提供了Nginx Full应用配置用于同时开放HTTP和HTTPS端口。
sudo ufw allow 'Nginx Full'
sudo ufw reload

接下来使用以下命令创建新的服务器块配置文件/etc/nginx/sites-available/plex。这将用作Plex Media Server安装的反向代理。
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;
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]\.";
client_max_body_size 100M;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_redirect off;
proxy_buffering off;
location / {
proxy_pass http://plex_backend;
}
}
保存文件并退出编辑器。
接下来运行以下命令启用服务器块配置,并验证Nginx配置语法。
sudo ln -s /etc/nginx/sites-available/plex /etc/nginx/sites-enabled
sudo nginx -t
确保没有错误,输出应为syntax is ok - test is successful。

最后运行以下命令重启Nginx服务并应用更改。此时,你的Plex Media Server应该可以通过HTTP和HTTPS端口访问,由Nginx Web服务器处理。
sudo systemctl restart nginx
使用SSL/TLS证书保护Plex Media Server
在本指南中,你将通过SSL/TLS证书保护Plex安装。对于本地域名用户,可以生成自签名证书并在Nginx服务器块上手动启用HTTPS。如果使用公共域名,请使用Certbot和Let's Encrypt生成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。SSL/TLS证书可以在/etc/letsencrypt/live/domain.com目录中找到。
Plex Media Server配置
打开Web浏览器并访问你的Plex域名(如https://plex.howtoforge.local/)。你将被重定向到plex.tv网站注册Plex账户。你可以通过Facebook/Gmail/Apple注册,也可以通过电子邮件地址注册。

注册完成后,打开新标签页并访问你的Plex域名。如果安装成功,你应该会看到Plex Media Server仪表板。

总结
恭喜!你已在Debian 12服务器上安装了Plex Media Server。你还在Debian上配置了UFW来保护Plex安装。此外,你还配置了Nginx作为Plex Media Server的反向代理,并通过Let's Encrypt的SSL/TLS证书保护了Plex。