使用设备:惠普 t628

Image

安安静静地躺在我的书柜上

1. 安装系统

可用于家用服务器的系统选择其实很多。国内有非开源的 FNOS,国外则有开源的 TrueNAS、Unraid 等;通用 Linux 发行版方面,还有 Ubuntu Server、Debian、甚至 Arch(?);如果确实存在刚需,也可以选择 Windows Server。

但除传统 Linux 发行版以外,其余系统整体都偏向“成品化”和集成化,功能齐全的同时也相对臃肿。NAS 本身对性能要求不高,但考虑到 t628 的硬件性能较为有限,过于复杂的系统在长期折腾下仍可能成为瓶颈。

综合性能开销、系统自由度以及可控性,我最终选择了 Ubuntu Server。相较于 Debian,Ubuntu Server 的确更偏臃肿一些,但这种“臃肿”也换来了更友好的生态和更低的使用门槛。至于常被诟病的 Snap,虽然谈不上喜欢,但在可接受范围内,实际使用中确实能带来一定便利。

Debian 在简洁性和稳定性上依然更胜一筹,但权衡之后,我个人仍然可以接受 Ubuntu Server——毕竟在大多数场景下,Snap 等机制确实能省下不少时间和精力。

1.1 安装过程

Ubuntu Server 的安装流程本身较为简单。首先前往 [Ubuntu 官方网站](https://ubuntu.com/download/server) 下载系统镜像,然后通过启动盘完成安装即可。无论是使用 Rufus 还是 Ventoy,方式并无本质区别,只要能正常引导并完成安装即可。

需要注意的是:如果你计划将主机放置在无人值守或不便连接显示器与键盘的位置,建议在安装阶段就配置好 SSH,以便后续远程管理。

下面是具体的 SSH 配置流程。


1.1.1 SSH 配置教程

首先,在你日后用于管理服务器的电脑上打开终端(如果找不到,可以直接在搜索栏中搜索“终端”或“PowerShell”)。

执行以下命令生成 SSH 密钥:

ssh-keygen -t ed25519 -C "your_email@example.com"

请将 your_email@example.com 替换为你自己的邮箱。虽然该字段并不影响功能,但用于标识密钥,建议填写。

随后一路回车(通常 3~4 次),直到命令执行结束。

生成完成后,密钥文件默认位于:

C:\Users\你的用户名\.ssh\
├─ id_ed25519        (私钥,**务必妥善保管,绝不可泄露**)
└─ id_ed25519.pub    (公钥,用于服务器或 GitHub)

接下来复制公钥内容(供后续使用):

type $env:USERPROFILE\.ssh\id_ed25519.pub

请完整复制输出的整行内容。


将 SSH Key 添加到 GitHub

如果尚未注册 GitHub 账号,请先完成注册。

  1. 打开 GitHub
  2. 点击右上角头像 → Settings
  3. 左侧选择 SSH and GPG keys
  4. 点击 New SSH key
  5. 填写以下信息:
    • Title:
      任意,用于区分设备
      示例:debian-server / laptop / home-nas
    • Key type:
      保持默认 Authentication Key
    • Key:
      粘贴刚才复制的完整公钥
  6. 点击 Add SSH key
  7. 按提示输入 GitHub 密码确认

最后,在 Ubuntu Server 安装过程中:

这样在系统安装完成后,即可直接通过 SSH 使用密钥登录服务器,无需再进行额外配置。

要想登录也很简单,终端输入

ssh 用户名@ip地址

有可能会问你yes/no/fingerprint,直接yes即可。

然后输入账号密码就行了。

1.1.2 配置软件源

Ubuntu 默认使用的官方软件源在国内访问速度和稳定性都不理想,实际使用中容易出现下载慢甚至失败的情况。因此,建议在安装阶段或安装完成后,将软件源切换为国内镜像站,例如 清华大学开源软件镜像站。

在 Ubuntu Server 安装过程中,当安装程序询问软件源地址时,可以直接填写清华源:

https://mirrors.tuna.tsinghua.edu.cn/ubuntu/

如果在安装阶段未进行配置,也可以在系统安装完成后手动修改 /etc/apt/sources.list 来完成切换。切换完成后,执行以下命令更新软件索引:

sudo apt update

更换为国内镜像源后,apt 在下载软件包和更新系统时的速度与稳定性都会有明显改善,尤其是在首次安装大量依赖时效果尤为明显。

2. 初步配置系统

2.1 更新系统与基础工具

在开始进一步配置之前,建议先对系统进行一次完整更新,并安装一些常用的基础工具。

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget vim htop net-tools

这两行是 Debian / Ubuntu 系列里非常常见的初始化命令,作用可以分开精确说明。

第一行

sudo apt update && sudo apt upgrade -y

sudo

以 root 权限执行。普通用户默认不能改系统软件。

apt update

可以理解为:刷新可用软件列表

&&

如果 apt update 失败,apt upgrade 不会执行。

apt upgrade -y

⚠️ 不会升级内核大版本、不会自动移除包
(那是 full-upgrade / dist-upgrade 干的事)

第一行总结

刷新软件源 → 把系统中能安全升级的软件全部升级到最新版本

第二行

sudo apt install -y curl wget vim htop net-tools

含义

各软件具体作用

curl

示例:

curl https://example.com

wget

示例:

wget https://example.com/file.zip

📌 curl 更灵活,wget 更专注下载
很多服务器教程会两个都装

vim

示例:

vim /etc/ssh/sshd_config

htop

示例:

htop

net-tools

第二行总结

安装一套几乎所有服务器 / Linux 新系统都会装的基础工具

整体一句话总结

这两行命令的目的就是:

更新系统 → 升级已有软件 → 安装一套常用的命令行工具,作为系统的“基础环境”


接下来可以通过安装一款简单的工具来验证软件源和系统是否工作正常。这里以 neofetch 为例,该工具用于在终端中展示系统的基本信息。

sudo apt install neofetch

按提示输入 y 确认安装。安装完成后,直接执行:

neofetch

即可看到系统信息的汇总展示界面,例如下图所示:

Image

如果能够正常显示,说明当前软件源配置与基础环境均工作正常,可以继续后续的系统配置与服务部署。

2.1.1 安装“扶手梯”

名字叫“扶手梯”,但实际上就是你理解的那个——网络代理工具。

由于后续会大量使用 Docker,包括拉取镜像、访问 GitHub 等资源,如果没有稳定的网络环境,实际体验会非常糟糕。因此,这一步几乎是必需的前置条件。

这里直接使用 [nelvko](https://github.com/nelvko) 大佬提供的脚本,整体安装过程相对省心。

在终端中执行以下命令即可开始安装:

git clone --branch master --depth 1 https://gh-proxy.org/https://github.com/nelvko/clash-for-linux-install.git \
  && cd clash-for-linux-install \
  && bash install.sh

安装过程中按照脚本提示操作即可,基本不需要额外干预。

如果你还没有可用的订阅链接,可以参考我之前写的一篇文章:
👉 [低价机场推荐](https://blog.realityme.top/2025/08/02/低价机场推荐/)

接着重启。

**注:**一些可能用到的命令:

Usage: 
  clashctl COMMAND [OPTIONS]

Commands:
    on                    开启代理
    off                   关闭代理
    status                内核状况
    proxy                 系统代理
    ui                    Web 面板
    secret                Web 密钥
    sub                   订阅管理
    upgrade               升级内核
    tun                   Tun 模式
    mixin                 Mixin 配置

Global Options:
    -h, --help            显示帮助信息
    
更优雅的方式:
$ clashon
😼 已开启代理环境

$ clashoff
😼 已关闭代理环境

更多内容查看[GitHub仓库](https://github.com/nelvko/clash-for-linux-install)

完成以上配置后,后续无论是 Docker 拉镜像还是访问各类国外服务,整体体验都会顺畅许多,可以继续安心折腾了。

2.1.2 安装 Docker 与 Compose

Docker 是后续服务部署的核心组件,这里直接使用官方提供的一键安装脚本进行安装,省去手动配置依赖的步骤。

下面我会逐条、逐命令解释在 Ubuntu 上安装 Docker Engine + Docker Compose(v2) 的全过程。内容偏“原理 + 实操”,适合理解而不是只照抄。

适用系统:Ubuntu 20.04 / 22.04 / 24.04(Desktop / Server 通用)


一、为什么不直接 apt install docker

Ubuntu 自带仓库里的 Docker 版本通常:

因此官方推荐:

使用 Docker 官方仓库安装


二、准备系统依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
逐项解释
1️⃣ apt update

2️⃣ ca-certificates

3️⃣ curl

4️⃣ gnupg

5️⃣ lsb-release

三、添加 Docker 官方 GPG Key(安全核心)
1️⃣ 创建 keyrings 目录
sudo install -m 0755 -d /etc/apt/keyrings

解释


2️⃣ 下载并转换 Docker 公钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

拆解理解

curl -fsSL

| 管道

gpg --dearmor


3️⃣ 设置读取权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg

解释


四、添加 Docker 官方软件源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

逐段解释

1️⃣ dpkg --print-architecture

输出:


2️⃣ signed-by=...

告诉 apt:

这个仓库必须用 docker.gpg 验证

这是现代 apt 的安全写法
(旧的 apt-key 已被弃用)


3️⃣ $(lsb_release -cs)

自动识别版本代号:

避免手写出错


4️⃣ /etc/apt/sources.list.d/docker.list


5️⃣ > /dev/null


五、刷新索引
sudo apt update

此时 apt 会:

如果这一步不报错,说明:

仓库配置完全正确


六、安装 Docker 与 Compose
sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin

每个包是干嘛的

🧱 docker-ce


🖥 docker-ce-cli


📦 containerd.io

Docker 本质上是 containerd 的“上层管理器”


🏗 docker-buildx-plugin


🧩 docker-compose-plugin

docker compose ...

❌ 不再是:

docker-compose

七、验证安装是否成功
docker version

你应该看到:


docker compose version

确认:


八、测试 Docker 是否能跑容器
sudo docker run --rm hello-world
发生了什么?
  1. 本地没镜像 → 自动拉取
  2. 创建容器
  3. 打印欢迎信息
  4. --rm 自动删除容器

这一步成功:

Docker 运行链路完整


九、为什么默认要 sudo?
原因
/var/run/docker.sock

十、免 sudo 使用 Docker(关键)
sudo usermod -aG docker $USER
解释

⚠️ 必须注销 / 重新登录
否则组权限不会生效

验证:

groups

十一、Compose 工作原理(简述)
总结:

一、准备工作
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

二、添加 Docker 官方仓库
  1. 导入 GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  1. 添加源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 更新索引
sudo apt update

三、安装 Docker Engine 与 Compose
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

注意:

  • docker-compose-plugin 即 Compose v2(推荐)
  • 不再建议单独安装旧的 docker-compose(Python 版)

四、验证安装
docker version
docker compose version

测试容器:

sudo docker run --rm hello-world

五、免 sudo 使用 Docker(强烈建议)
sudo usermod -aG docker $USER

然后注销并重新登录,再测试:

docker ps

六、Docker Compose 使用示例
mkdir ~/compose-test && cd ~/compose-test

docker-compose.yml:

services:
  nginx:
    image: nginx:alpine
    ports:
      - "8080:80"

启动:

docker compose up -d

停止:

docker compose down

七、常见问题排查