Alist配置与部署:从零开始搭建多网盘聚合平台


Alist 配置与部署:从零开始搭建多网盘聚合平台

在数字化时代,我们越来越依赖云存储服务来保存和同步我们的文件。从个人常用的 Google Drive、OneDrive、阿里云盘、百度网盘,到面向开发者的 S3、OSS 等对象存储,种类繁多。然而,管理散落在不同平台的文件、频繁切换账号登录、跨平台传输文件等操作,往往令人感到繁琐和低效。这时,一个能够统一管理、聚合访问多个网盘资源的工具就显得尤为重要。Alist 正是这样一款优秀的开源程序。

Alist 是一个支持多种存储(包括但不限于本地存储、阿里云盘、OneDrive、Google Drive、百度网盘、夸克网盘、S3、WebDAV 等数十种)的文件列表程序,它能够将这些不同的存储服务挂载到同一个Web界面下,让你像浏览本地文件夹一样方便地访问和管理所有网盘文件。它还提供了WebDAV服务,可以将所有聚合的网盘统一暴露为一个WebDAV入口,方便各种支持WebDAV协议的应用(如 KODI、Infuse、PotPlayer、nPlayer、文件管理器等)直接访问。

本文将详细介绍如何从零开始部署和配置 Alist,一步步搭建属于你自己的多网盘聚合平台。

一、 环境准备与部署方式选择

在开始部署 Alist 之前,你需要准备一个可以运行 Alist 程序的载体。常见的选择包括:

  1. 个人电脑(Windows/macOS/Linux): 适合本地测试或个人临时使用,但不适合长期稳定运行和外网访问。
  2. NAS (Network Attached Storage): 如群晖、威联通等,通常支持 Docker,是家庭用户的理想选择。
  3. VPS (Virtual Private Server): 云服务器,如阿里云、腾讯云、Vultr、DigitalOcean 等。这是最灵活、最稳定、也最推荐的方式,可以保证 7x24 小时不间断运行,并方便配置公网访问。
  4. 路由器(部分高端型号): 一些支持刷 OpenWrt 或梅林固件的路由器也可以运行 Alist。

选择好运行环境后,接下来是选择部署方式。Alist 提供了多种部署方法:

  • 直接运行二进制文件: 官方提供预编译好的各平台二进制文件,下载解压即可运行,简单直接。
  • 使用官方安装脚本(推荐新手): 针对 Linux 系统提供一键安装脚本,自动化处理下载、解压、设置服务等步骤。
  • 使用 Docker(推荐): 这是目前最流行和推荐的方式。Docker 可以提供隔离的环境,方便管理依赖,易于升级和迁移。
  • 使用 Docker Compose: 对于需要同时部署 Alist 和其他服务(如反向代理)的场景,使用 Docker Compose 可以更方便地管理多个容器。

本文将重点介绍 官方安装脚本Docker 两种主流的部署方式。假设你已经准备好了一台 Linux 服务器(如 Ubuntu 或 CentOS)。

二、 使用官方脚本部署 Alist (Linux)

