生产环境实战:旧电脑改造成家庭数据中心,比NAS更强大
背景需求
去年双11差点花2000块买台群晖NAS,后来突然想起家里有台吃灰的旧电脑(i5-4代,8GB内存)。
为什么不买NAS?
- 群晖DS220+:1800元 + 硬盘600元 = 2400元
- 旧电脑改造:0元(已有)+ 硬盘600元 = 600元
省了1800块,功能还更强大!
硬件准备
我的配置(成本估算)
| 硬件 | 型号 | 成本 | 来源 |
|---|---|---|---|
| 主机 | i5-4590, 8GB内存 | 0元 | 旧电脑 |
| 硬盘1 | 4TB 西数红盘 | 600元 | 京东 |
| 硬盘2 | 256GB SSD | 150元 | 闲鱼二手 |
| 网卡 | 千兆有线网卡 | 0元 | 主板自带 |
| 电源 | 额定300W | 0元 | 原装 |
| 合计 | - | 750元 | - |
如果你完全从零开始:
- N100迷你主机:500元(全新,功耗10W)
- 4TB硬盘:600元
- 合计:1100元(仍比NAS便宜800元)
系统选型
方案对比
| 系统 | 难度 | 功能 | 推荐度 |
|---|---|---|---|
| 群晖DSM黑群晖 | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| TrueNAS | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| OpenMediaVault | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| CasaOS | ⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| Proxmox VE | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
我的选择:Proxmox VE(PVE)
为什么?
- ✅ 可以跑虚拟机 + 容器
- ✅ Web管理界面友好
- ✅ 社区活跃,中文教程多
- ✅ 可以装黑群晖虚拟机(两全其美)
安装Proxmox VE
第1步:制作启动U盘
bash
# 下载PVE镜像
wget https://www.proxmox.com/en/downloads/proxmox-virtual-environment/iso/proxmox-ve-8-1-iso-installer
# Windows下用Rufus烧录到U盘
# macOS/Linux用dd命令
sudo dd if=proxmox-ve_8.1.iso of=/dev/sdX bs=1M status=progress
第2步:安装系统
-
U盘启动,选择"Install Proxmox VE (Graphical)"
-
同意协议
-
选择SSD作为系统盘(256GB)
-
设置地区、时区(Asia/Shanghai)
-
设置root密码和邮箱
-
配置网络:
IP: 192.168.1.100/24 网关: 192.168.1.1 DNS: 223.5.5.5 -
安装完成,重启
第3步:访问Web管理界面
浏览器打开:https://192.168.1.100:8006
登录:
- 用户名:root
- 密码:刚才设置的密码
- Realm:Linux PAM
配置存储
创建ZFS存储池(推荐)
ZFS优势:
- 数据校验和(防静默数据损坏)
- 快照功能(秒级备份)
- 压缩(节省空间)
创建ZFS Pool:
bash
# SSH登录PVE
ssh root@192.168.1.100
# 查看硬盘
lsblk
# sda: 256GB SSD (系统盘)
# sdb: 4TB HDD (数据盘)
# 创建ZFS存储池
zpool create -o ashift=12 \
-O compression=lz4 \
-O atime=off \
-m /mnt/data \
data_pool /dev/sdb
# 查看状态
zpool status
# pool: data_pool
# state: ONLINE
# scan: none requested
# config:
# NAME STATE READ WRITE CKSUM
# data_pool ONLINE 0 0 0
# sdb ONLINE 0 0 0
在PVE Web界面添加存储:
- Datacenter → Storage → Add → ZFS
- ID: data_pool
- ZFS Pool: data_pool
- Content: Disk image, Container
部署服务
服务1:文件共享(Samba)
在PVE中创建LXC容器:
bash
# 下载Ubuntu模板
pveam update
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst
# 创建LXC容器
pct create 100 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
--hostname file-server \
--memory 1024 \
--cores 2 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.101/24,gw=192.168.1.1 \
--storage data_pool \
--rootfs data_pool:8
# 启动容器
pct start 100
# 进入容器
pct enter 100
安装Samba:
bash
# 更新系统
apt update && apt upgrade -y
# 安装Samba
apt install samba -y
# 创建共享文件夹
mkdir -p /mnt/shares/{public,media,backup}
# 配置Samba
cat >> /etc/samba/smb.conf <<EOF
[Public]
path = /mnt/shares/public
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
directory mask = 0777
[Media]
path = /mnt/shares/media
browseable = yes
writable = yes
valid users = @media
create mask = 0770
directory mask = 0770
[Backup]
path = /mnt/shares/backup
browseable = yes
writable = yes
valid users = admin
create mask = 0600
directory mask = 0700
EOF
# 创建Samba用户
smbpasswd -a root
# 重启Samba
systemctl restart smbd
Windows访问:
\\192.168.1.101\Public
服务2:Docker容器平台
在LXC容器中安装Docker:
bash
# 创建Docker专用容器
pct create 101 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
--hostname docker-host \
--memory 4096 \
--cores 4 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.102/24,gw=192.168.1.1 \
--storage data_pool \
--rootfs data_pool:20 \
--features nesting=1 # ← 重要:允许嵌套虚拟化
pct start 101
pct enter 101
# 安装Docker
curl -fsSL https://get.docker.com | bash
# 安装Docker Compose
apt install docker-compose -y
# 验证
docker --version
docker-compose --version
部署常用服务:
1. Portainer(Docker可视化管理):
bash
docker run -d \
--name portainer \
--restart always \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
# 访问:http://192.168.1.102:9000
2. Nextcloud(私有云盘):
yaml
# docker-compose.yml
version: '3'
services:
nextcloud:
image: nextcloud:latest
restart: always
ports:
- 8080:80
volumes:
- nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=password
db:
image: mariadb:10.6
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=password
volumes:
nextcloud_data:
db_data:
bash
docker-compose up -d
# 访问:http://192.168.1.102:8080
3. qBittorrent(下载工具):
bash
docker run -d \
--name qbittorrent \
--restart always \
-p 8081:8080 \
-v /mnt/shares/media:/downloads \
-e WEBUI_PORT=8080 \
linuxserver/qbittorrent
# 访问:http://192.168.1.102:8081
# 默认用户名:admin
# 默认密码:adminadmin
4. Jellyfin(家庭影音):
bash
docker run -d \
--name jellyfin \
--restart always \
-p 8096:8096 \
-v /mnt/shares/media:/media \
jellyfin/jellyfin
# 访问:http://192.168.1.102:8096
服务3:黑群晖虚拟机(可选)
为什么还要装黑群晖?
- 群晖的Photos人脸识别很好用
- Drive同步功能体验好
- 某些套件(如Video Station)找不到替代
安装步骤:
bash
# 下载群晖引导和系统
wget https://xxx/DSM_7.2_Boot.img
wget https://xxx/DSM_7.2.pat
# 在PVE中创建虚拟机
qm create 200 \
--name DSM \
--memory 2048 \
--cores 2 \
--net0 virtio,bridge=vmbr0 \
--scsihw virtio-scsi-pci
# 导入引导盘
qm importdisk 200 DSM_7.2_Boot.img data_pool
qm set 200 --scsi0 data_pool:vm-200-disk-0
# 添加数据盘
qm set 200 --scsi1 data_pool:32
# 设置启动顺序
qm set 200 --boot order=scsi0
# 启动虚拟机
qm start 200
在浏览器访问:http://find.synology.com,找到虚拟机IP,安装DSM系统。
远程访问配置(关键!)
NAS/服务器的核心功能是随时随地访问,但没公网IP怎么办?
方案对比
| 方案 | 速度 | 成本 | 难度 | 推荐度 |
|---|---|---|---|---|
| DDNS+端口转发 | 快 | 0元 | ⭐⭐⭐ | 需公网IP |
| frp内网穿透 | 慢 | 80元/月 | ⭐⭐⭐ | ⭐⭐ |
| Tailscale | 快 | 0元 | ⭐⭐ | ⭐⭐⭐⭐ |
| ZeroTier | 快 | 0元 | ⭐⭐ | ⭐⭐⭐ |
| 星空组网 | 快 | 0元 | ⭐ | ⭐⭐⭐⭐⭐ |
我的方案:在Docker中部署星空组网
部署:
bash
# 在Docker容器主机中
docker run -d \
--name xingkong \
--restart always \
--net host \
--cap-add NET_ADMIN \
--device /dev/net/tun \
bingbailove/xinkongunion
# 访问Web界面配置
http://192.168.1.102:7725
手机/笔记本也装客户端,登录同一账号。
效果:
bash
# 在外面用手机访问家里NAS
浏览器打开:http://192.168.188.100:9000 # Portainer
http://192.168.188.100:8080 # Nextcloud
http://192.168.188.100:8096 # Jellyfin
速度:30-50MB/s(5G网络环境下)✅
延迟:20-30ms ✅
功耗与成本
功耗测试
我的配置:
待机功耗:35W
满载功耗:80W
平均功耗:50W(日常使用)
每月电费:50W × 24h × 30天 × 0.6元/度 = 21.6元/月
年电费:260元
对比群晖DS220+:
待机功耗:15W
满载功耗:30W
平均功耗:20W
每月电费:20W × 24h × 30天 × 0.6元/度 = 8.6元/月
年电费:104元
电费差:156元/年
3年总成本对比:
旧电脑方案:
硬件:750元
电费:780元(3年)
合计:1530元
群晖DS220+:
硬件:2400元
电费:312元(3年)
合计:2712元
省了:1182元 ✅
实际应用场景
场景1:家庭影音中心
配置:
- qBittorrent下载电影 → 自动保存到
/mnt/shares/media - Jellyfin实时扫描新电影
- 手机、电视、iPad都能看
体验:
- 4K电影串流流畅(局域网千兆网)
- 外网访问走组网P2P,速度40MB/s
- 比爱奇艺会员爽太多
场景2:全家照片备份
方案:
- 家人手机都装Nextcloud客户端
- 自动上传照片到服务器
- 黑群晖Photos做人脸识别和分类
效果:
- 3个人,5年照片,总共800GB
- 全部自动备份,随时查看
- 省了iCloud 2TB年费680元
场景3:远程办公
需求: 在外面想访问家里的文件、运行的Docker服务
方案:
- 笔记本装组网客户端
- 直接通过虚拟IP访问
- 就像在家里一样
实测:
bash
# 在星巴克
$ ping 192.168.188.100 # 家里服务器
64 bytes from 192.168.188.100: icmp_seq=1 time=25ms ✅
# SSH连接
$ ssh root@192.168.188.100
# 成功!可以管理Docker容器
# 下载文件
$ scp root@192.168.188.100:/mnt/shares/backup/project.zip ./
# 速度:35MB/s(手机热点5G)✅
监控与维护
系统监控
安装Grafana + Prometheus:
yaml
# docker-compose.yml
version: '3'
services:
prometheus:
image: prom/prometheus
restart: always
ports:
- 9090:9090
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
grafana:
image: grafana/grafana
restart: always
ports:
- 3000:3000
volumes:
- grafana_data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
prometheus_data:
grafana_data:
Grafana Dashboard:
- 访问:http://192.168.1.102:3000
- 导入Dashboard模板:12460(Docker监控)
- 实时查看CPU、内存、网络、磁盘
自动备份
配置ZFS自动快照:
bash
# 安装zfs-auto-snapshot
apt install zfs-auto-snapshot
# 配置自动快照
zfs set com.sun:auto-snapshot=true data_pool
zfs set com.sun:auto-snapshot:hourly=true data_pool
zfs set com.sun:auto-snapshot:daily=true data_pool
zfs set com.sun:auto-snapshot:weekly=true data_pool
zfs set com.sun:auto-snapshot:monthly=true data_pool
# 查看快照
zfs list -t snapshot
异地备份(可选):
bash
# 每周自动备份到云存储(阿里云OSS)
0 2 * * 0 rclone sync /mnt/shares/backup alioss:my-backup/
常见问题
Q1:性能够用吗?
A:完全够用!
我的i5-4代 + 8GB内存,同时跑:
- 5个Docker容器(Nextcloud、Jellyfin、qBittorrent...)
- 1个黑群晖虚拟机
- 1个文件服务器
CPU占用:15-30%
内存占用:5.5GB/8GB
播放4K电影、3人同时访问Nextcloud,丝毫不卡。
Q2:会不会很耗电?
A:比NAS高,但可接受
- 旧电脑:50W平均,年电费260元
- 群晖NAS:20W平均,年电费104元
- 差额:156元/年
但考虑到硬件省了1800元,3年后还是净省1000+
Q3:数据安全吗?
A:做好备份就安全
- ZFS文件系统 - 自动校验数据,防损坏
- ZFS快照 - 每小时/天/周自动快照,误删能恢复
- 异地备份 - 重要数据定期备份到云端
- RAID1 - 如果你有2块硬盘,可以做镜像
Q4:没有公网IP能用吗?
A:必须能!
用组网方案(Tailscale、ZeroTier、星空组网等)实现远程访问。
我的方案是星空组网Docker版,免费20设备,P2P直连速度快。
总结
旧电脑改造家庭服务器,性价比爆棚!
成本对比:
- 旧电脑方案:750元(3年总成本1530元)
- 群晖DS220+:2400元(3年总成本2712元)
- 净省:1182元
功能对比:
- 群晖能做的,旧电脑都能做
- 旧电脑还能跑虚拟机、更多Docker服务
- 扩展性更强(可以加硬盘、内存、网卡)
适合人群:
- ✅ 家里有闲置电脑的
- ✅ 想折腾、学技术的
- ✅ 预算有限但需求多的
不适合:
- ❌ 完全不想折腾的(直接买NAS)
- ❌ 追求低功耗的(旧电脑耗电确实高)
- ❌ 没有基础Linux知识的(有学习成本)
参考资料:
- Proxmox VE官方文档
- OpenZFS文档
- Docker官方文档
如果这篇文章对你有帮助,欢迎点赞、收藏、关注!有问题欢迎评论区讨论。