跳到正文
Pulengba
返回

把吃灰的 NUC 8 改成家用小服务器

NUC 8 家用小服务器

今天把一台吃灰很多年的 NUC 8 重新翻了出来。

这台机器最早被我折腾成双系统,后来又装过黑苹果。最后变成了一个很尴尬的状态:机器里只剩 macOS,但必须插着 U 盘才能引导启动,不插 U 盘就黑屏。大概是旧的 Windows / OpenCore 引导残留还在,但我也懒得继续修了。

最近想学习Linux、服务器相关的知识,反正里面没有任何需要保留的资料,干脆清空重来,把它改成一台家用 Linux 小服务器。

系统选择

我的目标是通过折腾,学习服务器最基础的东西:Linux、SSH、Docker、网络、服务部署。服务器就应该先像服务器一样跑起来,所以选择了安装新手友好的系统:

Ubuntu Server 26.04 LTS

原来那个能引导 macOS 的 U 盘被我直接重做成 Ubuntu 安装盘。既然已经决定清空旧系统,这一步也没什么心理负担。

Ubuntu 下载页里还出现了 Ubuntu Pro 的提示,我一开始以为是不是另一个系统。后来确认它只是 Ubuntu 的增强订阅服务,不影响普通 Ubuntu Server 安装。个人学习和家用服务器阶段,普通 LTS 就够了。

装完之后

Ubuntu Server 装好之后,机器就从一台“必须插 U 盘才能启动的奇怪黑苹果”变成了一台真正可以远程管理的小服务器。

我做了几件基础配置:

  1. 开启并使用 SSH,从 Windows / Mac 远程登录。
  2. 安装 Docker 和 Docker Compose。
  3. hello-world 验证 Docker 是否能正常拉镜像和运行容器。
  4. 跑了一个 Nginx 容器,确认局域网里可以通过浏览器访问服务。
  5. 让 NUC 进入无显示器、无键鼠的 headless 使用方式。

到这一步,它就像一台放在角落里的服务器了。只要不断电、不手动关机,Ubuntu Server 默认就会一直运行。

我在别的电脑上 SSH 进去操作就行。

最大的坑:网络

真正折腾的地方不是安装 Ubuntu,而是 Docker 网络。

我人在中国大陆,Docker 官方源和 Docker Hub 访问都不太稳定。过程中遇到过这些问题:

download.docker.com 连接失败
registry-1.docker.io 超时
Docker 默认走 IPv6 后拉镜像失败
镜像源 DNS 解析失败

一开始看到一堆 no installation candidatei/o timeoutno such host,很容易误以为是 Docker 装坏了。

后来一步步拆开看,问题其实主要在网络:

最后通过配置国内镜像,Docker 跑通,至此这台 NUC 具备了部署服务的基础能力。

然后又装了 Portainer,一个 Docker 可视化面板。可以在浏览器里直观看到容器、镜像、网络和卷的状态。对我这种刚开始学 Docker 的人来说,比全靠命令行记状态要友好很多。

Portainer 容器管理界面

一个低级但真实的 SSH 小插曲

还有一个很离谱的小插曲。

我的 NUC 和 Windows 台式机都是网线连接。Windows 通过 SSH 访问 NUC 一切正常,但我换到 Mac 上访问时,却一直报:

Connection closed by 198.168.1.9 port 22

奇怪的是,Mac 又可以通过浏览器打开 NUC 上部署的网页,所以我第一反应是:网络应该是通的,但 SSH 出了问题。

我先截图问了豆包。它怀疑是路由器 AP 隔离、防火墙或者 SSH 服务配置问题,还让我去服务器上查 SSH 日志。我照着排查了一圈,日志里却显示 no entries。再次追问后,它又给了一堆配置项让我继续查。

我懒得继续折腾,就把同样的问题问了 ChatGPT。这次没有拍照,而是直接复制了报错文本。

结果 ChatGPT 一眼指出来:

你写的是 198.168.1.9,不是 192.168.1.9。

汗。

这件事给我的提醒是:用大模型排障,模型能力当然重要,但输入质量也很重要。能复制文字就不要只拍图;必须截图时,也要保证关键报错足够清楚。不然一个最简单的 IP 打错,都可能被带着绕一大圈。

固定 IP 和公网访问

NUC 初次连接网络,当前在局域网里的 IP 是:

192.168.1.9

ChatGpt 推荐我装完系统后第一件事就是给 NUC 固定 IP,推荐去路由器后台做 DHCP 静态绑定,但路由器账号密码早就忘了,也不想重置路由器,因为家里一堆设备都要重新连 Wi-Fi。

所以使用了退而求其次的思路:不动路由器,直接在 Ubuntu 里用 Netplan 固定静态 IP。

公网访问这件事也想过。比如端口转发、Cloudflare Tunnel、Tailscale 都可以。但我现阶段只是学习服务器基础,并不是真的需要把服务暴露到公网。

局域网已经足够练习:

等这些东西熟了,再买云服务器或 VPS,其实只是把机器从“家里的 NUC”换成“云厂商机房里的服务器”。Linux、SSH、Docker、Nginx 这些核心知识都是通用的。

第一个真实需求

折腾到最后,我还发现了一个真实痛点:我经常需要在 Windows 电脑和 Mac 电脑之间复制粘贴一些文本。

以前是用微信、文件、笔记软件来回倒,挺麻烦。现在有了这台 NUC,就可以在局域网里部署一个网页笔记或剪贴板服务。

目前使用了 Memos 这类轻量自托管应用。用 Docker 部署,浏览器打开就能写文本、保存,再从另一台电脑打开复制出来。

Memos 局域网笔记服务

这比单纯跑一个 Nginx 测试页有意义多了,真的解决了我自己的一个小问题。

后面准备学什么

这次折腾之后,我对这台 NUC 的定位更清楚了:

一台局域网里的服务器实验室

后面准备按这个顺序慢慢学:

  1. Linux 基础命令、文件系统和权限。
  2. SSH、systemd、日志和进程管理。
  3. IP、网关、DNS、端口这些网络基础。
  4. Docker 和 Docker Compose。
  5. Nginx 反向代理。
  6. 基础安全:用户权限、防火墙、密钥登录、备份。
  7. 最后再迁移到 VPS 或云服务器。

以前这台 NUC 放着也是吃灰。现在它至少变成了一个能让我随便试错的 Linux 环境。

挺好。



下一篇
我给博客写了一个命令行工具