plex服务器集群 PMS cluster

🕓 Dec 12, 2020 · ☕7 min read

PMS sharing project …… 这个中转真的很麻烦,发出来全当引玉了。。。丢人不怕,能帮到你就好

00盘复兴计划开始了,预计农历上线 主要内容还是和之前00盘类似

提供小组搜集刮削成果,有PT大佬坐镇,资源从来不成为瓶颈

提供emby完整刮削包

提供plex完整刮削包

daocker 一键搭建

所有资源依然是:

永久免费

永久续存

永久更新

UPDATE4:

Caddy 2 Docker 其实可以自动签,前提是域名和ip做好解析。

配置文件如下:

	hz.dxz.plus {
		#  tls /etc/caddy/certs/hz.dxz.plus.crt /etc/caddy/certs/hz.dxz.plus.key
			encode zstd gzip
	reverse_proxy * http://127.0.0.1:32400 {
	flush_interval -1
	header_up Host 127.0.0.1
	header_up X-Real-IP {http.request.remote.host}
	header_up X-Forwarded-For {http.request.remote.host}
	header_up X-Forwarded-Port {http.request.port}
	header_up X-Forwarded-Proto {http.request.scheme}
	header_up X-Plex-Protocol 1.0
	}
	}

tls 后面的是自己签好的证书。docker caddy 默认自动acme签,所以这里面注释掉了。如果你有自己的证书,写好位置,去掉注视即可

中转配置只要下面改成中转地址

reverse_proxy * https://abc.dxz.plus
header_up Host abc.dxz.plus

国外中转套cf CDN(开☁️)可能会加速;国内除非本地可以找到好的IP(比如湖南联通对应日本IP),否则不建议。

UPDATE3:

plex刮削包做好了,基于Bryan大佬的11PLUSVIP盘

首先删除或者移动原来的plex文件夹,假设和我一样的设置

mv /root/plex /root/plex1

准备至少大于40G的硬盘,然后将刮削包解压到本地任意目录

wget https://share.dxz.plus/BlogContent/plex11.tar.gz

tar -xzvf plex11.tar.gz /root/

再解压(注意此方法可能需要更多空间)

或者挂载老00盘,直接解压到本地

tar -xzvf /root/rclone/00/misc/plex11.tar.gz /root/

无论哪种方式,解压以后首先删除原来 plex docker

docker rm plex -f

然后重新启用 plexdocker

docker run --name=plex -e PUID=0 -e PGID=0 -e VERSION=docker -e UMASK=022 `#optional` -v /root/plex/config:/config -v /root/rclone/00:/00  -v /root/rclone/11:/11 -p 32400:32400    -p 32700:32400  -p 3005:3005   -p 5353:5353/udp   -p 8324:8324   -p 32410:32410/udp   -p 32412:32412/udp   -p 32413:32413/udp   -p 32414:32414/udp   -p 32469:32469   -v /root/plex/transcode:/transcode --restart unless-stopped     ghcr.io/linuxserver/plex 

再用ssh反代到plex服务器,以认领服务器 reversedirect

连接ssh,浏览器输入 127.0.0.1:12345/web 即可看到登录界面,登录自己的plex账号即可认领

plex认领服务器账号不需要高级版,有播放器即可播放服务器内容,播放器自己想办法吧。。。

00盘将会免费提供 Plex 和 Emby 刮下包,尽量拣取精华内容,将压缩包控制在20G以内。供弱鸡使用。

当然,大全版本也会有,不能枉费了兄弟们收藏的辛苦💦

UPDATE2:

突然想起,gost 可以作为中转,转发PMS的32400端口,经过 @terrancesiu 大佬的确认,没问题

gost 安装参考上篇教程,或者自行谷百

在PMS网络设置填写中转鸡ip https:x.x.x.x:32436 PMS_networking

中转鸡gost, 一条命令搞定

gost -L=:32436/3.114.136.xxx:32400

也可以用gost 一键脚本 gost

或者

直接在中转鸡和PMS鸡之间建立gost隧道

PMS gost -L tcp://:32401/127.0.0.1:32400 观察网络情况,成功以后直接 nohup gost -L tcp://:32401/127.0.0.1:32400 /dev/null 2>&1 &

中转鸡 gost -L tcp://:32400/54.246.19.xxx:32401 同理成功后用 nohup

如此一来可以彻底关闭PMS鸡的web界面,改用32401的gost隧道。应该更加安全

同时中转鸡反代到本地127.0.0.1:32400会直接到PMS小鸡,可以利用CF的免费https证书

