使用Linux服务器将任意网盘挂载到本地-在线加解密网盘中的文件和视频

2025年3月30日
240 次阅读
Exp1oit

1.前言

众所周知,在国内,网盘将会审查你存储的文件。那么如何实现将自己的文件存储到云盘上呢,实现何时何地都可以进行观看,那么下面我就介绍下几个简单的项目来完成上面的需求,实现将自己的文件加密存储到云盘上。


2.需要利用的软件

  1. alist 后端webdav重要服务
  2. alist-encrypt 后端视频媒体加密服务
  3. Aria2-Pro-Docker BT以及其他种子下载服务
  4. AriaNg bt管理web页面

3.搭建过程

alist和alist-encrypt搭建过程可以参考github的参考文档。注意alist-encrypt的后端ip地址以及设置加密必须为alist的ip地址 再搭建后alist后端配置号你需要的网盘路径,参考官方文档

alist-encrypt搭建

alist-encrypt反向代理

server{ 
      listen 443 ssl;
      listen 443 quic;
      server_name  自己的域名;
      ssl_stapling on;
      resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=300s;
      resolver_timeout 5s;
      ssl_certificate /root/.acme.sh/*.exploit-db.xyz_ecc/fullchain.cer;
      ssl_certificate_key /root/.acme.sh/*.exploit-db.xyz_ecc/*.exploit-db.xyz.key;    
      ssl_protocols TLSv1.2 TLSv1.3;

          # 必须的 HTTP/3 头
    add_header Alt-Svc 'h3=":443"; ma=86400';
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;

     location /  {
        proxy_pass  http://127.0.0.1:5344/; #alist-encrypt容器地址
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Range $http_range;
        proxy_set_header If-Range $http_if_range;
        proxy_redirect off;
        client_max_body_size 20000m;
}
}

其他配置

注意,alist-encrypt必须设置到alist的docker容器地址,alist-encrypt只是转发你的流量。


Aria2-docker容器搭建

参考文档

利用Rclone自动将下载好的文件同步到webdav中

docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=P3TERX \
    -e RPC_PORT=6800 \
    -e LISTEN_PORT=6888 \
    -v ~/aria2-config:/config \
    -v ~/rclone-downloads:/downloads \
    -e SPECIAL_MODE=rclone \
    p3terx/aria2-pro
  • 之前若使用过 RCLONE 直接把配置文件(rclone.conf)复制到 Aria2 Pro 配置目录下即可。 RCLONE 配置文件可以在宿主机的默认位置找到:~/.config/rclone/rclone.conf
  • 初次使用或者想要配置 RCLONE 可使用docker exec -it aria2-pro rclone config命令进入容器内的 RCLONE 交互菜单选项,配置方法可参考:《Rclone 安装配置教程》。
  • 最后根据实际情况修改 Aria2 Pro 配置文件目录下script.conf文件中的网盘名称(drive-name)和网盘路径(drive-dir)这两个选项的值。此处的值需要你和alist中的webdav路径相同 否则文件会无法上传

4.AriaNg管理页面搭建

下载前端页面静态资源包

wget https://github.com/mayswind/AriaNg/releases/download/1.3.10/AriaNg-1.3.10.zip

其中版本可以自定义替换,这个zip包只是一个静态资源文件,我们需要通过nginx将静态资源文件映射出来

nginx搭建web控制页面

下面分享下nginx的配置文件

server {
      listen 443  ssl;
      listen 443 quic;
      server_name  你的域名;
      ssl_stapling on;
      resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=300s;
      resolver_timeout 5s;
      ssl_certificate /root/.acme.sh/*.exploit-db.xyz_ecc/fullchain.cer;
      ssl_certificate_key /root/.acme.sh/*.exploit-db.xyz_ecc/*.exploit-db.xyz.key;
      ssl_protocols  TLSv1.1 TLSv1.2 TLSv1.3;
      root /var/www/ariang/AriaNg-DailyBuild-master;    # 指定 AriaNg 文件解压后的目录
      index index.html;
      
      location / {
                      auth_basic "请先登录";             # 提示信息
        auth_basic_user_file /etc/nginx/.htpasswd; # 指定密码文件
        try_files $uri $uri/ /index.html;
        }
          # 配置 RPC 的代理
    location /jsonrpc {
        proxy_pass http://127.0.0.1:6800; # Aria2 的 RPC 地址
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;

        # 防止超时
        proxy_read_timeout 300;
        proxy_send_timeout 300;
    }
}

注意,这个AriaNg是没有访问权限控制的,如果你要映射到公网,请一定要注意权限控制,我是利用了nginx自带的密码控制,生成了密码文件,所以其他用户必须要登录才能看见静态页面。

控制页面链接aria后端

image.png 当你反向代理设置完成后,在前端页面上配置链接到后端aria的容器。密码为Aria2-docker容器运行启动时的密码

5.大概流程图为

aria-web -> aria-docker -> alist-encrypt -> alist

6.注意

  1. 当你流程搭建完成后,添加BT种子到aria前端中后,下载完成后会自动上传到你的webdav的路径网盘中。有的网盘必须要开通会员才可以webdav挂载,如夸克。
  2. 当你观看视频时,走的是你vps的流量。因为你加密的视频需要vps进行解密,除非你境内也搭建一个alist解密服务

评论区

0 / 500
* 为必填项