✨ 瞬间 15 📚 归档 11 🏷️ 标签 26
📂 分类
🏷️ 标签 (26)

Linux 服务器搭建通用教程

2026.10.05

研究背景 Background

这份教程合并整理自三次实践:2026 年 3 月从飞牛 fnOS 迁移到 Ubuntu + 1Panel 的完整经历、2026 年 10 月配置 TD340 冷备份服务器的最新实践,以及日常运维中积累的避坑经验。不是理想化的官方文档,而是一份真实的排错实录,涵盖从底层磁盘挂载、SSH 连接、1Panel 快照恢复,到硬盘休眠、冷备份、WoL 唤醒等所有实际操作细节。

适用场景:飞牛系统(或其他 NAS 系统)迁移至 Ubuntu + 1Panel,或从裸机搭建家庭服务器和冷备份体系,希望保留原有数据并搭建更可控的服务器环境。

This tutorial consolidates three practices: migrating from fnOS to Ubuntu + 1Panel (March 2026), configuring a TD340 cold backup server (October 2026), and daily operations experience. It is a real troubleshooting record covering disk mounting, SSH, 1Panel snapshot recovery, disk sleep, cold backup, WoL wake-on-LAN, and a five-layer backup strategy.

参考资料 References

技术总结 Technical Summary

从裸机搭建 Ubuntu + 1Panel 家庭服务器和 TD340 冷备份体系,涵盖系统安装、网络配置、SSH、Docker、硬盘休眠、RAID1 冷备份、WoL 唤醒、自动关机、五层备份策略等全流程,附完整避坑指南和折腾记录。

环节 关键点
主服务器 J4125 常开,普通盘不组 RAID,1Panel + Docker
冷备份 TD340 按需 WoL 唤醒,SAS + RAID1,空闲自动关机
备份策略 五层:面板快照 + 容器备份 + 本地冷备份 + 异地同步 + 云快照
核心难点 RAID/LVM 阻止硬盘休眠;WoL 只在正常关机后有效;netplan 多文件叠加致双 IP

细节 Details

硬件清单

机器 角色 CPU 内存 存储 网络 功耗 OS
家用主服务器 常开,1Panel + Docker + 应用 J4125 8G DDR4 256G SATA SSD(系统 60G + home 190G)+ 1T HDD 企业盘 联通家宽公网 IPv6 + 内网 8W 空闲 / 100W 负载 Ubuntu Server 24.04.4 LTS
学校主服务器 常开,重服务部署 i3-7100 8G DDR4 512G SSD NVMe(系统 120G)+ 512G HDD + 1T HDD 企业 ×2 + 3T HDD 监控 ≈ 6T 教育网电信内网 15-60W Ubuntu Desktop 24.04.4 LTS
冷备份服务器 (TD340) 按需 WoL 唤醒,mdadm RAID1 冷备份仓库 E5-2407v2 8G DDR3 500G SATA ×3 内网固定 IP 按需 Ubuntu Server
稳定公网轻量云 常开,待分配 Xeon 2C 2G 40G HDD + 40G bucket + 50G HDD 公网 200M-3M 80-460 元/年 Ubuntu Server 24.04/22.04 LTS
Windows 笔记本 q508 可常年运行,待分配 — — — 内网 — Windows
Windows 笔记本 vaio 可常年运行,待分配 — — — 内网 — Windows

架构决策:主服务器用普通 SATA/NvMe 盘不组 RAID——SAS 盘和 RAID 功耗大,不适合常开机器。冷备份服务器才用 SAS + RAID1 做数据冗余,反正平时关机不费电。2026-10-03 折腾了两天后决定”拒绝高价囤入 SAS,刚好三个 SATA 就可以满足家里 1T 的备份需要,后续远程异地备份成熟了再上 SAS”。后续主服务器会配置远程互备份到云服务器,不依赖本地 RAID。

本教程目前覆盖家用主服务器和冷备份服务器的配置,学校主服务器的配置类似。


一、日常运维参考

