使用阿里云盘的Emby视频站

需要准备的东西

一个带有的公网服务器

一个域名

一个畅通的网络

一双灵巧的手

一个健康正常的脑子

我推荐使用 docker 安装毕竟可以免去不是的配置问题

docker

直达链接

以 Ubuntu 为例

你也可以使用一键脚本安装

Copy
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run

手动安装

先卸载旧版本

Copy
sudo apt-get remove docker docker-engine docker.io containerd runc

更新 apt 包索引和安装要使用 apt 包

Copy
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

添加 Docker 的官方 GPG 密钥

Copy
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

设置存储库

Copy
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新 apt 索引

Copy
sudo apt-get update

安装 Docker Engine、containerd 和 Docker Compose

Copy
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

测试

Copy
sudo docker run --rm hello-world

能正常输出不报错就算安装成功了

善后
添加当前用户到 docker 组免去 sudo

Copy
sudo usermod -aG docker $USER
exit

Alist

官方文档

安装

Copy
docker run -d --restart=always \
--name="alist" \
-v /etc/alist:/opt/alist/data \ #'/etc/alist'本机映射路径可以设置到自己习惯的位置
-p 5244:5244 \ #如果不想映射到公网，可以使用-p 127.0.0.1:5244:5244 由于Rclone 也在docker里面 可能得加上 -p 172.17.0.1:5244:5244
xhofe/alist:latest

配置

跳转官方文档足够详细

Rclone

你可能需要先安装 fuse

Copy
sudo apt-get install fuse

安装

生成配置文件

Copy
docker run -it --rm \
-v /etc/rclone:/config/rclone \
rclone/rclone \
config

创建新的配置

设置配置名称

可以使用其他后面的 运行 rclone 中的 mount Rclone 需要保持一致

选择协议

一般都是 webdav

设置主机地址

一般指向 docker 网关即可

选择 webdav 服务类型

Alist 推荐我们选择 nextcloud

输入用户名

输入

一般选择 y 使用自己的密码
然后输入两次密码，输入不会有提示

token 和高级配置

留空和默认即可

检查

核对无误 y 保存

完成

创建完成 q 退出即可

运行 rclone

Copy
docker run -itd --name rclone \
# cpu数量限制不是必须的，如果出现rclone异常占用可以使用限制。
--cpuset-cpus="1" \
-v /etc/rclone:/config/rclone \
-v /mnt/rclone:/data:shared \
--device /dev/fuse \
--cap-add SYS_ADMIN \
--security-opt apparmor:unconfined \
rclone/rclone \
mount Rclone:/ /data --umask 0000 --vfs-cache-mode full --default-permissions --allow-non-empty --allow-other --buffer-size 1G --dir-cache-time 6h --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 20G

--vfs-cache-max-size 20G 最大缓存大小根据自己的磁盘空间大小进行修改

解除挂载

一般来说 docker stop rclone 后默认会解除挂载，如果解除失败可以使用：fusermount -qzu /mnt/挂载路径 强制解除。

视频站

Emby 安装

Copy
docker run -itd \
--restart always \
--name emby \
-v /etc/emby:/config \
-v /mnt/rclone:/rclone \
-p 8096:8096 \
-e TZ=Etc/UTC+8 \
--device /dev/dri:/dev/dri \
linuxserver/emby:latest

Jellyfin 安装

Copy
docker run -itd \
--name=jellyfin \
-e TZ=Etc/UTC+8 \
-p 8096:8096 \
-v /etc/jellyfin:/config \
-v /mnt/rclone:/rclone \
--restart always \
--device /dev/dri:/dev/dri \
linuxserver/jellyfin:latest

配置

基本配置就不赘述了
主要涉及几个自动扫描功能会导致 云盘风控 高网络占用什么的

简介标记

计划任务

这五个中会自动生成计划任务并且长时间大量占用资源，建议手动删除。

映射公网

推荐使用 Nginx 或其他反代服务器，不建议使用 emby 和 jellyfin 内部的 https 服务

申请 TLS 证书

安装 acme.sh
官方文档

Copy
curl https://get.acme.sh | sh -s email=my@example.com

使用 acme.sh 签 TLS 证书 cloudflare 版本

Copy
export CF_Token="token"
export CF_Account_ID="ID"
export CF_Zone_ID="ID"
cd ~/.acme.sh
./acme.sh --issue -d ex.com -d *.ex.com --server letsencrypt --dns dns_cf

Account_ID 和 Zone_ID 为

Token 直接使用模板：编辑区域 dns，即可；区域选择自己的域名

Nginx

编写配置文件

Copy
sudo mkdir /etc/nginx
sudo vi /etc/nginx/nginx.conf

按 i 进入编辑模式

Copy
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;

events {
use epoll;
worker_connections 512;
}

http {
ssl_certificate /etc/ssl/let/fullchain.pem;
ssl_certificate_key /etc/ssl/let/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
resolver 8.8.8.8 1.1.1.1 valid=60s;

# gzip
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;
real_ip_recursive on;

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name emby.ex.com;
# server_name emby4.ex.com; # 默认不需要
# server_name emby6.ex.com; # 默认不需要
error_page 497 =301 https://$host:$server_port$request_uri;

location / {
proxy_pass http://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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

}

按 Esc 输入 :wq 回车退出

安装

Copy
sudo touch /etc/nginx/nginx.conf
docker run -itd --restart always --name nginx --network host \
-v /path/fullchain.cer:/etc/ssl/let/fullchain.pem:ro \
-v /path/ex.com.key:/etc/ssl/let/privkey.pem:ro \
-v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
nginx

你需要将/path和/path/ex.com.key 修改为 acme.sh 告诉你的路径

媒体文件直连

Cloudflare 设置

选择规则中的重定向规则

如果不需要 v4、v6 分流只需要创建一个规则且红框圈住的不需要

以下为 v4

以下为 v6

Nginx 设置

咕咕咕