
1. 项目概述为什么我们需要一个统一的网盘“导航仪”如果你和我一样手里攒着好几个网盘——百度网盘存着工作资料阿里云盘塞满了电影和剧集夸克网盘里是刚下载的学习资源OneDrive同步着办公文档——那你一定深有体会管理它们简直是一场噩梦。每次想找个文件都得像开盲盒一样挨个打开不同的App或网页登录、查找、下载效率低得令人抓狂。更别提那些网盘各自为政的界面和令人迷惑的限速策略了。AList的出现就是为了终结这种混乱。你可以把它理解为一个万能网盘聚合器或者一个私人云存储的“导航仪”。它的核心功能非常直接将你分散在各个平台的网盘、对象存储、甚至本地文件夹通过一个统一的Web界面进行管理和访问。你不再需要记住文件具体在哪个网盘只需打开AList的页面所有资源一目了然支持在线预览视频、文档、图片甚至可以直接播放音乐。更进一步通过WebDAV协议你可以将这些聚合起来的虚拟存储空间像本地硬盘一样挂载到你的Windows或Linux系统上在文件管理器里直接操作复制粘贴、拖拽编辑体验和操作本地文件毫无二致。这个项目特别适合两类人一是重度网盘用户渴望统一管理入口提升效率二是喜欢折腾的家庭媒体中心或NAS玩家希望将多个云存储资源整合到Jellyfin、Plex等媒体库中打造无缝的影音体验。接下来我将以一名系统运维和家庭实验室搭建者的视角带你从零开始在Linux和Windows两大平台上完成AList的部署、配置到本地挂载的全过程并分享我踩过的坑和总结的实战技巧。2. 部署方案选型Docker vs 原生二进制哪个更适合你在开始动手之前选择一个合适的部署方式是成功的第一步。AList官方提供了多种安装方式但主流且推荐的无非两种Docker容器化部署和直接运行原生二进制文件。这两种方式没有绝对的好坏只有是否适合你的使用场景。2.1 Docker部署隔离、干净、易维护的首选对于绝大多数用户尤其是Linux用户Docker部署是我最推荐的方式。原因很简单环境隔离。AList运行所需的所有依赖如特定的库文件都被封装在镜像里与你宿主机系统的环境完全隔离。这意味着你不会因为安装AList而污染系统也完全避免了“在我机器上好好的怎么到你这就报错”的经典问题。升级、回滚也异常简单只需拉取新镜像重启容器即可。核心优势环境纯净与宿主机隔离避免依赖冲突。一键部署一条命令即可完成安装和运行。易于管理通过Docker Compose可以轻松定义数据卷、网络和重启策略。跨平台一致无论在Ubuntu、CentOS还是群晖DSM上体验完全一致。适用场景几乎所有Linux服务器、NAS如群晖、威联通、UnRAID、以及安装了Docker Desktop的Windows/macOS开发机。2.2 原生二进制部署极致轻量与对Docker说“不”的选择如果你运行的设备资源极其有限例如老旧的树莓派或者你对Docker有“洁癖”希望服务以最纯粹的系统进程方式运行那么直接运行二进制文件是更好的选择。AList官方提供了预编译好的可执行文件下载后赋予执行权限即可运行没有任何额外的运行时依赖。核心优势资源占用极低没有Docker引擎和镜像层的开销纯粹是进程本身的内存和CPU占用。部署简单真的就是下载、给权限、运行三步。深度集成可以更方便地使用systemd等系统服务管理器来托管实现开机自启。潜在缺点需要手动处理数据目录、日志和更新流程。更新时需要停止旧进程替换二进制文件再启动。适用场景资源紧张的嵌入式设备、追求极致轻量化的VPS、或希望服务深度集成到系统服务管理中的环境。我的选择与建议对于家庭服务器或NAS无脑选Docker。对于Windows桌面用户如果你只是想尝鲜可以用二进制但如果打算长期使用并挂载为本地磁盘Docker Desktop方案在配置和后期管理上会更省心。本教程将重点详解Docker方案并附带二进制方案的关键步骤。3. Linux系统下的AList部署与配置实战我们将以最常见的Ubuntu 22.04 LTS为例演示通过Docker Compose部署AList。这种方式比单纯的docker run命令更规范利于后期维护。3.1 环境准备与Docker安装首先确保你的系统已安装Docker引擎和Docker Compose插件。如果你已经安装可以跳过此步。# 1. 更新软件包索引 sudo apt update # 2. 安装必要的依赖包允许apt通过HTTPS使用仓库 sudo apt install -y ca-certificates curl gnupg lsb-release # 3. 添加Docker官方GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 4. 设置Docker稳定版仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 5. 更新apt源并安装Docker引擎、CLI、Containerd.io及Compose插件 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 6. 验证安装运行hello-world镜像 sudo docker run hello-world如果看到欢迎信息说明Docker安装成功。为了避免每次使用docker命令都要加sudo可以将当前用户加入docker组操作后需退出终端重新登录生效sudo usermod -aG docker $USER3.2 使用Docker Compose部署AList我们创建一个专属目录来管理AList的配置这样所有相关文件都井井有条。# 创建项目目录并进入 mkdir -p ~/docker/alist cd ~/docker/alist接下来创建docker-compose.yml文件。这里有一个关键点AList的配置和数据默认存储在容器内的/opt/alist/data目录。为了持久化这些数据防止容器删除后配置丢失我们需要将其映射到宿主机的某个目录。同时我们直接使用最新的alist:latest镜像。# 创建并编辑docker-compose.yml文件 nano docker-compose.yml将以下内容粘贴进去。这里我设置了端口映射为5244:5244并将宿主机当前目录下的data文件夹映射到容器内。version: 3.8 services: alist: image: xhofe/alist:latest container_name: alist restart: unless-stopped ports: - 5244:5244 volumes: - ./data:/opt/alist/data environment: - PUID1000 # 你的用户ID可通过 id -u 命令查看 - PGID1000 # 你的用户组ID可通过 id -g 命令查看 # 如果需要自定义其他环境变量如TZ时区可在此添加 # environment: # - TZAsia/Shanghai保存并退出编辑器在nano中按CtrlX然后按Y再按Enter。现在启动AList服务# 在后台启动服务 docker compose up -d使用以下命令查看容器日志确认服务已正常启动docker compose logs -f当你看到类似server running on 0.0.0.0:5244的日志时说明AList已经成功运行。3.3 初始登录与密码获取首次启动后你需要获取初始的随机管理员密码。# 进入alist容器查看密码 docker exec -it alist ./alist admin命令执行后会输出类似password: xxxxxxxx的信息这个就是你的管理员密码。请务必记下。现在打开你的浏览器访问http://你的服务器IP地址:5244。你会看到AList的登录界面用户名输入admin密码输入刚才获取的随机密码即可登录管理后台。登录后第一件事强烈建议立即在管理后台底部左侧齿轮图标 - 个人资料修改你的管理员密码3.4 核心操作挂载你的第一个网盘以阿里云盘为例AList支持数十种存储策略挂载逻辑大同小异。这里以目前流行的阿里云盘为例演示如何挂载。获取阿里云盘Refresh Token这是挂载的关键凭证。登录阿里云盘网页版。按下键盘F12打开开发者工具切换到Application应用或存储标签页。在左侧Local Storage中找到https://www.aliyundrive.com/点击后在右侧找到token项。在token的value中找到refresh_token字段其对应的一长串字符串就是所需的令牌。复制它。在AList中添加存储在AList管理后台点击左侧存储。点击页面右上角添加按钮。在驱动列表中选择阿里云盘Open。填写配置信息挂载路径这是你访问这个网盘的路径例如/阿里云盘。排序数字越小在列表显示越靠前。刷新令牌粘贴刚才复制的refresh_token。根文件夹ID默认为root表示挂载整个网盘。如果你想只挂载某个特定文件夹可以在阿里云盘网页版进入该文件夹地址栏URL中的folder/后面那一串就是其ID。其他选项如“Web代理”、“缓存过期时间”等可以保持默认。点击添加。稍等片刻AList会开始索引该网盘的文件。回到首页你应该就能看到新挂载的“阿里云盘”目录了。点击即可浏览、预览视频、图片、文档、下载文件。实操心得关于“刷新令牌”的安全性与更新refresh_token是长期有效的但并非永久。如果长时间未使用或阿里云盘安全策略更新它可能会失效。失效后在AList管理后台的“存储”列表里该存储的状态会显示错误。此时你需要重新按上述步骤获取新的refresh_token并更新到AList配置中。切勿将你的refresh_token分享给他人它拥有对应账号的完整读取权限。4. 将AList挂载为Linux本地磁盘WebDAV让AList在网页上可用只是第一步将其挂载为本地磁盘才能实现像操作本地文件夹一样的无缝体验。这需要通过WebDAV协议来实现。4.1 在AList中启用WebDAVAList默认启用了WebDAV服务。你可以在管理后台设置-全局设置中确认WebDAV 服务是否开启并记住WebDAV的访问地址通常是http://你的服务器IP:5244/dav。4.2 使用davfs2在Linux下挂载WebDAVdavfs2是一个让系统能够将WebDAV共享挂载为本地文件系统的工具。# 1. 安装davfs2 sudo apt update sudo apt install -y davfs2 # 2. 将普通用户加入davfs2用户组以便有权限挂载可选但推荐 sudo usermod -aG davfs2 $USER # 执行后需要注销并重新登录或使用 newgrp davfs2 命令使组生效 # 3. 创建本地挂载点目录 mkdir -p ~/CloudDrives/AList # 4. 执行挂载命令 sudo mount -t davfs http://你的服务器IP:5244/dav ~/CloudDrives/AList执行挂载命令时系统会提示你输入用户名和密码。这里输入你的AList管理员账号和密码即可。如果希望开机自动挂载可以编辑/etc/fstab文件但需要将密码明文写入安全性不高。更推荐的做法是使用凭证文件# 创建凭证文件并设置严格的权限 echo http://你的服务器IP:5244/dav admin 你的密码 | sudo tee /etc/davfs2/secrets sudo chmod 600 /etc/davfs2/secrets然后在/etc/fstab中添加一行http://你的服务器IP:5244/dav /home/你的用户名/CloudDrives/AList davfs _netdev,noauto,user 0 0其中noauto表示开机不自动挂载需要时用mount ~/CloudDrives/AList手动挂载user允许普通用户挂载。注意事项davfs2的缓存与文件操作davfs2默认会使用缓存来提升性能但这可能导致文件操作尤其是删除、移动不是实时同步到服务器。对于需要强一致性的场景可以在挂载时添加-o no_cache选项禁用缓存但这可能会降低性能。根据你的使用习惯进行权衡。5. Windows系统下的AList部署与挂载指南对于Windows用户目标同样是在本地运行AList服务并将其挂载为一个网络驱动器。5.1 方案选择Docker Desktop vs 原生二进制Docker Desktop方案推荐给有一定技术基础、或者希望环境隔离的用户。你需要先安装Docker Desktop for Windows。安装时务必确保在设置中启用了“WSL 2”或“Hyper-V”后端取决于你的Windows版本。安装成功后其操作逻辑与Linux下的Docker几乎完全相同。你可以创建一个docker-compose.yml文件在PowerShell或WSL终端中运行docker compose up -d来启动AList。服务管理更优雅。原生二进制方案最简单直接。从AList的GitHub Releases页面下载适用于Windows的alist-windows-amd64.zip压缩包解压到一个目录例如D:\Tools\AList。在此目录打开PowerShell运行.\alist.exe server即可启动。你可以编写一个简单的批处理脚本或将其注册为Windows服务来实现开机启动。考虑到易用性和一致性下面以Docker Desktop方案进行详细说明。5.2 使用Docker Desktop部署AList安装Docker Desktop从官网下载安装包安装过程基本一路“Next”。安装完成后启动Docker Desktop等待右下角鲸鱼图标稳定不再有动画。常见问题Virtualization is not enabled如果启动失败提示虚拟化支持未开启你需要进入电脑BIOS/UEFI设置开机时按F2、Del等键找到Intel Virtualization Technology或AMD SVM选项将其设置为Enabled。对于某些Windows版本还需在“启用或关闭Windows功能”中勾选“Hyper-V”和“Windows虚拟机监控程序平台”。准备部署目录在某个位置如D:\Docker\AList创建文件夹并在其中创建docker-compose.yml文件内容与Linux版完全一致。启动服务在此文件夹中右键选择“在终端中打开”如果是Windows 11或按住Shift右键选择“在此处打开PowerShell窗口”。运行命令docker compose up -d获取密码与登录同样使用命令获取密码docker exec alist ./alist admin随后在浏览器访问http://localhost:5244即可登录管理。后续的网盘挂载配置步骤与Linux部分完全相同。5.3 将AList挂载为Windows网络驱动器这是让Windows用户体验提升的关键一步。确保AList WebDAV服务运行在AList管理后台确认WebDAV已开启。打开“此电脑”在顶部菜单栏点击“计算机” - “映射网络驱动器”。选择驱动器号例如Z:。在文件夹栏输入WebDAV地址http://localhost:5244/dav如果AList运行在本机。注意这里必须使用http://开头而不是https://且Windows原生支持需要是http而非https。勾选“使用其他凭据连接”。点击“完成”。在弹出的登录窗口中用户名输入admin密码输入你的AList管理员密码。如果一切顺利“此电脑”中就会出现一个新的网络驱动器Z:里面就是你通过AList聚合的所有网盘内容。踩坑实录Windows WebDAV客户端的“龟速”与替代方案许多用户反馈使用Windows自带的“映射网络驱动器”功能挂载WebDAV后文件复制速度极慢甚至经常卡死。这是因为微软自带的WebDAV客户端性能存在瓶颈且对某些HTTP操作的支持不佳。解决方案使用第三方WebDAV客户端软件如RaiDrive免费版功能足够或NetDrive。这些软件作为文件系统驱动运行性能远超Windows原生稳定性也更好。在RaiDrive中你选择WebDAV协议地址填http://localhost:5244/dav输入账号密码即可将其映射为一个看起来和本地硬盘无异的驱动器传输速度会有质的飞跃。6. 高级配置与优化技巧基础功能搭建完成后这些进阶设置能让你的AList更好用、更安全。6.1 使用反向代理与HTTPS强烈推荐直接通过IP和端口访问既不安全也不方便。我们可以使用Nginx或Caddy等反向代理工具为AList绑定一个域名并启用HTTPS加密。以Nginx为例假设你有一个域名alist.yourdomain.com并且已经解析到服务器IP。# 在Nginx的配置文件中如 /etc/nginx/conf.d/alist.conf添加如下server块 server { listen 80; server_name alist.yourdomain.com; # 将HTTP请求重定向到HTTPS return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name alist.yourdomain.com; # SSL证书路径可以使用Let‘s Encrypt免费证书 ssl_certificate /path/to/your/fullchain.pem; ssl_certificate_key /path/to/your/privkey.pem; # 其他SSL优化配置... ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:...; ssl_prefer_server_ciphers off; 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_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; # 设置较长的超时时间适用于大文件上传/下载 proxy_read_timeout 300s; proxy_send_timeout 300s; } }配置完成后运行sudo nginx -t测试配置无误后sudo systemctl reload nginx重载。现在你就可以通过https://alist.yourdomain.com安全地访问AList了。记得在AList管理后台的“站点URL”设置中也更新为你的HTTPS域名以确保生成的分享链接等正确。6.2 权限管理与访客账户不要一直使用admin账户进行日常浏览和挂载。你可以在AList管理后台创建多个“用户”并为他们分配不同的角色和权限。创建新用户在“用户”页面点击“添加”填写用户名、密码选择“普通用户”角色。分配存储权限在“存储”页面点击某个已挂载存储的“编辑”按钮在“权限”选项卡中可以精细地控制哪个用户或用户组角色可以访问、写入或管理该存储。访客访问你甚至可以开启“访客”账户允许他人无需登录即可浏览你指定的公开存储内容非常适合用于分享资源。6.3 性能优化与缓存设置元信息缓存对于文件数量巨大的网盘如存了几十万张照片的相册AList索引元信息文件名、大小等可能会比较慢。你可以在存储的“编辑”页面适当增加“缓存过期时间”例如设置为3600秒让AList缓存元信息减少对网盘API的频繁请求。WebDAV性能如前所述在Windows下使用RaiDrive等第三方客户端能极大提升体验。在Linux下可以尝试rclone挂载WebDAV其缓存和重试机制更强大。容器资源限制在Docker Compose文件中可以为AList容器设置CPU和内存限制防止其占用过多资源影响宿主机其他服务。services: alist: # ... 其他配置 ... deploy: resources: limits: cpus: 1.0 memory: 512M7. 常见问题排查与解决实录即使按照教程操作也难免会遇到问题。这里记录了几个我亲自遇到过的高频问题及其解决方法。问题1AList容器启动失败日志显示“permission denied”或“read-only file system”。原因最常见的是SELinux在CentOS/RHEL等系统上或AppArmor在Ubuntu等系统上的安全策略阻止了容器写入挂载的卷。解决临时方案在运行docker compose up时为容器添加--privileged标志不推荐安全性降低。推荐方案检查宿主机上映射的./data目录的权限确保Docker进程或所属用户有读写权限。对于SELinux可以尝试在宿主机执行chcon -Rt svirt_sandbox_file_t /path/to/your/data。更简单的做法是在Docker Compose中为卷挂载添加:z或:Z后缀如./data:/opt/alist/data:z让Docker自动设置SELinux标签。问题2挂载网盘后文件列表为空或一直显示“Loading”。原因令牌失效网盘的Refresh Token已过期。去AList管理后台“存储”列表检查该存储状态如果报错需要重新获取Token并更新。API限制某些网盘服务商如百度网盘对第三方应用调用API有频率限制。AList在索引大量文件时可能触发限流。网络问题服务器无法访问该网盘的API服务器。解决重新获取并更新Refresh Token。对于API限制可以在该存储的编辑页面调大“索引间隔”和“缓存过期时间”减少请求频率。检查服务器网络尝试curl一下网盘的API地址看是否通。问题3通过WebDAV挂载后无法写入、删除或重命名文件。原因WebDAV协议本身或AList的WebDAV实现对某些写操作的支持可能不完整或者挂载客户端如davfs2的配置问题。解决首先在AList的Web界面确认你使用的账户对该存储有“写入”权限。尝试使用不同的WebDAV客户端如Windows用RaiDriveLinux用rclone mount。对于davfs2检查挂载选项尝试添加-o ro只读测试是否正常如果只读正常但写入不行可能是客户端兼容性问题。问题4视频在线播放卡顿或无法加载。原因AList的视频播放依赖于浏览器的直接播放能力或转码。如果视频文件编码特殊如HEVC或网速慢可能卡顿。解决尝试在AList文件列表页面点击视频文件右侧的“...”菜单选择“复制直链”然后将链接粘贴到VLC、PotPlayer等专业播放器中播放通常更流畅。确保服务器带宽和客户端网络良好。对于家庭媒体中心更佳方案是将AList的WebDAV挂载到Jellyfin/Plex的媒体库目录让专业的媒体服务器来处理转码和串流。部署和玩转AList的过程就是一个不断连接“信息孤岛”的过程。从最初的手忙脚乱到后来的驾轻就熟我最深的体会是标准化和文档化至关重要。无论是Docker Compose文件、获取Token的步骤还是遇到错误时的排查日志都值得你花时间记录下来。这样下次迁移服务器或帮助朋友部署时你会感谢当初那个细致的自己。这个工具真正强大的地方在于它用一种相对优雅的方式把你散落在各处的数字资产重新整合在了一起找文件从此不再是体力活。如果你在配置过程中遇到了上面没提到的问题不妨去AList的GitHub Issues或相关社区看看绝大多数坑都已经有人踩过并填平了。