架构概览

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
主服务器 (常开, 普通磁盘, 无 RAID)
├── 1Panel v2 + Docker
├── Cockpit (系统管理)
├── hd-idle (硬盘休眠)
└── 1Panel 计划任务:
├── backup-cold.sh → WoL 唤醒 → rsync 备份 → 远程关机
├── cleanup.sh → 系统清理
└── disk_health_monitor.sh → 磁盘健康检查

WoL 唤醒 / rsync 备份 / SSH 关机
↓ ↑

冷备份服务器 (按需唤醒, SAS + RAID1)
├── WoL (BIOS + ethtool + systemd)
├── mdadm RAID1 (数据冗余)
├── /boot 自动备份 (systemd)
└── auto-shutdown.sh (cron, 空闲关机兜底)

主服务器用普通磁盘不组 RAID——SAS 盘和 RAID 功耗大,不适合常开机器。冷备份服务器才用 SAS + RAID1 做数据冗余,反正平时关机不费电。后续主服务器会配置远程互备份到云服务器,不依赖本地 RAID。

脚本管理

1
2
3
4
5
6
7
8
9
主服务器 (1Panel 计划任务)
├── backup-cold.sh → WoL 唤醒冷备份服务器 → rsync 同步 → 远程关机
├── cleanup.sh → apt autoremove + docker prune + journalctl 清理
└── disk_health_monitor.sh → SMART 信息记录 (运行小时 / 起停次数)

冷备份服务器 (systemd / cron 本地管理)
├── auto-shutdown.sh → cron 每 5 分钟检查, 空闲 30 分钟自动关机
├── boot-backup.service → systemd, 开机自动备份 /boot 到存储盘
└── wol.service → systemd, 持久化 WoL 设置

主服务器脚本统一用 1Panel 计划任务管理,有 Web 界面、执行日志和失败告警。冷备份服务器不装 1Panel,用 systemd/cron 本地管理——1Panel 挂了 cron 依然能跑,关机兜底更可靠。

常用命令速查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# ─── SSH 远程操作 ───
ssh <用户名>@<服务器IP> # 连接
ssh <用户名>@<服务器IP> 'sudo shutdown -h now' # 远程关机
ssh <用户名>@<服务器IP> 'sudo reboot' # 远程重启
ssh <用户名>@<服务器IP> 'sudo -n whoami' # 测试免密 sudo
ssh <用户名>@<服务器IP> 'tail -5 /var/log/auto-shutdown.log' # 远程查日志

# ─── WoL ───
sudo ethtool <网卡名> | grep Wake-on # WoL 状态 (g=已开启)
sudo ethtool -s <网卡名> wol g # 开启 WoL
wakeonlan <MAC地址> # 唤醒冷备份服务器

# ─── 磁盘 ───
lsblk # 分区列表
df -h # 空间使用
sudo smartctl -a /dev/sda # SMART 信息
sudo hdparm -C /dev/sdb # 状态 (active/standby)
sudo hdparm -y /dev/sdb # 强制休眠

# ─── RAID (冷备份服务器) ───
cat /proc/mdstat # 状态, 应显示 [UU]
sudo mdadm --detail /dev/md0 # 详情
sudo mdadm /dev/md0 --fail /dev/sdb1 # 模拟故障
sudo mdadm /dev/md0 --remove /dev/sdb1 # 移除故障盘
sudo mdadm /dev/md0 --add /dev/sdb1 # 加新盘
sudo mdadm --assemble --scan # 组装已有 RAID

# ─── 网络 ───
ip -br addr # 接口和 IP
sudo ethtool <网卡名> | grep -i speed # 网速
ip route | grep default # 网关

# ─── 监控服务 ───
sudo systemctl status cockpit.socket # Cockpit
sudo systemctl status boot-backup.service # /boot 备份
sudo systemctl status wol.service # WoL

# ─── 系统 ───
sudo apt update && sudo apt upgrade -y # 更新
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target # 禁休眠

日常维护

定期看 RAID 状态和磁盘 SMART,检查系统更新,看日志 journalctl -u <服务名> --since "1 hour ago",定期验证备份数据完整性。1Panel 里可以看网站和数据库状态、SSL 证书过期时间(自动续期但要看一眼)。