https 嗯,应该是很完美了(除了两🐔之间无法像emeng那样白嫖CF的CDN,如果有需要就上nginx吧)

UPDATE:

目前两种反代方案: caddy 和 nginx

nginx 性能好,可以走cf,推荐:

emengweb大佬针对不同人群的两篇教程 小白进阶

caddy 性能差,无法cf, https正常(其实是我没搞清楚,期待大神指点)

本次更新主要介绍caddy。后面的zerotier组网不适合分享,随便看看吧。

获取 Cloudfalre API 令牌,教程很多,自行谷百吧

设置PMS(一下操作再PMS小鸡,工作鸡,aws 爱尔兰🇮🇪)

先安装go

wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.14.linux-amd64.tar.gz

export PATH=$PATH:/usr/local/go/bin

go version 

apt install git -y

go env -w GO111MODULE="auto"

apt install git --force-yes -y

go get -u github.com/caddyserver/xcaddy/cmd/xcaddy

caddy

git clone https://github.com/caddyserver/xcaddy.git

cd xcaddy/cmd/xcaddy

go build

./xcaddy build master --with github.com/caddy-dns/cloudflare

如果内存报错 用下面脚本增加虚拟内存

wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh

安装完毕以后 运行

./caddy list-modules | grep dns

出现

dns.providers.cloudflare

成功!

success

mv caddy /usr/local/bin/

工作鸡搭建 Caddy V2 用于反代本地 127.0.0.1:32400

Caddy 配置文件

mkdir /root/caddy
nano /root/caddy/Caddyfile

写入如下内容,自行替换相关地址

awsirplex.wedxz.com {
tls {
  dns cloudflare 7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  }

  reverse_proxy  127.0.0.1:32400 {
    header_up Host {http.request.host}
            header_up X-Real-IP {http.request.remote}
            header_up X-Forwarded-For {http.request.remote}
            header_up X-Forwarded-Port {http.request.port}
            header_up X-Forwarded-Proto {http.request.scheme}
            header_up Connection {http.request.header.Connection}
            header_up Upgrade {http.request.header.Upgrade}
			}
			}

其中: awsirplex.wedxz.com : PMS小鸡

安装 docker,脚本 :

sudo apt-get update -y
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh

plex docker

docker run --name=plex -e PUID=0 -e PGID=0 -e VERSION=docker -e UMASK_SET=022 `#optional` -v /root/plex/config:/config -v /root/rclone/00:/00  -v /root/rclone/11:/11 -p 32400:32400    -p 32700:32400  -p 3005:3005   -p 5353:5353/udp   -p 8324:8324   -p 32410:32410/udp   -p 32412:32412/udp   -p 32413:32413/udp   -p 32414:32414/udp   -p 32469:32469   -v /root/plex/transcode:/transcode --restart unless-stopped   -e PLEX_CLAIM=claim-ThZQptYV6jZ3VmXa93of  ghcr.io/linuxserver/plex  

其中: PLEX_CLAIM=claim-ThZQptYV6jZ3VmXa93of : 可以在 plex官网获取。

-p 32400:32400 : emeng 大佬说可以用 -p 127.0.0.1:32400:32400 替换, 更加安全。但还是建议先用 上面的,等plex安装设置完成以后 再 删掉 plex docker stop plex docker rm plex (不要删配置文件) 在重新 docker run 上述命令(改一下 -p 127.0.0.1:32400:32400 ) 即可。

-v /root/rclone/00:/00 : 也可以直接映射 -v /root/rclone:/00

这样挂载再rclone目录下的 多个网盘可以再docker 里面的00目录下,方便一点点。但是之前不这么干是因为 plex 支持3层目录,Bryan的剧集四层目录。需要分开

输入 IP:32400 可以进入设置,登录 生成 claim的账号 直接认领服务器。

在设置里面先关

远程连接远程连接

再设置一下网络

网络设置网络设置

Custom server access URLs 那里要加上中转鸡的域名

PMS鸡是 http://awsinplex.wedxz.com/,https://awsirplex.wedxz.com/

中转鸡是 https://awsinplex.wedxz.com/

关闭转码,防止小鸡过劳

transcodeOff

设置中转鸡(以下操作再 aws 印度🐔)

其他和上面PMS基本一样,并且中转鸡只需要安装 Caddy V2 即可

配置文件:

mkdir /root/caddy
nano /root/caddy/Caddyfile

内容