这是最快捷的部署方式之一,适合对 Linux 命令行有基本了解的用户。

  1. 连接服务器: 使用 SSH 工具(如 PuTTY, Xshell, Termius 或系统自带的 ssh 命令)连接到你的 Linux 服务器。

  2. 执行安装脚本: 在终端中执行以下命令:
    bash
    curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install

    这个命令会从官方源下载最新的安装脚本并执行。脚本会自动检测你的系统架构,下载对应的 Alist 二进制文件,并将其安装到 /opt/alist 目录下,同时会尝试设置 systemd 服务以便开机自启和后台运行。

  3. 获取初始管理员密码: 安装完成后,脚本通常会输出 Alist 的访问地址和初始管理员密码。如果当时没看到,可以通过以下命令查看:
    bash
    cd /opt/alist
    ./alist admin

    或者(如果已设置为 systemd 服务):
    bash
    /opt/alist/alist admin

    请务必记下这个密码,首次登录后需要修改。

  4. 管理 Alist 服务: 脚本通常会将 Alist 设置为 systemd 服务,你可以使用以下命令来管理:

    • 启动 Alist: systemctl start alist
    • 停止 Alist: systemctl stop alist
    • 重启 Alist: systemctl restart alist
    • 查看状态: systemctl status alist
    • 设置开机自启: systemctl enable alist
    • 取消开机自启: systemctl disable alist
  5. 访问 Alist: 打开浏览器,访问 http://你的服务器IP:5244(5244 是 Alist 的默认端口)。如果你的服务器有防火墙(如 ufwfirewalld),请确保开放了 5244 端口。

    • 例如,使用 ufw: sudo ufw allow 5244/tcp
    • 例如,使用 firewalld: sudo firewall-cmd --zone=public --add-port=5244/tcp --permanent && sudo firewall-cmd --reload

三、 使用 Docker 部署 Alist

Docker 部署提供了更好的环境隔离和便捷性,是更推荐的方式。

  1. 安装 Docker 和 Docker Compose: 如果你的服务器上还没有安装 Docker,请先安装。

    • 安装 Docker: 官方推荐使用便利脚本安装:
      bash
      curl -fsSL https://get.docker.com -o get-docker.sh
      sudo sh get-docker.sh

      安装完成后,启动 Docker 服务并设置开机自启:
      bash
      sudo systemctl start docker
      sudo systemctl enable docker
    • 安装 Docker Compose (可选但推荐):
      根据你的系统架构从 Docker Compose 的 GitHub Releases 页面下载最新版本。例如:
      bash
      LATEST_COMPOSE=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
      sudo curl -L "https://github.com/docker/compose/releases/download/${LATEST_COMPOSE}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      sudo chmod +x /usr/local/bin/docker-compose
      # 验证安装
      docker-compose --version
  2. 使用 docker run 命令部署: 这是最简单的 Docker 部署方式。
    bash
    sudo docker run -d --restart=always \
    -v /etc/alist:/opt/alist/data \
    -p 5244:5244 \
    --name="alist" \
    xhofe/alist:latest

    • -d: 后台运行容器。
    • --restart=always: 容器退出时总是自动重启(除非手动停止)。
    • -v /etc/alist:/opt/alist/data: 将宿主机的 /etc/alist 目录挂载到容器内的 /opt/alist/data 目录。这是 Alist 存储配置文件和数据的地方,非常重要,确保数据持久化。你可以将 /etc/alist 替换为你希望在宿主机上存储配置的任何路径。
    • -p 5244:5244: 将宿主机的 5244 端口映射到容器的 5244 端口。
    • --name="alist": 给容器命名为 "alist",方便管理。
    • xhofe/alist:latest: 指定使用的 Docker 镜像。latest 表示最新稳定版。
  3. 获取初始管理员密码 (Docker): 当使用 Docker 首次运行时,初始密码会打印在容器的日志中。使用以下命令查看:
    bash
    sudo docker logs alist

    在日志中找到类似 "Admin password:" 的行,记下密码。

  4. 使用 Docker Compose 部署 (推荐): 创建一个 docker-compose.yml 文件,内容如下:
    yaml
    version: '3.3'
    services:
    alist:
    image: xhofe/alist:latest
    container_name: alist
    volumes:
    - '/etc/alist:/opt/alist/data' # 将宿主机 /etc/alist 映射到容器 /opt/alist/data
    ports:
    - '5244:5244' # 映射端口
    restart: always
    environment:
    # 如果需要指定 PUID/PGID (可选, 保证文件权限)
    # - PUID=1000
    # - PGID=1000
    # 如果需要指定时区 (可选)
    - TZ=Asia/Shanghai

    docker-compose.yml 文件所在的目录下,执行以下命令启动:
    bash
    sudo docker-compose up -d

    同样,使用 sudo docker logs alistsudo docker-compose logs 查看初始密码。

    管理 Docker Compose 服务:
    * 启动: sudo docker-compose up -d
    * 停止: sudo docker-compose down
    * 重启: sudo docker-compose restart
    * 查看日志: sudo docker-compose logssudo docker-compose logs -f (实时)
    * 更新镜像并重启: sudo docker-compose pull && sudo docker-compose up -d

  5. 访问 Alist: 同样,通过 http://你的服务器IP:5244 访问。确保防火墙开放了 5244 端口。