避坑指南

  • SSH 连不上:服务没装或防火墙挡了,apt install openssh-server + ufw allow ssh
  • netplan 双 IP:多个 netplan 文件叠加,只改 50-cloud-init.yaml 删其他文件
  • 硬盘不休眠:RAID/LVM 元数据写入导致,拆除 RAID/LVM + noatime 挂载
  • 1Panel v1→v2:不兼容,先 sudo 1pctl uninstall 再装 v2
  • Docker 拉取失败:配代理或镜像源
  • Cockpit 反代 403:cockpit.conf 里 Origins 没配域名
  • WoL 不生效:BIOS 没开或非正常关机,WoL 只在 shutdown 正常关机后有效
  • auto-shutdown 没生效:检查 cron 文件是否存在(cat /etc/cron.d/auto-shutdown),SSH 连着时不会关机是正常的
  • 冷备份服务器 IPv6 暴露公网:路由器分配了公网 IPv6,需关闭见第四章
  • 浏览器硬件加速:先开 edge://settings/system 的”使用图形加速”开关 → 重启浏览器 → 验证 edge://gpu 显示 Hardware accelerated。90% 的问题这一步就能解决。

二、主服务器配置

从裸机搭建常开主服务器。主服务器用普通 SATA/NvMe 盘,不组 RAID、不用 SAS——功耗大不适合常开。后续远程互备份到云服务器,不依赖本地冗余。

系统安装

安装 Ubuntu Server,装完按需装桌面环境:

1
sudo apt install ubuntu-gnome-desktop -y

换源:

1
2
3
sudo nano /etc/apt/sources.list.d/ubuntu.sources
# 把 URI 换成 https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
sudo apt update && sudo apt upgrade -y

网络配置

固定 IP 推荐在路由器端做 DHCP 绑定。如果要在服务器上配静态 IP,直接修改现有 netplan 文件,不要新建多个文件(会叠加导致双 IP):

1
sudo nano /etc/netplan/50-cloud-init.yaml
1
2
3
4
5
6
7
8
9
10
11
12
network:
version: 2
renderer: networkd
ethernets:
<网卡名>:
addresses:
- <服务器IP>/24
routes:
- to: default
via: <网关IP>
nameservers:
addresses: [<DNS1>, <DNS2>]
1
2
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
sudo netplan apply

SSH 配置

1
2
sudo apt install openssh-server -y
sudo systemctl enable --now ssh

Windows 端 ssh-keygen -t ed25519 生成密钥,ssh-copy-id <用户名>@<服务器IP> 传公钥。自动化场景需要 NOPASSWD sudo:sudo visudo 加 <用户名> ALL=(ALL) NOPASSWD: ALL。

1Panel 和 Docker

装 1Panel v2(v1 先卸载):

1
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

Docker 配置代理和镜像源,编辑 /etc/docker/daemon.json:

1
2
3
4
5
6
7
8
9
10
11
12
{
"data-root": "/var/lib/docker",
"live-restore": true,
"log-driver": "json-file",
"log-opts": { "max-file": "5", "max-size": "100m" },
"proxies": {
"http-proxy": "http://<代理IP>:<代理端口>",
"https-proxy": "http://<代理IP>:<代理端口>",
"no-proxy": "localhost,127.0.0.1,<局域网网段>"
},
"registry-mirrors": ["https://docker.xuanyuan.me", "https://docker.1panel.live"]
}
1
2
sudo systemctl restart docker
docker pull hello-world # 验证

后续防火墙、SSL 证书、应用安装、反向代理、计划任务都在 1Panel 界面操作,不用敲命令。

硬盘休眠

1
2
3
4
5
sudo apt install hd-idle -y
sudo nano /etc/default/hd-idle
# START_HD_IDLE=true
# HD_IDLE_OPTS="-i 0 -a sda -i 600 -a sdb -i 600 -a sdc -i 600"
sudo systemctl enable --now hd-idle

监控

Cockpit 能看系统状态、磁盘健康、服务管理、日志,还内置终端:

1
2
3
sudo apt install cockpit -y
sudo systemctl enable --now cockpit.socket
# 访问 https://<服务器IP>:9090