awsinplex.wedxz.com {
tls {
  dns cloudflare 7XXXXXXXXXXXXXXXXXXXXXXXX
  }

  reverse_proxy  54.246.19.204:32400 {
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
}
}

其中

7XXXXXXXXXXXXXXXXXXXXXXXX : Cloudfalre API 令牌

54.246.19.204:32400: PMS的IP

awsinplex.wedxz.com: 中转鸡域名

PMS🐤可以开CF CDN保护(白嫖加速)

中转🐔不开保护

CDN

这是emeng的新泽西小鸡效果

这是学渣的Gcore中转awsJP

这是本次写博客搭建的PMS@sws爱尔兰 via aws孟买,速度明显不及 上面两个,需要更快的中转鸡才行

更新结束

哋哔哋

简单说下 PMS cluster 思路: PMS 就是plex media server, 一款收费媒体播放系统 和emby差不多。但是体验下来,略胜一筹。cluster就是集群,这里是把多人的plex server 共享粗来,利用zero-tier内网功能, 实现远程串流vps媒体内容,集高画质,超流畅,暴拉轰于一体

注册zero-tier

教程n多,不重复造轮子了。 得到 密钥即可

VPS安装zero-tier

还是脚本 root权限运行:

curl -s https://install.zerotier.com |  bash

安装好以后,根据各种教程继续走,加入zero-tier
zerotier-cli join 6ab56xxxxxxxxxx

zero-tier 内网

跟其他教程走即可,此处简略:

建立内网后,把各个vps的docker 内网加入 zero-net路由

1

注意要和和vps的docker内网对应 2 如果多个内网冲突,改一下docker内网

nano /etc/docker/daemon.json

内容是

{
"bip":"172.xxx.0.1/24"
}

重启docker

systemctl restart docker

网络准备完毕

PMS docker

docker run --name=plex -e PUID=0 -e PGID=0 -e VERSION=docker -e UMASK_SET=022 `#optional` -v /root/plex/config:/config -v /root/rclone/00:/00  -v /root/rclone:/0000 -p 32400:32400   -p 1900:1900/udp   -p 3005:3005   -p 5353:5353/udp   -p 8324:8324   -p 32410:32410/udp   -p 32412:32412/udp   -p 32413:32413/udp   -p 32414:32414/udp   -p 32469:32469 -p 32700:32400 -v /root/plex/transcode:/transcode --restart unless-stopped --device=/dev/dri:/dev/dri  -e PLEX_CLAIM=claim-000000000000000000 ghcr.io/linuxserver/plex 

其中要说明的是:

/root/rclone是你gdrive的挂载目录,这里要是00盘的话可以直接这样写,同时可以读取多个/root/rclone下的挂载目录,如11盘的话,由于PMS目录只支持3层,那么就要直接映射 -v /root/rclone/11:/11,否则无法选择剧种

-e PLEX_CLAIM=claim-000000000000000000 是认领你的PMS。由于vps不在本地,所以ssh 反代认领,或者是 docker run的时候认领,这样等到docker运行1分钟完全生成服务器的时候,登录生成claim的PMS账号即可直接认领该服务器

–net=host 这样写的话,会把整个vps内网加入zerotier,可能会有一定风险;同时127.0.0.1也不便于zero-tier路由分配。另外建议加入cluster的VPS都改成证书登录,并且证书 目录不要映射到 PMS里

claim 密钥在这里 获取,登录PMS账号生成

在家里面,如果有OpenWRT的话,自带zero-tier, 在VPN那里配置。输入 加入zero-tier的密钥即可

手机端如果在OpenWRT 环境外串流(direct play 或者 copy play),也要首先加入zero-tier,但是有个小坑:无法开小火箭了。好在zero-tier全平台,这也是首选她的原因之一

手机如果4G连网还要设置默认的远程播放属性,来串流 3

这是甲骨文小鸡,手机4G串流4K 23G的《异形》,串流服务器没压力,注意改ac3音频,压力更小

等小伙伴们的服务器都搭建好以后,互相加入好友,即可分享自己的PMS。同时大家又都在一个内网下,串流即可。当然前段时间电信升级了100m上传,也别忘了拿出来一用 以上就是简要的过程,如有不清楚的可以留言,也可以进群讨论。

常坑

  1. docker PMS启动 看不到认领: 等一会儿在 打开网页,或者 删除docker PMS,注意要删除 /root/plex/config下的所有文件,重新运行docker run。( docker真是太任性了!!)

金牌大学渣
WRITTEN BY
金牌大学渣
Web Developer