本文分享如何将淘汰的旧电脑改造成实用的家庭服务器,发挥余热,省钱又好玩。
前言
家里有台旧电脑,卖二手不值钱,扔了又可惜。
其实它完全可以改造成家庭服务器:
- 文件存储/NAS
- 下载机
- 影音服务器
- 软路由
- 开发测试环境
- 智能家居中枢
今天来聊聊如何让旧电脑焕发第二春。
一、硬件评估
1.1 最低配置要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 双核 | 四核(i3/i5级别) |
| 内存 | 4GB | 8GB+ |
| 硬盘 | 120GB SSD | SSD系统盘 + 机械存储盘 |
| 网卡 | 千兆网卡 | 千兆(必须) |
1.2 哪些旧电脑适合
✅ 适合改造:
- 5-10年前的台式机(i3/i5/i7)
- 企业淘汰的办公电脑
- 旧笔记本(散热是问题)
- 小主机(NUC、迷你PC)
⚠️ 需要考虑:
- 功耗(老U功耗高)
- 散热(7x24运行)
- 噪音(放客厅的话)
❌ 不太适合:
- 太老的CPU(酷睿2以前)
- 内存小于4GB且无法扩展
- 只有百兆网卡
1.3 建议升级
优先级排序:
- 加SSD(提升最明显)
- 扩内存(跑Docker必备)
- 换千兆网卡(如果是百兆)
- 加硬盘(扩展存储)
花费估算:
- 120GB SSD: 80元
- 8GB DDR3内存: 50元
- 千兆网卡: 30元
总计: 160元左右
二、系统选择
2.1 系统对比
| 系统 | 特点 | 适合人群 |
|---|---|---|
| Ubuntu Server | 通用,资料多 | Linux新手 |
| Debian | 稳定,资源占用少 | 追求稳定 |
| Proxmox VE | 虚拟化平台 | 想玩虚拟机 |
| TrueNAS | 专业NAS系统 | 重度存储需求 |
| OpenWrt | 软路由 | 网络折腾党 |
| CasaOS | 简单易用 | 小白用户 |
2.2 推荐:Ubuntu Server
对于大多数人,推荐Ubuntu Server:
- 社区资源丰富
- Docker支持好
- 上手简单
# 下载Ubuntu Server 22.04 LTS# 制作启动U盘(用Rufus或balenaEtcher)# 安装时选择最小化安装2.3 系统安装要点
# 安装时注意:# 1. 分区建议# - /boot: 1GB# - /: 50GB (SSD)# - /home: 剩余SSD空间# - /data: 机械硬盘(存储用)# 2. 安装OpenSSH Server(必选)# 3. 设置静态IP# 安装后基础配置sudoaptupdate&&sudoaptupgrade -ysudoaptinstall-yvimcurlwgethtopnet-tools# 设置静态IPsudonano/etc/netplan/00-installer-config.yamlnetwork:ethernets:enp0s3:dhcp4:noaddresses:-192.168.1.100/24gateway4:192.168.1.1nameservers:addresses:-223.5.5.5-8.8.8.8version:2sudonetplan apply三、Docker环境搭建
3.1 安装Docker
# 一键安装curl-fsSL https://get.docker.com|sh# 添加当前用户到docker组sudousermod-aG docker$USER# 重新登录后验证docker --version docker run hello-world3.2 安装Docker Compose
sudoaptinstalldocker-compose-plugin# 验证docker compose version3.3 安装Portainer(可视化管理)
docker volume create portainer_data docker run -d -p9000:9000 --name portainer\--restart=always\-v /var/run/docker.sock:/var/run/docker.sock\-v portainer_data:/data\portainer/portainer-ce访问 http://服务器IP:9000 设置管理账号。
四、实用服务部署
4.1 文件共享(Samba)
sudoaptinstallsamba -y# 创建共享目录sudomkdir-p /data/sharesudochmod777/data/share# 配置Sambasudonano/etc/samba/smb.conf[share] path = /data/share browseable = yes writable = yes guest ok = no create mask = 0755# 设置Samba密码sudosmbpasswd -a$USER# 重启服务sudosystemctl restart smbdWindows访问:\\192.168.1.100\share
4.2 下载工具(qBittorrent)
docker run -d --name=qbittorrent\-ePUID=1000-ePGID=1000\-eTZ=Asia/Shanghai\-eWEBUI_PORT=8080\-p8080:8080 -p6881:6881 -p6881:6881/udp\-v /data/qbittorrent/config:/config\-v /data/downloads:/downloads\--restart unless-stopped\linuxserver/qbittorrent访问 http://服务器IP:8080,默认账号admin/adminadmin。
4.3 影音服务器(Jellyfin)
docker run -d --name=jellyfin\-ePUID=1000-ePGID=1000\-eTZ=Asia/Shanghai\-p8096:8096\-v /data/jellyfin/config:/config\-v /data/media:/media\--restart unless-stopped\jellyfin/jellyfin访问 http://服务器IP:8096,支持硬解需要额外配置。
4.4 照片管理(Immich)
# 创建目录mkdir-p /data/immich&&cd/data/immich# 下载docker-compose文件wgethttps://github.com/immich-app/immich/releases/latest/download/docker-compose.ymlwgethttps://github.com/immich-app/immich/releases/latest/download/.env.example -O .env# 修改.env配置nano.env# 启动docker compose up -d访问 http://服务器IP:2283
4.5 密码管理(Vaultwarden)
docker run -d --name=vaultwarden\-eADMIN_TOKEN=your_admin_token\-p8000:80\-v /data/vaultwarden:/data\--restart unless-stopped\vaultwarden/server4.6 一键部署脚本
# 创建docker-compose.yml一次性部署多个服务cat>/data/docker-compose.yml<<'EOF' version: '3' services: portainer: image: portainer/portainer-ce ports: - 9000:9000 volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data restart: unless-stopped qbittorrent: image: linuxserver/qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai - WEBUI_PORT=8080 ports: - 8080:8080 - 6881:6881 - 6881:6881/udp volumes: - /data/qbittorrent/config:/config - /data/downloads:/downloads restart: unless-stopped jellyfin: image: jellyfin/jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai ports: - 8096:8096 volumes: - /data/jellyfin/config:/config - /data/media:/media restart: unless-stopped volumes: portainer_data: EOF# 启动所有服务docker compose up -d五、远程访问方案
服务器搭好了,如何在外面访问?
5.1 方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| 端口映射 | 直接 | 需要公网IP,安全风险 |
| DDNS | 动态IP可用 | 仍需公网IP |
| 内网穿透 | 无需公网IP | 免费版限速 |
| 组网软件 | 简单安全 | 需安装客户端 |
5.2 组网方案(推荐)
使用组网软件(如星空组网)是最简单的方案:
原理: ┌─────────────┐ ┌─────────────┐ │ 家里服务器 │ ←组网→ │ 外面的手机 │ │ 10.10.0.1 │ │ 10.10.0.2 │ └─────────────┘ └─────────────┘ 访问方式: - 文件共享:\\10.10.0.1\share - 下载管理:http://10.10.0.1:8080 - 影音播放:http://10.10.0.1:8096配置步骤:
- 服务器安装组网客户端
- 手机/电脑也安装客户端
- 登录同一账号
- 自动分配虚拟IP
- 通过虚拟IP访问所有服务
优势:
- 不需要公网IP
- 不需要端口映射
- 所有端口都能访问
- 加密传输,安全
- 配置一次,永久使用
六、系统优化
6.1 降低功耗
# 安装cpufrequtilssudoaptinstallcpufrequtils# 设置节能模式sudocpufreq-set -g powersave# 开机自动设置echo'GOVERNOR="powersave"'|sudotee/etc/default/cpufrequtils6.2 硬盘休眠
# 安装hdparmsudoaptinstallhdparm# 设置5分钟无操作休眠sudohdparm -S60/dev/sdb# 写入配置文件sudonano/etc/hdparm.conf# /dev/sdb {# spindown_time = 60# }6.3 减少SSD写入
# 使用tmpfssudonano/etc/fstab# 添加:tmpfs /tmp tmpfs defaults,noatime,nosuid,size=1g006.4 定时任务
# 每天凌晨3点更新Docker镜像crontab-e03* * * docker compose -f /data/docker-compose.yml pull&&docker compose -f /data/docker-compose.yml up -d# 每周清理Docker垃圾04* *0docker system prune -f七、监控与维护
7.1 系统监控
# 安装Netdata(一键监控)bash<(curl-Ss https://my-netdata.io/kickstart.sh)# 访问 http://服务器IP:199997.2 硬盘健康检查
# 安装smartmontoolssudoaptinstallsmartmontools# 查看硬盘健康sudosmartctl -a /dev/sda# 定期检查脚本cat>/usr/local/bin/check_disk.sh<<'EOF' #!/bin/bash for disk in /dev/sd?; do health=$(sudo smartctl -H $disk | grep "SMART overall-health" | awk '{print $NF}') echo "$disk: $health" done EOFchmod+x /usr/local/bin/check_disk.sh7.3 温度监控
# 安装lm-sensorssudoaptinstalllm-sensorssudosensors-detect# 查看温度sensors八、总结
旧电脑改造服务器要点:
- 硬件评估:SSD必加,内存8GB起
- 系统选择:Ubuntu Server通用性最好
- Docker部署:所有服务容器化
- 远程访问:组网软件最简单安全
- 定期维护:监控、备份、更新
我的配置参考:
硬件:i5-4590 + 16GB内存 + 256GB SSD + 4TB机械盘 系统:Ubuntu Server 22.04 服务:Samba + qBittorrent + Jellyfin + Vaultwarden 远程:星空组网 功耗:待机约30W一台旧电脑,投入一两百块升级,就能变成实用的家庭服务器,比买NAS便宜多了。
参考资料
- Ubuntu Server官方文档
- Docker官方文档
- LinuxServer.io
💡建议:先从简单的服务开始(文件共享),熟悉后再添加其他服务。一步步来,不要一次装太多。