反代的话改 /etc/cockpit/cockpit.conf 加 Origins,403 就是 Origins 没配。

系统优化

定时清理脚本:

1
2
3
4
5
6
7
8
9
10
sudo tee /usr/local/bin/cleanup.sh > /dev/null << 'SCRIPT'
#!/bin/bash
echo "--- 开始清理 [$(date)] ---"
apt-get autoremove -y && apt-get autoclean -y
dpkg -l | grep ^rc | awk '{print $2}' | xargs -r apt-get purge -y
docker system prune -af 2>/dev/null
journalctl --vacuum-time=3d
echo "--- 清理完成 ---"
SCRIPT
sudo chmod +x /usr/local/bin/cleanup.sh

禁用系统休眠(服务器不应该休眠):

1
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

冷备份脚本

定时 WoL 唤醒冷备份服务器、rsync 同步、完成后关机:

1
sudo apt install wakeonlan -y

然后在 1Panel → 计划任务里创建三个任务:冷备份每天 02:00 执行 backup-cold.sh,磁盘健康每天 02:30 执行 disk_health_monitor.sh,系统清理每天 03:00 执行 cleanup.sh。填脚本路径而非粘贴内容,避免两处不同步。

应用部署示例

基础服务装好后,常见应用都在 1Panel 应用商店安装。以下是以 Nextcloud 为例的部署要点,其他应用(Immich、OpenList 等)类似。

Nextcloud:应用商店搜索安装,同时装 MariaDB 和 Redis 作为依赖。数据目录建议放在 SSD 上利用高速读写。如果通过反向代理访问,需修改 config.php 添加 trusted_domains、overwritehost、overwriteprotocol、trusted_proxies 等配置。

Cockpit SMB 共享:官方源尚未支持 Ubuntu 24.04,需手动下载适配 22.04 的 deb 包安装。

其他服务的配置优化将另外总结到单独的教程。


三、NAS 迁移额外配置

从飞牛 fnOS 或群晖等 NAS 系统迁移到 Ubuntu + 1Panel,除了第二章的常规配置,还需要额外做这些步骤。

备份原系统数据

最关键的是 1Panel 面板快照。在原 NAS 的 1Panel 中:面板设置 → 快照 → 创建快照,找到快照文件(/opt/1panel/backup/snapshot),复制到外部存储。必须用面板快照——含网站配置、防火墙、计划任务、面板设置。

Docker 数据单独备份:sudo tar -czvf docker-backup.tar.gz /var/lib/docker,也复制到外部存储。另外记下 1Panel 网络信息(子网、网关)、数据库密码、域名配置。

挂载已有 RAID/LVM

飞牛等 NAS 系统通常对每块硬盘设置单盘 RAID + LVM,Ubuntu 下不能直接挂载:

1
2
3
4
5
6
7
8
sudo apt install mdadm lvm2 smartmontools -y
sudo mdadm --assemble --scan
cat /proc/mdstat # 确认: md0 : active raid1 sda1[0]
sudo vgscan && sudo vgchange -ay # 激活 LVM
sudo lvs # 查看逻辑卷路径
sudo mkdir -p /mnt/disk{1,2,3}
sudo mount /dev/<卷组1>/<逻辑卷1> /mnt/disk1
ls /mnt/disk1 # 验证数据完好

拆除 RAID/LVM 支持硬盘休眠

纯数据存储盘且有外部备份的话,拆除 RAID/LVM 让硬盘能休眠。请务必先确认数据已备份到安全位置,因为过程中会删除所有分区和文件系统。

第一步:卸载所有挂载点

1
sudo umount /mnt/disk1 /mnt/disk2 /mnt/disk3

第二步:停用并删除 LVM 组件

1
2
3
4
5
6
7
8
# 停用逻辑卷
sudo lvchange -an /dev/<卷组1>/<逻辑卷1>
# 删除逻辑卷
sudo lvremove /dev/<卷组1>/<逻辑卷1>
# 删除卷组
sudo vgremove <卷组1>
# 删除物理卷(即 RAID 设备)
sudo pvremove /dev/md0 /dev/md1 /dev/md2

第三步:停止并清除 RAID

