本地小服务器搭建(未完待续)
本地小服务器搭建的话先要组装好一台电脑,我的简单服务器是 ubuntu 2024 server 的操作系统,安装系统
服务器的基本配置
板 U 的配置如下,内存我用的是自己家里的 DDR3 4G

电源我用的是长城神威 4000SW,额定 300W,ATXTX,配置如下:
机箱:
SSD 固态硬盘:
总表格:
| CPU | Intel Core i5-4590 |
|---|---|
| 主板 | 华南 B85,M-ATX |
| 散热器 | 寒冰 A400 四热管塔式风冷 |
| 内存 | 套装自带 DDR3 |
| 系统盘 | 长城 GW600 256GB 2.5 英寸 SATA SSD |
| 电源 | 长城神威 4000SW,额定 300W,ATX |
| 机箱 | 鑫谷直男3青春版,M-ATX |
| 显卡 | 集显 |
| 系统 | Ubuntu Server 24.04.4 LTS amd64 |
| 检查项 | 本项目要求 | 原因 |
|---|---|---|
| 主板兼容 | 支持 M-ATX | B85 主板尺寸属于 M-ATX。 |
| 电源兼容 | 支持标准 ATX 电源 | 长城 4000SW 是普通 ATX 电源。 |
| 散热限高 | 至少 160 mm | A400 塔式风冷接近 155 mm,155 mm 机箱容差过小。 |
| 硬盘位 | 至少 1 个 2.5 英寸位 | 用于固定 SATA SSD。 |
| 风道 | 后置 120 mm 排风优先 | 无独显时无需堆满风扇,一个后排风即可改善热量排出。 |
| 装机空间 | 不必追求极限小体积 | 第一次装机时空间更宽松,插线和排障更容易。 |
装机操作
我装机是参考的是 Bilibili 的:【装机教程】全网最好的装机教程,没有之一
主板的相关内容:
由于商家已经把 cpu 装好了,现在就只是装风扇即可,装的时候记得先撕下保护膜,之后涂上硅脂
之后安装说明,用力按压风扇的固定片,这个我用了很大力也没有安装好,咨询客服确认了就是得用很大力,之后就是安装内存条了,下图中的右边的黄色卡槽就可以安装内存条,下图中的下面的是安装显卡的(虽然实测显卡还没有自带集显流畅的)
之后主板固定在机箱内,接上电源并且排线我忘拍照了,其实就按照 Bilibili 的 3D 装机视频走就行了,最后插上 SSD 卡即可。
点亮后多按几下 delete 进入 BIOS 中,出现这个界面就是成功了。
安装系统
制作系统盘
在 ubuntu 官方网站(https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.iso)下载 ubuntu-24.04.4-live-server-amd64.iso 镜像。下载好 rufus 软件(https://rufus.ie/)
用一个 U 盘制作成系统盘,做好后插入机箱即可
BIOS 设定
之后看到这个界面,屏幕提示的意思是:“你的 U 盘被 Rufus 制作为“仅支持 UEFI 启动”,但主板现在却用 BIOS/Legacy 模式启动它,所以无法进入安装程序。”
虽然有报错,但是这并不意味着 U 盘本身损坏;只需在 BIOS 启动菜单中选择带“UEFI:”前缀的同一 U 盘,而不是不带前缀的 Legacy 入口。只有主板确实无法 UEFI 启动时,才重新用 MBR + BIOS/UEFI-CSM 制作。
之后在 Boot Option #1 中选择 UEFI: VendorCoProdu…(实际名称按 U 盘而定)。 不要选择不带 UEFI 前缀的 USB 设备。 按 F10 保存并重启;进入 Ubuntu 安装器后不再修改 CSM。 安装完成并拔掉 U 盘
询问 AI,AI 建议的 BIOS 项
| 项目 | 建议值 | 说明 |
|---|---|---|
| SATA Mode | AHCI | 适合 SATA SSD;不要为安装 Ubuntu 切到 RAID。 |
| Boot Mode | UEFI 优先 | 与 GPT 安装盘和 EFI 分区匹配。 |
| Fast Boot | 安装/排障阶段 Disabled | 便于进入 BIOS 和识别 U 盘。 |
| Onboard LAN | Enabled | 网卡排障时确认板载网卡未被关闭。 |
| Restore AC Power Loss | 系统稳定后设为 Power On 或 Last State | 断电恢复后可自动开机,适合无人值守服务器。 |
| 超频/电压/刷 BIOS | 保持默认 | 旧平台能稳定使用时不要为追求性能修改。 |
安装类型
之后就是安装系统了,安装类型我是选择了标准 Ubuntu Server;不选 minimized,第三方驱动也是保持未勾选的
磁盘布局
出现这个已经说明了系统识别到我的 长城 256GB SSD,选择整盘安装到 Great_Wall_GW600_256GB;LVM 与 LUKS 均不勾选。由于商家是按照十进制标注的 256GB,Linux 是二进制显示的,因此显示的会有缩水。
分区摘要:约 1.049GB EFI/FAT32 + 约 237.422GB ext4 根分区
之后会进入用户账户的配置界面,自己按照提示设定就行。在 SSH Setup 界面中勾选 Install OpenSSH server;暂不导入外部 SSH identity。
安装推荐服务器软件
我选择的是都不勾选,因为我是静态 blog 的,我之后选择自己安装 Caddy 的,方便管理的
安装完成
顶部出现 installation complete! 说明安装成功了。之后选择 Reboot Now,出现提示后拔掉 Ubuntu 安装 U 盘,再按 Enter 进行重启。
之后输入账号密码就成功了
服务器基础设置
设置中国时区与系统更新
当前系统时间是 UTC,需要切换到中国标准时间。输入:
1 | sudo timedatectl set-timezone Asia/Shanghai |
看到<font style="color:#000000;">Time zone: Asia/Shanghai (CST, +0800)</font>说明时区设置成功
系统更新:
1 | sudo apt update |
安装基础工具并检查硬件
1 | sudo apt install -y \ |
查看相关硬件(这些忘拍照了,只能靠 AI 对话和记忆了):
1 | lscpu #查看 CPU |
开 ssh 与设置防火墙
1 | sudo ufw allow OpenSSH |
Blog 环境设置
Caddy 的安装流程(主要是 AI 辅助)
这一节是 Caddy 官方的 Ubuntu/Debian 安装流程,用于以后重装服务器。安装完成后,官方软件包会创建并启动名为 <font style="color:#000000;">caddy</font> 的 systemd 服务。
3.1 安装仓库依赖
1 | sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl |
安装 Debian/Ubuntu 软件仓库签名需要的 keyring 工具。
安装 HTTPS APT 支持和 <font style="color:#000000;">curl</font> 下载工具。
3.2 导入 Caddy 官方仓库签名密钥
1 | curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \ |
参数说明:
<font style="color:#000000;">-1</font>:要求 TLS 1.x。<font style="color:#000000;">-sS</font>:安静运行,但发生错误时仍显示错误。<font style="color:#000000;">-L</font>:跟随 HTTP 重定向。<font style="color:#000000;">-f</font>:HTTP 请求失败时返回非零状态。<font style="color:#000000;">gpg --dearmor</font>:把文本格式签名密钥转换成 APT 可使用的二进制 keyring。
3.3 添加 Caddy Stable 软件源
1 | curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \ |
作用是把 Caddy Stable 仓库配置写入 APT 软件源目录。
3.4 调整仓库文件读取权限
1 | sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg |
作用是确保 APT 的非 root 辅助进程能读取软件源和签名文件。
3.5 安装 Caddy
1 | sudo apt update |
安装好后当前的架构可以被抽象为:
1 | Internet |
官方安装文档:https://caddyserver.com/docs/install
固定 ip
我发现服务器每次重启内网 ip 都会变化,不易管理,因此需要固定下 ip,由于主包找不到当时的截图了,所以就用文字描述一下了。先在家中的路由器确认下管理员登录的网址(如 192.168.0.1),之后登录进去找到连接设备管理,之后就找到本服务器的 ip 之后选择固定 ip 就行了。
配置局域网 HTTPS
Hexo 在我 Windows 电脑上生成静态文件部署到 Ubuntu 这个目录下:
1 | /srv/lfischl-blog/current |
一开始Caddy 只监听 HTTP(/etc/caddy/Caddyfile 如下图所示)
1 | :80 { |
之后出现访问失败的问题,初次部署排查期间,浏览器访问当时的临时地址 <font style="color:#000000;">192.168.0.110</font> 曾出现 <font style="color:#000000;">ERR_EMPTY_RESPONSE</font>。这表示浏览器已连接到该地址,但当时的 Web 服务没有返回有效 HTTP 响应;它不是当前服务器的最终地址。因此得修改下 caddyfile
Caddyfile:
1 | /etc/caddy/Caddyfile |
内容:
1 | { |
验证结果:
1 | http://192.168.0.102/ -> 308 Permanent Redirect |
Caddyfile 的相关内容说明
skip_install_trust:
<font style="color:#000000;">skip_install_trust</font> 表示 Caddy 启动时不尝试把内部 CA 根证书自动写入 Ubuntu 系统信任库。
当 Caddy 作为 systemd 服务运行时,进程使用低权限的 <font style="color:#000000;">caddy</font> 用户。当初日志中出现过:
1 | failed to install root certificate |
这并不影响 Caddy 为站点签发证书和提供 HTTPS,只表示服务账户不能调用 <font style="color:#000000;">sudo</font> 修改 Ubuntu 的系统信任库。加入 <font style="color:#000000;">skip_install_trust</font> 后可以避免每次重载产生这类误导性日志。
局域网 IP:
<font style="color:#000000;">192.168.0.110</font>指定站点使用当前服务器的固定局域网 IP。因为写了具体主机地址,Caddy 会启用自动 HTTPS 和 HTTP 到 HTTPS 跳转。
证书:
<font style="color:#000000;">tls internal</font>表示使用 Caddy 自己的内部 CA 为 <font style="color:#000000;">192.168.0.110</font> 签发证书。
这是局域网 HTTPS,默认不会被其他电脑或手机信任。每台客户端都需要导入 Caddy 的 <font style="color:#000000;">root.crt</font>。只能分发根证书 <font style="color:#000000;">root.crt</font>,绝不能复制或泄露根 CA 私钥。Caddy 会自动续签短期叶证书,不需要手工更新。
官方说明:https://caddyserver.com/docs/caddyfile/directives/tls
https://caddyserver.com/docs/automatic-https
静态文件服务
1 | root * /srv/lfischl-blog/current |
<font style="color:#000000;">root * ...</font>:把所有请求的站点根目录设为 Hexo 构建目录。
<font style="color:#000000;">encode zstd gzip</font>:客户端支持时压缩响应,优先使用 Zstandard,也兼容 gzip。
<font style="color:#000000;">file_server</font>:启用静态文件服务器。
自定义错误页
1 | handle_errors { |
当 Caddy 处理请求时产生错误,将内部请求改写到 Hexo 生成的 <font style="color:#000000;">/404.html</font>,再把它作为静态文件返回。
证书相关
根证书在服务器上的位置
1 | /var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt |
Caddy 内部 CA 的数据和私钥位于 <font style="color:#000000;">/var/lib/caddy</font>。不要删除该目录,否则 Caddy 可能生成新的 CA,所有客户端都需要重新信任。
导入 Windows 当前用户信任库
1 | certutil.exe -user -addstore Root \ |
<font style="color:#000000;">-user</font>:只写入当前 Windows 用户的证书库,不修改计算机的全局证书库。
<font style="color:#000000;">-addstore Root</font>:添加到“受信任的根证书颁发机构”。
导入后需要完全关闭并重新打开 Chrome,浏览器才能稳定重新读取信任库。
日常维护命令清单
Caddy 状态
1 | systemctl status caddy --no-pager |
修改配置的安全流程
1 | sudo cp /etc/caddy/Caddyfile \ |
必须在 validate 成功后才 reload。
查看日志
1 | sudo journalctl -u caddy -f |
查看监听端口
1 | sudo ss -lntup | grep -E ':(80|443)\b' |
更新 Caddy
1 | sudo apt update |
回滚 Caddyfile
1 | # 查看备份: |
不要不加检查地使用“最新文件”,应先确认备份内容:
1 | sudo cat /etc/caddy/Caddyfile.bak-YYYYMMDD-HHMMSS |
公网访问
正在施工中……























