1. 为什么选择Ubuntu+CasaOS搭建个人云存储?
最近几年个人数据量爆炸式增长,手机照片、工作文档、影视资源占用的空间越来越大。我试过各种网盘,不是限速就是担心隐私问题。后来发现用旧电脑装Ubuntu系统,再配上CasaOS这套轻量级NAS解决方案,简直是个人数据管理的完美组合。
Ubuntu作为最流行的Linux发行版之一,对硬件要求极低。我实测下来,十年前的旧笔记本(4GB内存+机械硬盘)都能流畅运行。而CasaOS这个国产开源项目,把复杂的Docker容器管理变成了可视化操作,像用手机APP一样简单。两者结合,既保留了Linux系统的稳定性,又降低了使用门槛。
相比群晖等商业NAS系统,这个方案有三大优势:
- 零成本:完全开源免费,旧电脑秒变专业存储设备
- 易扩展:通过Docker可以安装Nextcloud、Jellyfin等上百种应用
- 隐私安全:数据完全掌握在自己手中,不用担心第三方泄露
2. 准备工作:系统环境配置
2.1 选择合适的Ubuntu版本
推荐使用Ubuntu Server LTS版本(当前最新是22.04),LTS代表长期支持,能获得5年的安全更新。桌面版也可以,但会占用更多系统资源。我用的是一台淘汰的联想ThinkCentre小主机,安装过程非常顺利。
安装时注意几个关键点:
- 分区建议:至少给系统分配20GB空间,剩余全部挂载到/home目录
- 必选组件:勾选OpenSSH server方便远程管理
- 用户设置:记住设置的sudo密码,后续操作都需要
2.2 系统基础优化
安装完成后第一件事是更新软件源。国内用户建议换成阿里云或清华的镜像源,速度会快很多:
sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list sudo sed -i 's|http://.*security.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list然后执行系统更新:
sudo apt update && sudo apt upgrade -y遇到依赖问题时可以尝试:
sudo apt --fix-broken install3. CasaOS安装与初始化
3.1 一键安装脚本解析
官方提供的安装命令看似简单,其实背后做了很多工作:
curl -fsSL https://get.casaos.io | sudo bash这个脚本会自动完成:
- 检测系统架构(x86/ARM)
- 安装Docker引擎(如果尚未安装)
- 下载最新版CasaOS镜像
- 配置自动启动服务
我建议首次安装时加上-v参数查看详细日志:
curl -fsSL https://get.casaos.io | sudo bash -v3.2 常见安装问题排查
如果安装卡在Docker下载环节,可能是网络问题。可以尝试先手动安装Docker:
# 卸载旧版本 sudo apt remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 设置稳定版仓库 echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker引擎 sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io安装完成后访问http://服务器IP:80就能看到CasaOS的初始化界面。首次登录需要设置管理员账号和存储路径。
4. 网络优化与存储配置
4.1 国内环境加速方案
由于CasaOS的应用商店需要从GitHub拉取镜像,国内用户可能会遇到下载超时。推荐三种解决方案:
- 使用镜像加速:修改Docker配置
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } EOF sudo systemctl restart docker- Hosts文件优化:添加GitHub域名解析
echo "140.82.113.4 github.com" | sudo tee -a /etc/hosts- 定时任务自动更新:防止IP变化导致失效
(crontab -l 2>/dev/null; echo "0 3 * * * curl -sSL https://git.io/Jv9X7 | sh") | crontab -4.2 存储池管理技巧
CasaOS默认使用/DATA目录作为存储根路径。如果需要挂载其他硬盘:
# 查看磁盘信息 lsblk -f # 格式化新硬盘(假设是/dev/sdb) sudo mkfs.ext4 /dev/sdb # 创建挂载点 sudo mkdir /mnt/storage # 获取磁盘UUID sudo blkid /dev/sdb # 修改fstab实现自动挂载 echo "UUID=你的磁盘UUID /mnt/storage ext4 defaults 0 2" | sudo tee -a /etc/fstab # 测试挂载 sudo mount -a然后在CasaOS控制台的「存储」页面,添加新的存储位置即可。
5. 必备应用安装指南
5.1 媒体中心全家桶
通过CasaOS应用商店可以一键安装这些神器:
- Jellyfin:开源影音服务器,支持硬件转码
- qBittorrent:BT下载工具,配合VPN使用更佳
- FileBrowser:轻量级文件管理器
- PhotoPrism:AI相册管理系统
安装Jellyfin时建议选择这个配置:
version: "3.8" services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin environment: - TZ=Asia/Shanghai volumes: - /DATA/AppData/jellyfin/config:/config - /mnt/storage/Movies:/media/movies - /mnt/storage/TV:/media/tvshows ports: - 8096:8096 - 8920:8920 devices: - /dev/dri:/dev/dri restart: unless-stopped5.2 生产力工具推荐
- Nextcloud:自建私有云盘
- OnlyOffice:在线文档协作
- Bitwarden:密码管理器
- HomeAssistant:智能家居中枢
特别提醒:Nextcloud首次安装后,需要在终端执行以下命令优化性能:
sudo apt install php-imagick php-redis sudo -u www-data php /DATA/AppData/nextcloud/occ config:system:set redis host --value=localhost sudo -u www-data php /DATA/AppData/nextcloud/occ config:system:set redis port --value=63796. 安全防护与日常维护
6.1 基础安全设置
- 修改SSH默认端口:
sudo sed -i 's/#Port 22/Port 你的端口号/g' /etc/ssh/sshd_config sudo systemctl restart sshd- 启用UFW防火墙:
sudo apt install ufw sudo ufw allow 你的SSH端口/tcp sudo ufw allow 80,443/tcp sudo ufw enable- 定期自动更新:
(crontab -l 2>/dev/null; echo "0 3 * * * sudo apt update && sudo apt upgrade -y") | crontab -6.2 数据备份方案
推荐使用BorgBackup进行增量备份,这是我用的备份脚本:
#!/bin/bash # 初始化备份仓库(首次运行) borg init --encryption=repokey /mnt/backup # 每日备份命令 export BORG_PASSPHRASE='你的加密密码' borg create --stats --progress \ /mnt/backup::'{hostname}-{now:%Y-%m-%d}' \ /DATA \ --exclude '/DATA/AppData/*/cache'设置每周日凌晨2点自动执行:
chmod +x /home/你的用户名/backup.sh (crontab -l 2>/dev/null; echo "0 2 * * 0 /home/你的用户名/backup.sh") | crontab -这套系统我已经稳定运行一年多,期间经历过三次硬盘故障都成功恢复了数据。最关键的是把Docker容器的配置目录(/DATA/AppData)和应用数据分开存储,这样重装系统时只需要恢复配置目录就能还原所有服务。