1
2
3
4
5
6
7
# 停止 RAID 阵列
sudo mdadm --stop /dev/md0
# 清除分区上的 RAID 超级块
sudo mdadm --zero-superblock /dev/sda1
# 从 mdadm 配置文件中移除相关条目
sudo nano /etc/mdadm/mdadm.conf
sudo update-initramfs -u

第四步:重新分区并格式化

1
2
3
sudo fdisk /dev/sda
# d 删除现有分区, n 创建新分区, w 写入并退出
sudo mkfs.ext4 /dev/sda1

第五步:挂载并恢复数据

1
2
3
sudo mkdir -p /mnt/newdisk{1,2,3}
sudo mount /dev/sdb1 /mnt/newdisk1
sudo rsync -avP /home/backup/disk1/ /mnt/newdisk1/

第六步:配置开机自动挂载

1
2
3
4
sudo blkid /dev/sda1 /dev/sdb1 /dev/sdc1
sudo nano /etc/fstab
# UUID=xxxx /mnt/newdisk1 ext4 defaults,noatime 0 2
sudo mount -a # 测试挂载是否正常

第七步:验证休眠

1
2
3
4
sudo systemctl restart hd-idle
# 等待 10 分钟后检查
sudo smartctl -i -n standby /dev/sdb
# 应返回 Device is in STANDBY mode

需要数据冗余就保留 RAID/LVM,但硬盘不会休眠。fstab 数据盘加 noatime 减少写入。

Snap 清理

1
2
3
sudo snap remove firefox 2>/dev/null
sudo apt purge snapd -y
sudo rm -rf /var/cache/snapd /snap /var/lib/snapd ~/snap

1Panel 恢复

先恢复 Docker 数据(在恢复快照之前):

1
2
3
sudo systemctl stop docker
sudo tar -xzvf /path/to/docker-backup.tar.gz -C /
sudo systemctl start docker

然后 1Panel → 面板设置 → 快照 → 导入快照。恢复后检查 1panel-network 是否存在,不存在手动创建同名 bridge 网络填入之前记的子网。异常应用逐个点”重建”——读取已有 Docker 数据不丢配置。


四、冷备份服务器配置

冷备份服务器平时关机,被主服务器 WoL 唤醒后接收 rsync 备份,完成后自动关机。只管数据备份和简单脚本,不装监控面板等服务。

SAS 硬盘兼容性

如果用板载 SAS 控制器(如 Intel C606 SCU),注意兼容性:SAS 1.0(3Gbps)完全兼容,SAS 2.0(6Gbps)兼容但降速到 3G,SAS 3.0(12Gbps)不兼容——物理层信令不同盘不转。SAS 盘需要控制器发 spin-up 指令才会旋转。

系统安装和网络

装 Ubuntu Server,不需要桌面环境。固定 IP(见第一章网络配置方式),必须固定否则 SSH 不稳定。

如果路由器分配了公网 IPv6,关闭它防止冷备份服务器暴露到公网:

1
2
3
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee /etc/sysctl.d/99-disable-ipv6.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.d/99-disable-ipv6.conf
sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf

SSH 配置

必须配 NOPASSWD sudo,主服务器备份完要远程关机:

1
2
sudo visudo
# 加: <用户名> ALL=(ALL) NOPASSWD: ALL

磁盘与 RAID

全新创建 mdadm RAID1 做数据冗余:

1
2
3
4
5
sudo apt install mdadm -y
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
cat /proc/mdstat # 同步完成后显示 [UU]
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u

fstab 用 UUID 不用设备名。

/boot 引导(SAS 盘场景)

SAS RAID 无法直接引导 GRUB 时,用 U 盘做 /boot。每次开机自动备份 /boot 到存储盘:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo tee /etc/systemd/system/boot-backup.service > /dev/null << 'EOF'
[Unit]
Description=Backup /boot to storage disk on startup
After=boot.mount mnt-<存储盘>.mount
Requires=mnt-<存储盘>.mount

[Service]
Type=oneshot
ExecStart=/usr/bin/rsync -avx --delete /boot/ /mnt/<存储盘>/boot-backup/
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable boot-backup.service