四、 Alist 初始配置

无论使用哪种方式部署,首次访问 Alist Web 界面 (http://服务器IP:5244) 后,你需要进行一些基本配置。

  1. 登录: 使用前面获取到的初始管理员密码登录。用户名为 admin

  2. 修改管理员密码: 登录后,强烈建议立即修改管理员密码。点击页面底部的 "管理" 按钮,进入后台管理界面。在左侧菜单选择 "设置" -> "个人资料",输入旧密码和新密码,然后保存。

  3. 熟悉后台界面:

    • 仪表盘: 显示一些基本信息。
    • 存储: 这是核心功能,用于添加和管理你的各种网盘或存储服务。
    • 元信息: 配置网站标题、Logo、公告、自定义 CSS/JS 等。
    • 用户: 管理 Alist 的用户,可以创建不同权限的用户。
    • 设置: 包括站点设置、WebDAV 设置、安全设置(如密码策略、验证码)、后端设置等。
    • 任务: 查看进行中的任务,如下载、复制等。
    • 关于: 查看 Alist 版本信息和文档链接。

五、 添加存储(核心步骤)

这是 Alist 最关键的部分,将你的各种云存储服务添加到 Alist 中。

  1. 进入存储管理: 在后台管理界面,点击左侧菜单的 "存储"。

  2. 点击 "添加": 右下角会有一个 "添加" 按钮,点击它。

  3. 配置存储项:

    • 虚拟路径 (Mount Path): 这是该存储在 Alist 中显示的路径,必须以 / 开头,例如 /阿里云盘/GoogleDrive/本地备份。这是用户访问时的入口。
    • 索引 (Order): 数字越小,在根目录下的排序越靠前。
    • 驱动 (Driver): 这是最重要的选项。选择你要添加的存储类型,例如 "AliyundriveOpen"(阿里云盘Open API,推荐)、"OneDrive"、"GoogleDrive"、"Local"(本地存储)、"BaiduNetdisk"(百度网盘)等等。Alist 支持数十种驱动。
    • 启用 (Enable): 勾选表示启用此存储。
    • WebDAV策略 (WebDAV policy): 控制此存储是否以及如何通过 Alist 的 WebDAV 服务访问。常用选项有:
      • native_proxy: 使用 Alist 中转(默认,兼容性好)。
      • use_driver_proxy_url: 如果驱动支持,直接使用驱动的 WebDAV 地址(可能更快,但兼容性取决于驱动)。
      • redirect: 重定向到驱动的 WebDAV 地址。
      • no_proxy: 不通过 WebDAV 暴露此存储。
    • 缓存过期时间 (Cache expiration): Alist 会缓存目录结构以提高访问速度,这里设置缓存的有效时间(秒)。默认 30 分钟。如果网盘内容变化频繁,可以适当调小。
    • 配置参数 (Varies by Driver): 这是根据所选 "驱动" 动态变化的区域,需要填写该驱动所需的认证信息和特定配置。下面以几个常用驱动为例:

      • 阿里云盘 (AliyundriveOpen):
        • 刷新令牌 (Refresh token): 需要通过 Alist 提供的工具或链接获取。通常是访问一个网页,用阿里云盘 App 扫描二维码授权,然后就能得到 Refresh Token。将其粘贴到这里。
        • 根文件夹ID (Root folder ID): 默认为 root,表示显示整个网盘。如果你只想显示某个特定文件夹,需要填入该文件夹的 ID(在阿里云盘网页版的地址栏可以找到)。
      • OneDrive / SharePoint:
        • 驱动版本 (Driver Version): 选择 Global (国际版)、CN (世纪互联版) 或 US。
        • 客户端ID (Client ID) / 客户端密钥 (Client Secret): 需要在 Azure Active Directory (Microsoft Entra ID) 中注册一个应用程序,获取 Client ID 和 Client Secret。
        • 刷新令牌 (Refresh Token): 点击旁边的 "获取令牌" 按钮或链接,按照提示登录 OneDrive 账号授权,获取 Refresh Token。
        • 根文件夹路径 (Root folder path): 默认为 /,表示整个 OneDrive。可以指定子文件夹路径,如 /Documents/Backup
      • Google Drive:
        • 客户端ID (Client ID) / 客户端密钥 (Client Secret): 需要在 Google Cloud Console 创建一个 OAuth 2.0 客户端 ID,获取 Client ID 和 Client Secret。
        • 刷新令牌 (Refresh Token): 点击 "获取令牌",登录 Google 账号授权,获取 Refresh Token。
        • 根文件夹ID (Root folder ID): 默认为 root,表示整个 Google Drive。可以指定特定文件夹的 ID。
      • 本地存储 (Local):
        • 根文件夹路径 (Root folder path): 填写 Alist 运行环境(宿主机或 Docker 容器内)的绝对路径。例如,如果你在 Docker 中将宿主机的 /data/share 映射到了容器的 /mnt/share,并且你想把这个目录添加到 Alist,那么这里应该填写容器内的路径 /mnt/share注意权限问题,确保运行 Alist 的用户(或 Docker 容器)有读取该目录的权限。
    • 其他选项:

      • 备注 (Remark): 给这个存储添加一个说明。
      • 启用签名 (Enable sign): 部分驱动(如下载链接有时效性)需要开启。
      • 顺序方向 (Order direction): 文件夹内文件/子文件夹的排序方式。
  4. 保存: 填写完所有必要信息后,点击页面底部的 "保存" 按钮。

  5. 重复添加: 重复步骤 2-4,添加你所有的网盘和存储服务。

添加完成后,回到 Alist 的主页(非管理后台),你应该就能看到你刚才添加的所有存储,以你设置的 "虚拟路径" 作为入口文件夹。点击进入,就可以浏览和管理文件了。

六、 进阶配置与使用

  1. 用户管理: 如果你想分享给朋友或家人,但又不希望他们有管理员权限,可以在 "用户" 管理中创建新用户,并为其分配合适的权限(如只读访问、限制访问特定路径等)。

  2. WebDAV 服务: 这是 Alist 的强大功能之一。在 "设置" -> "WebDAV" 中启用 WebDAV 服务,并设置用户名和密码。然后你就可以在支持 WebDAV 的客户端(如 Windows 网络位置、macOS Finder、各种文件管理器 App、播放器 App)中添加 Alist 的 WebDAV 地址 (http://服务器IP:5244/dav),使用设置的用户名密码登录。这样,你添加的所有网盘都会统一出现在这个 WebDAV 入口下,极大地方便了跨应用访问。

  3. HTTPS 与反向代理 (推荐): 直接使用 IP 地址和 HTTP 访问是不安全的。强烈建议配置 HTTPS。最佳实践是使用 Nginx 或 Caddy 等 Web 服务器作为反向代理。

    • 大致流程:
      1. 准备一个域名,并将其解析到你的服务器 IP。
      2. 安装 Nginx 或 Caddy。
      3. 配置反向代理,将来自域名的请求转发到 Alist 的本地端口 (127.0.0.1:5244)。
      4. 使用 Let's Encrypt (通过 Certbot 或 Caddy 的自动 HTTPS 功能) 为你的域名申请并配置免费的 SSL 证书。
    • 示例 Nginx 配置片段 (需要 Certbot 配置 SSL):
      ```nginx
      server {
      listen 80;
      server_name yourdomain.com; # 替换为你的域名

      # 重定向 HTTP 到 HTTPS
      location / {
          return 301 https://$host$request_uri;
      }
      

      }

      server {
      listen 443 ssl http2;
      server_name yourdomain.com; # 替换为你的域名

      # SSL 证书路径 (由 Certbot 生成)
      ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
      include /etc/letsencrypt/options-ssl-nginx.conf;
      ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
      
      client_max_body_size 0; # 允许上传大文件
      
      location / {
          proxy_pass http://127.0.0.1:5244; # 代理到 Alist 服务
          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_buffering off; # 建议关闭缓冲以支持大文件流式传输
      }
      
      # 如果要使用 Alist 的 WebDAV
      location /dav {
          proxy_pass http://127.0.0.1:5244/dav;
          # ... 其他 proxy 设置同上 ...
      }
      

      }
      ``
      配置完成后,你就可以通过
      https://yourdomain.com` 访问 Alist 了。

  4. 文件预览与下载: Alist 支持常见文件类型的在线预览(图片、视频、音频、文档等)。对于不支持预览的文件,会提供下载链接。视频播放效果取决于网盘源站的速度和 Alist 服务器的带宽。

  5. 搜索: Alist 提供跨存储的搜索功能,方便快速定位文件。

七、 维护与更新

  1. 更新 Alist:
    • 脚本安装: 再次运行安装脚本即可更新:curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s update
    • Docker:
      • docker run: 先停止并删除旧容器 (docker stop alist && docker rm alist),然后拉取新镜像 (docker pull xhofe/alist:latest),最后用之前的 docker run 命令重新创建容器。因为配置文件挂载在宿主机,所以配置不会丢失。
      • docker-compose: 在 docker-compose.yml 文件目录下执行 sudo docker-compose pull && sudo docker-compose up -d
  2. 备份配置: Alist 的所有配置都存储在数据目录中(脚本安装默认在 /opt/alist/data,Docker 示例中是 /etc/alist)。最重要的文件是 config.json。定期备份这个目录是个好习惯。

八、 常见问题与排错

  • 无法访问 http://服务器IP:5244:
    • 检查 Alist 服务是否正在运行 (systemctl status alistdocker ps)。
    • 检查服务器防火墙是否开放了 5244 端口。
    • 检查云服务器的安全组规则是否允许 5244 端口的入站连接。
  • 添加存储后无法加载或报错:
    • 仔细检查填写的配置参数是否正确,特别是 Refresh Token、Client ID/Secret 等认证信息。
    • 查看 Alist 的日志获取更详细的错误信息 (journalctl -u alistdocker logs alist)。
    • 确保 Alist 服务器能够访问对应的网盘 API(网络问题)。
    • 对于本地存储,检查路径是否正确以及权限是否足够。
  • WebDAV 连接失败:
    • 确认已在 Alist 后台启用 WebDAV 并设置了用户名密码。
    • 确认使用的 WebDAV 地址 (http://服务器IP:5244/davhttps://yourdomain.com/dav) 和凭据正确。
    • 部分客户端对 WebDAV 实现有差异,可以尝试更换客户端或调整 Alist 中存储的 WebDAV 策略。

如果遇到无法解决的问题,可以查阅 Alist 官方文档 (https://alist.nn.ci/) 或在 GitHub Issues (https://github.com/alist-org/alist/issues) 中寻求帮助。

九、 总结

Alist 作为一个功能强大且持续更新的开源项目,极大地简化了多云存储环境下的文件管理。通过本文的指引,你应该能够成功部署并配置好自己的 Alist 平台,将散落各处的数字资产聚合到一个统一、便捷的界面下进行访问和管理。无论是个人使用还是小范围分享,Alist 都能提供出色的体验。随着你对 Alist 功能的深入探索,你会发现它更多的可能性,例如结合下载工具、媒体服务器等,构建更完善的个人数据中心。立即动手,搭建你的专属多网盘聚合平台吧!


THE END