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 程序的载体。常见的选择包括:
- 个人电脑(Windows/macOS/Linux): 适合本地测试或个人临时使用,但不适合长期稳定运行和外网访问。
- NAS (Network Attached Storage): 如群晖、威联通等,通常支持 Docker,是家庭用户的理想选择。
- VPS (Virtual Private Server): 云服务器,如阿里云、腾讯云、Vultr、DigitalOcean 等。这是最灵活、最稳定、也最推荐的方式,可以保证 7x24 小时不间断运行,并方便配置公网访问。
- 路由器(部分高端型号): 一些支持刷 OpenWrt 或梅林固件的路由器也可以运行 Alist。
选择好运行环境后,接下来是选择部署方式。Alist 提供了多种部署方法:
- 直接运行二进制文件: 官方提供预编译好的各平台二进制文件,下载解压即可运行,简单直接。
- 使用官方安装脚本(推荐新手): 针对 Linux 系统提供一键安装脚本,自动化处理下载、解压、设置服务等步骤。
- 使用 Docker(推荐): 这是目前最流行和推荐的方式。Docker 可以提供隔离的环境,方便管理依赖,易于升级和迁移。
- 使用 Docker Compose: 对于需要同时部署 Alist 和其他服务(如反向代理)的场景,使用 Docker Compose 可以更方便地管理多个容器。
本文将重点介绍 官方安装脚本 和 Docker 两种主流的部署方式。假设你已经准备好了一台 Linux 服务器(如 Ubuntu 或 CentOS)。
二、 使用官方脚本部署 Alist (Linux)
这是最快捷的部署方式之一,适合对 Linux 命令行有基本了解的用户。
-
连接服务器: 使用 SSH 工具(如 PuTTY, Xshell, Termius 或系统自带的
ssh
命令)连接到你的 Linux 服务器。 -
执行安装脚本: 在终端中执行以下命令:
bash
curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install
这个命令会从官方源下载最新的安装脚本并执行。脚本会自动检测你的系统架构,下载对应的 Alist 二进制文件,并将其安装到/opt/alist
目录下,同时会尝试设置 systemd 服务以便开机自启和后台运行。 -
获取初始管理员密码: 安装完成后,脚本通常会输出 Alist 的访问地址和初始管理员密码。如果当时没看到,可以通过以下命令查看:
bash
cd /opt/alist
./alist admin
或者(如果已设置为 systemd 服务):
bash
/opt/alist/alist admin
请务必记下这个密码,首次登录后需要修改。 -
管理 Alist 服务: 脚本通常会将 Alist 设置为 systemd 服务,你可以使用以下命令来管理:
- 启动 Alist:
systemctl start alist
- 停止 Alist:
systemctl stop alist
- 重启 Alist:
systemctl restart alist
- 查看状态:
systemctl status alist
- 设置开机自启:
systemctl enable alist
- 取消开机自启:
systemctl disable alist
- 启动 Alist:
-
访问 Alist: 打开浏览器,访问
http://你的服务器IP:5244
(5244 是 Alist 的默认端口)。如果你的服务器有防火墙(如ufw
或firewalld
),请确保开放了 5244 端口。- 例如,使用 ufw:
sudo ufw allow 5244/tcp
- 例如,使用 firewalld:
sudo firewall-cmd --zone=public --add-port=5244/tcp --permanent && sudo firewall-cmd --reload
- 例如,使用 ufw:
三、 使用 Docker 部署 Alist
Docker 部署提供了更好的环境隔离和便捷性,是更推荐的方式。
-
安装 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
- 安装 Docker: 官方推荐使用便利脚本安装:
-
使用
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
表示最新稳定版。
-
获取初始管理员密码 (Docker): 当使用 Docker 首次运行时,初始密码会打印在容器的日志中。使用以下命令查看:
bash
sudo docker logs alist
在日志中找到类似 "Admin password:" 的行,记下密码。 -
使用 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 alist
或sudo docker-compose logs
查看初始密码。管理 Docker Compose 服务:
* 启动:sudo docker-compose up -d
* 停止:sudo docker-compose down
* 重启:sudo docker-compose restart
* 查看日志:sudo docker-compose logs
或sudo docker-compose logs -f
(实时)
* 更新镜像并重启:sudo docker-compose pull && sudo docker-compose up -d
-
访问 Alist: 同样,通过
http://你的服务器IP:5244
访问。确保防火墙开放了 5244 端口。
四、 Alist 初始配置
无论使用哪种方式部署,首次访问 Alist Web 界面 (http://服务器IP:5244
) 后,你需要进行一些基本配置。
-
登录: 使用前面获取到的初始管理员密码登录。用户名为
admin
。 -
修改管理员密码: 登录后,强烈建议立即修改管理员密码。点击页面底部的 "管理" 按钮,进入后台管理界面。在左侧菜单选择 "设置" -> "个人资料",输入旧密码和新密码,然后保存。
-
熟悉后台界面:
- 仪表盘: 显示一些基本信息。
- 存储: 这是核心功能,用于添加和管理你的各种网盘或存储服务。
- 元信息: 配置网站标题、Logo、公告、自定义 CSS/JS 等。
- 用户: 管理 Alist 的用户,可以创建不同权限的用户。
- 设置: 包括站点设置、WebDAV 设置、安全设置(如密码策略、验证码)、后端设置等。
- 任务: 查看进行中的任务,如下载、复制等。
- 关于: 查看 Alist 版本信息和文档链接。
五、 添加存储(核心步骤)
这是 Alist 最关键的部分,将你的各种云存储服务添加到 Alist 中。
-
进入存储管理: 在后台管理界面,点击左侧菜单的 "存储"。
-
点击 "添加": 右下角会有一个 "添加" 按钮,点击它。
-
配置存储项:
- 虚拟路径 (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 容器)有读取该目录的权限。
- 阿里云盘 (AliyundriveOpen):
-
其他选项:
备注 (Remark)
: 给这个存储添加一个说明。启用签名 (Enable sign)
: 部分驱动(如下载链接有时效性)需要开启。顺序方向 (Order direction)
: 文件夹内文件/子文件夹的排序方式。
- 虚拟路径 (Mount Path): 这是该存储在 Alist 中显示的路径,必须以
-
保存: 填写完所有必要信息后,点击页面底部的 "保存" 按钮。
-
重复添加: 重复步骤 2-4,添加你所有的网盘和存储服务。
添加完成后,回到 Alist 的主页(非管理后台),你应该就能看到你刚才添加的所有存储,以你设置的 "虚拟路径" 作为入口文件夹。点击进入,就可以浏览和管理文件了。
六、 进阶配置与使用
-
用户管理: 如果你想分享给朋友或家人,但又不希望他们有管理员权限,可以在 "用户" 管理中创建新用户,并为其分配合适的权限(如只读访问、限制访问特定路径等)。
-
WebDAV 服务: 这是 Alist 的强大功能之一。在 "设置" -> "WebDAV" 中启用 WebDAV 服务,并设置用户名和密码。然后你就可以在支持 WebDAV 的客户端(如 Windows 网络位置、macOS Finder、各种文件管理器 App、播放器 App)中添加 Alist 的 WebDAV 地址 (
http://服务器IP:5244/dav
),使用设置的用户名密码登录。这样,你添加的所有网盘都会统一出现在这个 WebDAV 入口下,极大地方便了跨应用访问。 -
HTTPS 与反向代理 (推荐): 直接使用 IP 地址和 HTTP 访问是不安全的。强烈建议配置 HTTPS。最佳实践是使用 Nginx 或 Caddy 等 Web 服务器作为反向代理。
- 大致流程:
- 准备一个域名,并将其解析到你的服务器 IP。
- 安装 Nginx 或 Caddy。
- 配置反向代理,将来自域名的请求转发到 Alist 的本地端口 (127.0.0.1:5244)。
- 使用 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 了。
配置完成后,你就可以通过
- 大致流程:
-
文件预览与下载: Alist 支持常见文件类型的在线预览(图片、视频、音频、文档等)。对于不支持预览的文件,会提供下载链接。视频播放效果取决于网盘源站的速度和 Alist 服务器的带宽。
-
搜索: Alist 提供跨存储的搜索功能,方便快速定位文件。
七、 维护与更新
- 更新 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
。
- 脚本安装: 再次运行安装脚本即可更新:
- 备份配置: Alist 的所有配置都存储在数据目录中(脚本安装默认在
/opt/alist/data
,Docker 示例中是/etc/alist
)。最重要的文件是config.json
。定期备份这个目录是个好习惯。
八、 常见问题与排错
- 无法访问
http://服务器IP:5244
:- 检查 Alist 服务是否正在运行 (
systemctl status alist
或docker ps
)。 - 检查服务器防火墙是否开放了 5244 端口。
- 检查云服务器的安全组规则是否允许 5244 端口的入站连接。
- 检查 Alist 服务是否正在运行 (
- 添加存储后无法加载或报错:
- 仔细检查填写的配置参数是否正确,特别是 Refresh Token、Client ID/Secret 等认证信息。
- 查看 Alist 的日志获取更详细的错误信息 (
journalctl -u alist
或docker logs alist
)。 - 确保 Alist 服务器能够访问对应的网盘 API(网络问题)。
- 对于本地存储,检查路径是否正确以及权限是否足够。
- WebDAV 连接失败:
- 确认已在 Alist 后台启用 WebDAV 并设置了用户名密码。
- 确认使用的 WebDAV 地址 (
http://服务器IP:5244/dav
或https://yourdomain.com/dav
) 和凭据正确。 - 部分客户端对 WebDAV 实现有差异,可以尝试更换客户端或调整 Alist 中存储的 WebDAV 策略。
如果遇到无法解决的问题,可以查阅 Alist 官方文档 (https://alist.nn.ci/) 或在 GitHub Issues (https://github.com/alist-org/alist/issues) 中寻求帮助。
九、 总结
Alist 作为一个功能强大且持续更新的开源项目,极大地简化了多云存储环境下的文件管理。通过本文的指引,你应该能够成功部署并配置好自己的 Alist 平台,将散落各处的数字资产聚合到一个统一、便捷的界面下进行访问和管理。无论是个人使用还是小范围分享,Alist 都能提供出色的体验。随着你对 Alist 功能的深入探索,你会发现它更多的可能性,例如结合下载工具、媒体服务器等,构建更完善的个人数据中心。立即动手,搭建你的专属多网盘聚合平台吧!