WoL 配置

BIOS 里开启:重启进 BIOS → Power → Wake on LAN → Enabled。系统里启用并持久化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sudo ethtool -s <网卡名> wol g
sudo ethtool <网卡名> | grep Wake-on # 应显示 g

sudo tee /etc/systemd/system/wol.service > /dev/null << 'EOF'
[Unit]
Description=Enable Wake-on-LAN
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s <网卡名> wol g
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable wol.service

记下 MAC 地址:ip link show <网卡名> | grep link/ether。WoL 只在正常关机后有效,网线必须插在配了 WoL 的网口。

空闲自动关机

每 5 分钟检查一次,没人连着 SSH、负载很低、没有 rsync 在跑就累计空闲时间,连续 30 分钟后自动关机。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
sudo tee /usr/local/bin/auto-shutdown.sh > /dev/null << 'SCRIPT'
#!/bin/bash
IDLE_THRESHOLD=30
IDLE_FILE="/var/run/idle-minutes"
LOG="/var/log/auto-shutdown.log"

SSH_COUNT=$(who | grep -v "$(hostname)" | wc -l)
LOAD=$(cat /proc/loadavg | awk '{print $1}')
RSYNC_RUNNING=$(pgrep rsync | wc -l)

if [ $SSH_COUNT -eq 0 ] && [ "$LOAD" < "0.5" ] && [ $RSYNC_RUNNING -eq 0 ]; then
MINUTES=$(cat $IDLE_FILE 2>/dev/null || echo 0)
MINUTES=$((MINUTES + 5))
echo $MINUTES > $IDLE_FILE
echo "[$(date)] 空闲 ${MINUTES}分钟" >> $LOG
if [ $MINUTES -ge $IDLE_THRESHOLD ]; then
echo "[$(date)] 空闲超过 ${IDLE_THRESHOLD}分钟, 自动关机" >> $LOG
rm -f $IDLE_FILE
/sbin/shutdown -h now
fi
else
echo "[$(date)] 不空闲: SSH${SSH_COUNT} rsync${RSYNC_RUNNING} 负载${LOAD}" >> $LOG
echo 0 > $IDLE_FILE
fi
SCRIPT
sudo chmod +x /usr/local/bin/auto-shutdown.sh

创建 cron 定时任务:

1
2
3
sudo tee /etc/cron.d/auto-shutdown > /dev/null << 'EOF'
*/5 * * * * root /usr/local/bin/auto-shutdown.sh
EOF

五、完整备份策略

备份不是一步到位的事,而是多层兜底的体系。当前实际在跑的五层备份如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
               主服务器 (J4125, 常开)
│
┌──────────────┼──────────────┐
│ │ │
① 面板快照 ② 容器备份 ③ 本地冷备份
(1Panel) (Docker 数据) (rsync → TD340)
│ │ │
│ │ WoL 唤醒 → rsync → 关机
│ │ │
└──────┬───────┴──────────────┘
│
④ 异地数据同步
(rsync → 云服务器)
│
⑤ 服务器快照镜像
(云平台快照)
  • ① 面板快照(1Panel):含网站配置、防火墙规则、计划任务、面板设置
  • ② 容器备份(Docker 数据):tar -czvf docker-backup.tar.gz /var/lib/docker
  • ③ 本地冷备份(rsync → TD340):主服务器每天 02:00 执行,WoL 唤醒 → rsync → 关机
  • ④ 异地数据同步(rsync → 云服务器):同步关键数据到云服务器
  • ⑤ 服务器快照镜像(云平台):云服务器有较大改动后保存镜像/快照
    原则:本地冗余靠冷备份服务器的 RAID1,异地冗余靠云服务器,不依赖主服务器的本地 RAID。

