Plex 媒体服务器是一个强大的媒体管理和流式传输平台,它允许用户将自己的视频、音乐、照片和其他媒体内容集中存储,并从任何设备上进行访问和播放。通过在 Ubuntu 系统上部署 Plex 媒体服务器,你可以构建一个个人或家庭的多媒体中心,享受无缝的媒体共享和播放体验。
简介
Plex 的特点包括:
- 跨平台支持:Plex 可以在多种操作系统上运行,包括 Windows、macOS、Linux、FreeBSD 以及各种 NAS 设备。
- 多设备访问:Plex 客户端应用程序可用于智能手机、平板电脑、智能电视和游戏机等多种设备。
- 媒体元数据检索:Plex 能够自动检索媒体文件的元数据,如封面图片、简介和演员信息,并自动下载相应的字幕文件。
- 媒体转码:Plex 服务器能够根据客户端设备的能力转码媒体文件,确保即使在性能较低的设备上也能流畅播放高清内容。
- DLNA/UPnP 支持:Plex 支持 DLNA/UPnP 标准,可以与家庭影院系统和其他兼容设备无缝集成。
- 社交功能:用户可以与朋友和家人分享自己的媒体库,甚至可以创建公共播放列表和推荐。
- 直播电视和 DVR:Plex 支持直播电视和数字视频录像功能,可以观看实时电视节目并录制他们喜欢的节目。
- 插件和扩展:Plex 拥有一个活跃的社区,开发了各种插件和扩展,增强了 Plex 的功能。
接下来,我将一步一步教大家如何进行安装和部署!!
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh [email protected]
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
开始部署
1. 安装依赖
首先,我们需要更新你的 Ubuntu仓库,并安装必要的依赖。
sudo apt update
接着,使用以下命令安装依赖到你的 Ubuntu系统,并在提示时输入 y 然后按 ENTER 继续。
sudo apt install curl unzip socat libexpat1 apt-transport-https wget software-properties-common
安装完依赖后,你将准备添加 Plex 仓库到你的 Ubuntu系统。
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 -
添加仓库和密钥后,更新并刷新你的 Ubuntu仓库。
sudo apt update
现在,你可以使用以下命令安装 plexmediaserver 包。
sudo apt install plexmediaserver
安装完成后,使用以下 systemctl 命令启动并启用 plexmediaserver 服务。
sudo systemctl start plexmediaserver
sudo systemctl enable plexmediaserver
使用以下命令验证 Plex 媒体服务器是否运行。
sudo systemctl is-enabled plexmediaserver
sudo systemctl status plexmediaserver
如果一切顺利,你将看到 plexmediaserver 的状态为 active (running)。
2. 设置 UFW 防火墙
使用以下命令安装 UFW 到你的 Ubuntu系统。
sudo apt install ufw -y
安装后,添加 OpenSSH 配置文件以允许 SSH 流量,并为 Plex 打开端口 32400。
sudo ufw allow OpenSSH
sudo ufw allow 32400
现在运行以下命令启动并启用 UFW。当提示时,输入 y 确认。
sudo ufw enable
最后,使用以下命令验证 UFW 状态和启用规则列表。确保 UFW 运行状态为 Active,并且 OpenSSH 和端口 32400 都已启用。
sudo ufw status
3. 安装和配置 Nginx 作为反向代理
此时,你已经安装了 Plex 并配置了 UFW。接下来,我们将安装 Nginx 并将其配置为 Plex 媒体服务器的反向代理。
使用以下命令安装 Nginx 到你的 Ubuntu机器。
sudo apt install nginx
安装 Nginx 后,运行以下命令验证 Nginx 服务。确保 Nginx 服务正在运行并已启用。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
如果启用,你应该得到一个输出,显示为 enabled。运行时,你将看到一个输出,显示为 active (running)。
在 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 your_domain; # 你的域名
send_timeout 100m; # 一些播放器在长时间暂停后不会重新打开套接字,导致播放完全停止而不是恢复(例如 Chromecast)。增加这个设置很有帮助,但如果它导致设备播放出现问题,请关闭它。
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 默认的 client_max_body_size 是 1MB,这会破坏手机的摄像头上传功能。
# 增加这个限制可以解决这个问题。无论如何,如果预计会上传 4K 视频,可能需要进一步增加这个大小
client_max_body_size 100M; # 将真实 IP 和主机转发给 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"; # 缓冲关闭,一旦从 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
确保你没有错误,并得到一个输出 ’ syntax is OK - test is successful’。
最后,运行以下命令重启 Nginx 服务并应用你的更改到 Nginx。这样,你的 Plex 媒体服务器应该可以通过 HTTP 和 HTTPS 端口访问,这些端口由 Nginx 服务器处理。
sudo systemctl restart nginx
4. 使用 SSL/TLS 证书保护 Plex 媒体服务器
你可以通过 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 [email protected] -d your_domain
一旦过程完成,你的 Nginx 服务器块将自动配置为 HTTPS。你的 SSL/TLS 证书可以在 /etc/letsencrypt/live/your_domain
目录中找到。
5. Plex 媒体服务器配置
打开浏览器,访问你的 Plex 域名(例如:https://your_domain/)。你将被重定向到 Plex 网站注册 Plex 账户。你可以通过 Facebook/Gmail/Apple 注册,或者通过电子邮件地址注册。
注册完成后,打开一个新的标签页并访问你的 Plex 域名。如果你的安装成功,你应该得到如下所示的 Plex 媒体服务器仪表板。
总结
到此为止,你现在已经成功在 Ubuntu 服务器上安装了 Plex 媒体服务器。你还配置了 UFW 来保护 Plex 安装。此外,还配置了 Nginx 作为 Plex 媒体服务器的反向代理,并通过 Letsencrypt 的 SSL/TLS 证书保护了 Plex。
相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site