FeranyDev

FeranyDev

使用阿里云盘的Emby视频站

需要准备的东西#

  • 一个带有的公网服务器
  • 一个域名
  • 一个畅通的网络
  • 一双灵巧的手
  • 一个健康正常的脑子

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

docker#

直达链接

以 Ubuntu 为例#

  • 你也可以使用一键脚本安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run
  • 手动安装
  1. 先卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. 更新 apt 包索引和安装要使用 apt 包
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
  1. 添加 Docker 的官方 GPG 密钥
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
  1. 设置存储库
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
  1. 更新 apt 索引
sudo apt-get update
  1. 安装 Docker Engine、containerd 和 Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 测试
sudo docker run --rm hello-world

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

  • 善后
    添加当前用户到 docker 组免去 sudo
sudo usermod -aG docker $USER
exit

Alist#

官方文档

安装#

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
sudo apt-get install fuse

安装#

生成配置文件#
docker run -it --rm \
  -v /etc/rclone:/config/rclone \
  rclone/rclone \
  config
  1. 创建新的配置
    图片
  2. 设置配置名称
    图片
    可以使用其他后面的 运行 rclone 中的 mount Rclone 需要保持一致
  3. 选择协议
    图片
    一般都是 webdav
  4. 设置主机地址
    图片
    一般指向 docker 网关即可
  5. 选择 webdav 服务类型
    图片
    Alist 推荐我们选择 nextcloud
  6. 输入用户名
    图片
  7. 输入
    图片
    一般选择 y 使用自己的密码
    然后输入两次密码,输入不会有提示
  8. token 和高级配置
    图片
    留空和默认即可
  9. 检查
    图片
    核对无误 y 保存
  10. 完成
    图片
    创建完成 q 退出即可
运行 rclone#
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 安装#

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 安装#

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

配置#

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

  1. 简介标记
    图片
  2. 计划任务
    图片
    这五个中会自动生成计划任务并且长时间大量占用资源,建议手动删除。

映射公网#

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

申请 TLS 证书#

  1. 安装 acme.sh
    官方文档
curl https://get.acme.sh | sh -s [email protected]
  1. 使用 acme.sh 签 TLS 证书 cloudflare 版本
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#

编写配置文件#

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

i 进入编辑模式

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 回车退出

安装#

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 设置#

  1. 选择规则中的重定向规则
    图片
  2. 如果不需要 v4、v6 分流只需要创建一个规则且红框圈住的不需要
  • 以下为 v4
    图片
    图片
  • 以下为 v6
    图片
    图片

Nginx 设置#

咕咕咕

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。