六、收尾验证清单

  • 检查所有服务:1Panel、Cockpit、Nextcloud 等是否正常运行
  • 验证自动挂载:重启一次,确认 /mnt/disk* 都已自动挂载
  • 测试代理:执行 docker pull nginx 看是否通过代理拉取
  • 验证休眠:等待 10 分钟后,用 sudo hdparm -C /dev/sdb 查看磁盘状态(应显示 standby)
  • 确认防火墙:确保只开放了必要端口,sudo ufw status
  • 验证冷备份:手动执行 backup-cold.sh,确认 WoL 唤醒 → rsync 成功 → 远程关机
  • 验证 WoL:冷备份服务器关机后用 wakeonlan 唤醒,确认能正常开机
  • 验证 auto-shutdown:检查 /var/log/auto-shutdown.log,确认空闲计数和关机逻辑正常
  • 验证 RAID:cat /proc/mdstat 应显示 [UU]
  • 验证 /boot 备份:sudo systemctl status boot-backup.service 应为 active

七、定时备份待完善

最后配置时间:待实施

所有服务的容器配置和数据都需要定时备份,目前尚未统一配置。计划方案:

  • 容器配置备份:定期备份各服务的compose目录和配置文件
  • 数据备份:通过Backrest定时备份/home和/mnt下的数据到S3/云盘
  • 数据库备份:定时pg_dump导出PostgreSQL数据库
  • 备份验证:定期检查备份完整性和可恢复性

十、基础设施服务补充配置

以下服务在《Linux服务器搭建通用教程》中已有概述,这里补充具体配置细节。

10.1 v2rayA(代理服务)

用于科学上网和模型下载,host网络模式,需要NET_ADMIN权限。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: "3.8"
services:
v2raya:
image: mzz2017/v2raya
restart: always
container_name: v2raya
network_mode: host
privileged: true
cap_add:
- NET_ADMIN
- SYS_MODULE
ports:
- "2017:2017"
- "7890:7890"
volumes:
- "/opt/1panel/docker/compose/v2raya:/etc/v2raya"
mem_limit: 100m
cpus: "1.0"

注意:镜像能用就别折腾代理,否则更新太麻烦。

10.2 Docker代理和加速源

Docker daemon.json配置(/etc/docker/daemon.json):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"data-root": "/vol1/docker",
"live-restore": true,
"log-driver": "json-file",
"log-opts": {
"max-file": "5",
"max-size": "100m"
},
"registry-mirrors": [
"https://docker.1panel.live",
"https://40ehdp5g.mirror.aliyuncs.com",
"https://docker.1ms.run"
],
"proxies": {
"http-proxy": "http://127.0.0.1:20171",
"https-proxy": "http://127.0.0.1:20171",
"no-proxy": "localhost,127.0.0.1"
}
}

踩坑:手残删了data-root配置,重启后容器正常运行但UI不显示。记住搞清楚作用前别乱清理文件。

10.3 swap(交换空间)

机械硬盘上设置swap有用但需权衡——防止OOM Killer杀进程,但频繁使用会导致严重I/O等待。

1
2
swapon --show
free -h

修改大小(以4GB为例):

1
2
3
4
5
6
7
sudo -n swapoff -a
sudo -n rm /swapfile
sudo -n fallocate -l 4G /swapfile
sudo -n chmod 600 /swapfile
sudo -n mkswap /swapfile
sudo -n swapon /swapfile
echo "/swapfile none swap sw 0 0" | sudo -n tee -a /etc/fstab

优化使用倾向:

1
2
sudo -n sysctl vm.swappiness=10    # 临时降低
echo "vm.swappiness=10" | sudo -n tee -a /etc/sysctl.conf # 永久

10.4 Cockpit(Web系统管理)

配置信任域名/etc/cockpit/cockpit.conf:

1
2
3
[WebService]
AllowUnencrypted = true
Origins = https://cp.your-domain.com:your-port

10.5 Tailscale

组网工具,自建一个Tailscale之类的工具很实用。目前未详细配置,作为备选方案。

10.6 HomeAssistant(智能家居)

智能家居平台,在物联网笔记中有记录。配置待补充。

10.7 apt/snap包管理

配置清华镜像源,源没有的统一上传到/home。卸载snap使用apt替代。

1
2
sudo -n apt update
sudo -n apt upgrade

常用apt包:hd-idle(硬盘休眠)、smartmontools(SMART监控)、sdparm、sg3-utils。

附录:折腾记录

1. 软件安装方式:从图形界面到命令行

