为什么自建 NAS?
2026 年云存储越来越贵(iCloud 2TB ¥68/月,百度网盘超级会员 ¥263/年),而且数据不完全在你手里。NAS 一次性投入,长期来看更划算:
| 对比项 | 云存储(2TB) | NAS 自建(2×4TB) |
|---|---|---|
| 3 年费用 | ¥2,448(iCloud) | ¥2,000-3,000(硬件)+ ¥0 月费 |
| 数据主权 | 在苹果/百度服务器 | 完全在你手里 |
| 速度 | 受限于上行带宽 | 局域网千兆/2.5G 满速 |
| 隐私 | 服务商可查看 | 端到端加密 |
| 扩展性 | 加钱 | 加硬盘 |
| 可玩性 | 低 | 极高(Docker 随便折腾) |
NAS 不只是「存文件」——它是你的私有云中心:文件同步、照片备份、媒体服务器、密码管理、Git 托管、下载机……全在一台机器上。
硬件选择
方案一:成品 NAS(推荐新手)
| 品牌 | 推荐型号 | 盘位 | 参考价 | 适合谁 |
|---|---|---|---|---|
| 群晖 | DS224+ | 2 盘位 | ¥2,200 | 最稳生态,套件丰富 |
| 群晖 | DS423+ | 4 盘位 | ¥3,800 | 需要更多空间 |
| 威联通 | TS-264 | 2 盘位 | ¥1,800 | 性价比高,硬件强 |
| 飞牛 | fnOS 自组 | N 盘位 | 自定 | 极客玩家 |
方案二:自组 NAS(推荐极客)
| 配件 | 推荐 | 参考价 |
|---|---|---|
| 主板+CPU | 畅网 N100 板载(4核4线程,6W TDP) | ¥600 |
| 内存 | 16GB DDR4 | ¥150 |
| 机箱 | 乔思伯 N1/N2 或 拓普龙 4 盘位 | ¥300-500 |
| 电源 | 益衡 7025B 250W 1U | ¥200 |
| 系统盘 | 256GB NVMe | ¥100 |
| 数据盘 | 希捷酷鹰 4TB × 2 | ¥1,200 |
| 合计 | ¥2,550-2,750 |
💡 硬盘选择:NAS 专用盘(希捷酷鹰/西数红盘)比桌面盘更适合 7×24 运行。不要买 SMR(叠瓦)盘,选 CMR(垂直)盘。
方案三:旧电脑改造
家里有闲置的旧台式机/迷你主机?装个系统就能当 NAS 用。功耗高一点,但零成本入门。
系统选择
| 系统 | 费用 | 特点 | 适合谁 |
|---|---|---|---|
| 群晖 DSM | 免费(含在硬件中) | 生态最好,套件丰富,上手简单 | 新手首选 |
| 飞牛 fnOS | 免费 | 国产新秀,Docker 友好,中文体验好 | 国内用户 |
| TrueNAS Scale | 免费开源 | ZFS 文件系统,企业级稳定性 | 极客/数据安全优先 |
| Unraid | $59 起 | 硬盘可混搭,Docker + VM 支持好 | 媒体玩家 |
| OpenMediaVault | 免费开源 | 轻量,Debian 基础,老电脑友好 | 低配硬件 |
本文以飞牛 fnOS + Docker 为例(国产系统,对国内用户最友好),其他系统的 Docker 部署方式完全相同。
飞牛 fnOS 安装
1. 制作启动 U 盘
- 下载 fnOS 镜像:fnos.cn
- 用 Rufus 或 balenaEtcher 写入 U 盘
- 插入 NAS 主机,BIOS 设置 U 盘启动
2. 初始化系统
- 开机后在局域网其他电脑浏览器访问提示的 IP 地址
- 选择硬盘、创建存储池
- 设置管理员账号
- 进入桌面(类似群晖的 Web 管理界面)
3. 安装 Docker
fnOS 应用中心 → 搜索「Docker」→ 安装。
或者 SSH 进入系统:
# fnOS 基于 Debian,Docker 安装
curl -fsSL https://get.docker.com | bash
sudo usermod -aG docker $USER
核心服务部署
文件同步 — Syncthing
替代百度网盘同步,P2P 直连,不限速。
version: '3.8'
services:
syncthing:
image: syncthing/syncthing:latest
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
ports:
- "8384:8384" # Web UI
- "22000:22000" # 同步协议
volumes:
- ./syncthing/config:/var/syncthing/config
- /volume1/data:/data # 挂载你的数据目录
照片管理 — Immich
Google Photos 的开源替代品,AI 人脸识别、自动备份、时间线浏览。
version: '3.8'
services:
immich:
image: ghcr.io/immich-app/immich-server:release
restart: unless-stopped
ports:
- "2283:2283"
environment:
- DB_HOSTNAME=immich-db
- DB_USERNAME=postgres
- DB_PASSWORD=immich_pass
- DB_DATABASE_NAME=immich
- REDIS_HOSTNAME=immich-redis
volumes:
- ./immich/upload:/usr/src/app/upload
depends_on:
- immich-db
- immich-redis
immich-db:
image: tensorchord/pgvecto-rs:pg16-v0.3
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=immich_pass
- POSTGRES_USER=postgres
- POSTGRES_DB=immich
volumes:
- ./immich/db:/var/lib/postgresql/data
immich-redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- ./immich/redis:/data
手机安装 Immich App → 指向 NAS IP:2283 → 自动备份照片。
媒体服务器 — Jellyfin
替代 Plex/Emby,完全免费开源,无付费墙。
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:latest
restart: unless-stopped
ports:
- "8096:8096"
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- /volume1/media:/media:ro # 你的电影/音乐目录
environment:
- JELLYFIN_PublishedServerUrl=http://你的NAS-IP:8096
下载机 — qBittorrent
version: '3.8'
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- WEBUI_PORT=8080
ports:
- "8080:8080"
- "6881:6881"
- "6881:6881/udp"
volumes:
- ./qbittorrent/config:/config
- /volume1/downloads:/downloads
密码管理 — Vaultwarden
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
environment:
- DOMAIN=http://你的NAS-IP:8088
- SIGNUPS_ALLOWED=false
ports:
- "8088:80"
volumes:
- ./vaultwarden/data:/data
书签管理 — Linkwarden
version: '3.8'
services:
linkwarden:
image: ghcr.io/linkwarden/linkwarden:latest
restart: unless-stopped
environment:
- DATABASE_URL=postgresql://postgres:linkwarden@linkwarden-db:5432/linkwarden
- NEXTAUTH_SECRET=your-secret-key
- NEXTAUTH_URL=http://你的NAS-IP:3000
ports:
- "3000:3000"
volumes:
- ./linkwarden/data:/data/data
depends_on:
- linkwarden-db
linkwarden-db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_DB=linkwarden
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=linkwarden
volumes:
- ./linkwarden/db:/var/lib/postgresql/data
远程访问方案
NAS 在局域网内使用很方便,但出门时怎么访问?
方案一:Tailscale(推荐)
零配置内网穿透,P2P 直连,速度取决于两端网络。
# NAS 上安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
手机/笔记本也装 Tailscale,登录同一账号,就能通过 Tailscale IP 访问 NAS 的所有服务。
方案二:Cloudflare Tunnel
免费,通过 Cloudflare 中转,不需要公网 IP。
# Docker 部署 cloudflared
docker run -d --restart=unless-stopped \
--name cloudflared \
cloudflare/cloudflared:latest \
tunnel --no-autoupdate run \
--token YOUR_TUNNEL_TOKEN
方案三:FRP 内网穿透
需要一台有公网 IP 的服务器做中转。
# frpc.ini(NAS 端)
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000
数据备份策略
NAS 不是备份——NAS 是你的主存储。数据还需要额外备份。
3-2-1 备份原则:
- 3 份数据副本
- 2 种不同介质
- 1 份异地备份
NAS(主存储)
├── RAID 1 镜像(硬盘级保护)
├── 外接 USB 硬盘(每周 rsync 增量备份)
└── 云端异地备份(关键数据加密上传)
# rsync 备份到外接硬盘
rsync -av --delete /volume1/data/ /mnt/usb-backup/data/
# 关键数据加密上传到 Backblaze B2($6/TB/月)
# 使用 restic 或 rclone
rclone sync /volume1/important remote:backup --crypt
功耗与噪音优化
| 优化项 | 操作 | 效果 |
|---|---|---|
| 硬盘休眠 | 设置 30 分钟无访问自动休眠 | 功耗降 50% |
| CPU 调频 | echo powersave > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor |
功耗降 20% |
| LED 关闭 | 系统设置关闭指示灯 | 夜间不扰人 |
| 定时开关机 | 设置工作时间开机 | 非工作时间零功耗 |
N100 平台待机功耗约 10-15W,一年电费约 ¥50-80。
常见问题
Q:没有公网 IP 怎么办? Tailscale 或 Cloudflare Tunnel 都不需要公网 IP。国内推荐 Tailscale(Derp 中继在国内有节点)。
Q:硬盘坏了数据会丢吗? 单盘会。建议至少 RAID 1(两块盘镜像),坏一块不丢数据。重要数据额外做异地备份。
Q:NAS 需要一直开机吗? 如果只用文件同步和下载机,可以定时开关机。如果有远程访问需求(Immich 照片备份、Jellyfin 媒体),建议 24 小时开机。
Q:群晖和自组选哪个? 预算充足 + 不想折腾 → 群晖。喜欢折腾 + 追求性价比 → 自组。群晖的软件生态(DSM)是最大优势。
原文出处