为什么自建 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 盘

  1. 下载 fnOS 镜像:fnos.cn
  2. 用 Rufus 或 balenaEtcher 写入 U 盘
  3. 插入 NAS 主机,BIOS 设置 U 盘启动

2. 初始化系统

  1. 开机后在局域网其他电脑浏览器访问提示的 IP 地址
  2. 选择硬盘、创建存储池
  3. 设置管理员账号
  4. 进入桌面(类似群晖的 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)是最大优势。


原文出处