尝试过的方案 遇到的问题 最终选择 放弃原因
GNOME 软件中心(Snap 版) 内存占用高,与系统风格不搭 Modren + APT 命令行 Snap 版不受控
GDebi 图形安装器 打开 .deb 文件后窗口空白无响应 APT 命令行 Wayland 或 PolicyKit 兼容问题
手动解压 Zotero 解压后找不到可执行文件 Flatpak 版 Zotero 手动解压需自己处理快捷方式和更新

经验:图形工具虽好,但遇到兼容问题时不值得深究,直接换用命令行或 Flatpak 往往更快。

2. 处理文件关联(MIME 类型)

1
2
3
4
5
# 查看有哪些文件类型还关联着 gnome-software
grep -r "gnome-software" /usr/share/applications/ ~/.local/share/applications/
# 备份后删除对应的 .desktop 文件
sudo mv /usr/share/applications/org.gnome.Software.desktop /usr/share/applications/org.gnome.Software.desktop.bak
sudo update-desktop-database

3. 浏览器硬件加速:从卡顿到流畅

尝试过的方案 遇到的问题 最终选择 放弃原因
检查驱动、权限 lspci 识别,i915 加载,但 chrome://gpu 显示软件渲染 坚持权限修正(加入 render 组) 必须注销登录后权限才生效
调整 Edge flags 启用 Override software rendering list 等无效 开启设置开关 + 重启浏览器 之前忽视了这个最简单的开关
切换到 Xorg 会话 Xorg 下硬件加速成功 继续使用 Wayland Edge 本身支持 Wayland 硬件加速

经验:遇到硬件加速问题,先检查最简单的地方:设置开关、权限、重启。

4. 硬盘休眠:从”永不眠”到”自动睡”

尝试过的方案 遇到的问题 最终选择 放弃原因
hd-idle 配置 配置正确但硬盘从不休眠 拆除 RAID/LVM 结构 根本原因是磁盘处于 RAID+LVM 管理下
手动休眠测试 hdparm -y 在卸载分区后成功,挂载后无效 排查写入进程 + noatime 挂载 挂载后文件系统元数据有少量写入
调整 LVM/RAID 配置 尝试修改 LVM 参数减少写入 彻底拆除 临时缓解不如根治

经验:硬盘不休眠先看底层结构,RAID/LVM 是罪魁祸首。拆除后配合 noatime 挂载选项,休眠问题迎刃而解。

5. 用户权限:让普通用户读写挂载点

尝试过的方案 遇到的问题 最终选择 放弃原因
临时 chown 重启后失效 修改 fstab 后固定所有权 对于 ext4/btrfs,挂载后 chown 一次即可永久有效
通过 uid/gid 挂载 仅适用于 FAT/NTFS 直接 chown 不适用于当前文件系统

6. 其他尝试与工具

工具/方案 目的 最终评价
Firejail / Flatpak 隔离运行国产软件 未深入,但 Flatpak 是未来方向
Docker 版 WPS 在容器中运行办公软件 资源占用大,配置复杂,放弃
Mission Center 系统监控(类似任务管理器) 轻量好用,替代 GNOME 系统监视器
rsync 数据迁移 稳定可靠,配合 -avP 显示进度,完美

避坑指南总结

  • 软件安装:优先用 apt 或 Flatpak,少折腾图形安装器
  • 硬件加速:先开设置开关,再查权限,最后考虑驱动。重启浏览器或注销登录很重要
  • 硬盘休眠:确认磁盘是普通独立分区,RAID/LVM 会阻止休眠。挂载时加 noatime 减少写入
  • 权限问题:/mnt 下的挂载点所有权可通过 chown 一次解决,无需每次挂载时指定
  • 遇到卡顿时:用 iotop、fatrace、iostat 定位写入源,而不是盲目调整配置

文档生成时间: 2026-10-05 合并整理自: TD340 冷备份服务器配置实践 + 飞牛转 LinuxNAS 迁移实践 + 日常运维经验 适用: Ubuntu 24.04 LTS + 1Panel + Docker

留言

0/500

留言经审核后才会公开显示:审核通过后刷新本页即可看到。