news 2026/4/27 14:45:20

闲置笔记本改造成 Ubuntu 开发测试服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
闲置笔记本改造成 Ubuntu 开发测试服务器

闲置笔记本改造成 Ubuntu 开发测试服务器

最近把一台闲置的戴尔灵越 5580 改造成了家用开发测试服务器。目标很简单:旧电脑放在家里长期运行,通过 Windows 主力电脑远程连接,用 Docker 部署一些测试服务、数据库、接口环境和练习项目。

这次没有一上来选择 Ubuntu Server,而是选择了Ubuntu Desktop 26.04 LTS。原因是家里只有 Wi-Fi,而且我是第一次完整搭 Linux 服务器,桌面版连接 Wi-Fi、调整电源设置、排查问题都更直观。

一、硬件情况

旧电脑配置大致如下:

型号:Dell Inspiron 5580 内存:约 12GB 硬盘 0:1TB HDD,原 Windows 系统盘,包含 C/D/E 硬盘 1:120GB SSD,原 F 盘 网络:家里只有 Wi-Fi 主力电脑:Windows

一开始查看任务管理器时发现,Windows 系统主要装在机械硬盘上,HDD经常 100%,这也是电脑明显卡顿的主要原因之一。

最终决定:

Ubuntu 安装到 120GB SSD 1TB HDD 上的 Windows 和原数据尽量保留

二、制作 Ubuntu 启动 U 盘

准备工具:

Ubuntu Desktop 26.04 LTS ISO Rufus 32GB U 盘

Rufus 参数选择:

分区类型:GPT 目标系统:UEFI(非 CSM) 文件系统:FAT32 持久分区:0

这里有一个坑:第一次使用ISO 镜像模式写入后,Windows 可以正常打开 U 盘,但旧电脑的 F12 启动菜单里一直看不到 U 盘启动项。

后来用 Rufus 重新写入,并选择DD 镜像模式,旧电脑才成功识别出启动项:

UEFI: VendorCoProductCode 2.00, Partition 2

经验总结:

如果 U 盘在 Windows 能打开,但 BIOS/F12 不显示启动项,可以尝试 DD 镜像模式。 如果仍然不行,换一个 U 盘通常更快。

三、BIOS 与 BitLocker 问题

旧戴尔电脑:

F12:进入启动菜单 F2:进入 BIOS

BIOS 里确认过:

USB Boot Support:开启 Enable External USB Port:开启 Boot List Option:UEFI Secure Boot:保持开启

中途曾尝试关闭Secure Boot,结果 Windows 触发了 BitLocker 恢复:

这个现象不是系统坏了,而是 Windows 检测到启动安全环境变化后,触发了 BitLocker 保护。后来重新进入 BIOS,把Secure Boot打开,Windows 就恢复正常了。

这次安装 Ubuntu 后面没有再关闭 Secure Boot。

四、安装 Ubuntu 到 SSD

进入 Ubuntu 安装器后,前面几项大致这样选:

语言:English 安装方式:Install Ubuntu 安装类型:Interactive installation 应用选择:Default selection 第三方驱动和媒体格式:勾选 时区:Asia/Shanghai

到了磁盘页面时,不能直接选Erase disk and install Ubuntu,因为电脑里有两块硬盘,选错就可能清掉原 Windows 盘。

所以选择:

Manual installation


在分区页面看到的磁盘大致是:

sda = 1TB HDD,原 Windows 盘,不能动 sdb = 120GB Netac SSD,Ubuntu 安装目标盘 sdc = 31GB U 盘,安装介质

最终分区结果:

sdb1:VFAT,104MB,挂载 /boot/efi,不格式化 sdb2:Ext4,约 119GB,挂载 /,格式化 Boot loader installation:sdb Netac SSD 120GB

安装确认页中重点看这些信息:

Type of installation:Manual installation Installation disk:Netac SSD 120GB sdb sda1:Unchanged

确认没有格式化sda后,再点击安装。

安装完成后点击Restart now,并按提示拔掉 U 盘。

五、开启 SSH 远程连接

进入 Ubuntu 后,先更新系统并安装 SSH。

sudoaptupdate

意思:更新软件源信息。

sudoaptupgrade-y

意思:升级已安装软件,-y表示自动确认。

sudoaptinstallopenssh-server-y

意思:安装 SSH 服务,让 Windows 可以远程连接 Ubuntu。

sudosystemctlenable--nowssh

意思:设置 SSH 开机自启,并立即启动 SSH 服务。

一开始我误输入了:

aptupdate

结果报权限错误:

Permission denied

原因是更新系统需要管理员权限,前面必须加sudo

查看服务器 IP:

ipa

当时 Wi-Fi 地址是:

192.168.x.xx

Windows 上可以连接:

ssh server@192.168.x.xx

六、使用 dev-server.local 代替固定 IP

因为路由器不是自己的,不方便做 DHCP 静态绑定,所以没有在路由器里固定 IP。

后来测试发现 Windows 可以解析主机名:

ping dev-server.local

所以后续优先使用:

dev-server.local

MobaXterm、VS Code Remote SSH 都可以直接用这个主机名连接:

Host:dev-server.local Username:server Port:22

这样即使路由器以后给服务器分配了新的 IP,只要局域网主机名解析正常,就不用重新记 IP。

七、安装 MobaXterm 和 VS Code Remote SSH

MobaXterm 用来日常管理服务器:

保存 SSH 连接 自带 SFTP 文件管理 可以拖拽上传文件 多标签终端方便看日志

VS Code Remote SSH 用来远程开发。连接成功后,VS Code 左下角会显示:

SSH: dev-server.local

这表示 VS Code 当前已经连到 Ubuntu 服务器,内置终端执行的命令也是在服务器上执行。

八、安装 Docker 和 Docker Compose

一开始尝试 Docker 官方安装脚本:

curl-fsSLhttps://get.docker.com|sudosh

意思:下载 Docker 官方安装脚本,并用管理员权限执行。

但中途遇到:

curl: (35) Recv failure: Connection reset by peer

原因是访问download.docker.com不稳定。解决办法是改用国内镜像源,比如清华源。

安装完成后,执行:

sudousermod-aGdockerserver

意思:把server用户加入docker用户组。这样以后可以不加sudo直接执行 Docker 命令。

sudoreboot

意思:重启系统,让用户组变更生效。

重启后验证:

docker--versiondockercompose version

继续测试:

dockerrun hello-world

意思:运行 Docker 官方测试镜像。如果能看到Hello from Docker!,说明 Docker 可以正常拉取镜像、创建容器并运行。

九、运行第一个 Nginx 服务

先用单条命令测试:

dockerrun-d--namenginx-test-p8080:80 nginx

命令含义:

docker run:运行容器 -d:后台运行 --name nginx-test:容器名叫 nginx-test -p 8080:80:服务器 8080 端口映射到容器 80 端口 nginx:使用 nginx 镜像

Windows 浏览器访问:

http://dev-server.local:8080

如果能看到 Nginx 欢迎页,说明旧笔记本已经可以作为局域网 Web 服务器提供服务。

十、配置合盖不断网

笔记本当服务器,合盖后不能休眠,否则 SSH 会断、服务也会停。

先在 Ubuntu 图形设置里关闭自动休眠:

然后编辑系统配置:

sudonano/etc/systemd/logind.conf

意思:用管理员权限编辑系统登录管理配置。

增加或修改:

HandleLidSwitch=ignore HandleLidSwitchExternalPower=ignore HandleLidSwitchDocked=ignore

含义:

HandleLidSwitch=ignore:合盖时忽略,不休眠 HandleLidSwitchExternalPower=ignore:插电时合盖也不休眠 HandleLidSwitchDocked=ignore:外接设备时合盖也不休眠

重启相关服务:

sudosystemctl restart systemd-logind

意思:重启登录管理服务,让配置生效。

最后用 Windows 持续 ping:

ping dev-server.local

合盖后仍能 ping 通,说明网络没有断。

十一、用 Docker Compose 部署一个小网页

创建项目目录:

mkdir-p~/projects/nginx-democd~/projects/nginx-demo

意思:

mkdir -p:创建目录,存在也不报错 cd:进入目录

创建index.html

<!doctypehtml><htmllang="zh-CN"><head><metacharset="utf-8"><title>dev-server</title></head><body><h1>Hello from dev-server</h1><p>这是我的旧笔记本服务器。</p></body></html>

创建compose.yaml

services:web:image:nginx:latestcontainer_name:nginx-demoports:-"8080:80"volumes:-./index.html:/usr/share/nginx/html/index.html:rorestart:unless-stopped

含义:

services:定义服务 web:服务名 image:使用 nginx 镜像 container_name:容器名 nginx-demo ports:服务器 8080 端口映射到容器 80 端口 volumes:把本地 index.html 挂载到 Nginx 默认首页 restart: unless-stopped:除非手动停止,否则重启后自动恢复

启动服务:

dockercompose up-d

意思:根据compose.yaml后台启动服务。

查看状态:

dockercomposeps

意思:查看当前 Compose 项目的容器状态。

浏览器访问:

http://dev-server.local:8080

成功看到自定义页面后,这台旧笔记本就完成了从“闲置电脑”到“局域网开发测试服务器”的最小闭环。

十二、当前成果

目前已经完成:

Ubuntu Desktop 26.04 LTS 已安装 默认启动 Ubuntu Wi-Fi 可用 SSH 开机自启 MobaXterm 可远程管理 VS Code Remote SSH 可远程开发 Docker 可用 Docker Compose 可用 合盖不断网 可以通过 dev-server.local 访问 局域网 Web 服务可访问

十三、后续可以继续做什么

后续可以继续扩展:

安装 Dozzle:浏览器查看 Docker 容器日志 部署 MySQL / PostgreSQL / Redis:作为开发测试数据库 配置 Samba:让 Windows 直接访问 Ubuntu 文件夹 搭建 Gitea:轻量级 Git 代码仓库 搭建 Jenkins / Runner:做自动化测试或 CI 配置 Tailscale:外网安全访问家里的服务器 继续学习 Docker Compose:部署多服务项目

这次最大的收获是:旧笔记本不一定只能闲置。只要装好 Ubuntu、SSH 和 Docker,就可以变成一台很实用的开发测试服务器。

最重要的是先完成最小闭环:

能远程连 能跑容器 能在浏览器访问服务 能合盖稳定运行

完成这个闭环后,数据库、测试平台、自动化服务都可以慢慢往上加。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 14:44:25

如何用 AI 工具快速写完继续教育论文文献综述|函授 / 成教 / 自考通用

对于继续教育、函授、成教、自考同学来说&#xff0c;文献综述是论文最难、最耗时间的环节&#xff1a;不会找文献、不会梳理研究现状、不知道怎么分类整合、复制粘贴容易查重超标、写出来逻辑混乱。用好AI 全流程工具&#xff0c;可以从零快速产出合规、分段清晰、贴合专业、查…

作者头像 李华
网站建设 2026/4/27 14:42:24

在Windows电脑上免费实现AirPlay 2投屏接收的完整解决方案

在Windows电脑上免费实现AirPlay 2投屏接收的完整解决方案 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win Airplay2-Win是一个开源项目&#xff0c;让Windows电脑变身为完整的AirPlay 2接收器&#xff…

作者头像 李华
网站建设 2026/4/27 14:42:21

如何快速解决魔兽世界字体乱码问题:终极字体合并工具使用指南

如何快速解决魔兽世界字体乱码问题&#xff1a;终极字体合并工具使用指南 【免费下载链接】Warcraft-Font-Merger Warcraft Font Merger&#xff0c;魔兽世界字体合并/补全工具。 项目地址: https://gitcode.com/gh_mirrors/wa/Warcraft-Font-Merger 还在为魔兽世界聊天…

作者头像 李华
网站建设 2026/4/27 14:42:20

TikTokDownload:3分钟掌握抖音去水印与批量下载的完整指南

TikTokDownload&#xff1a;3分钟掌握抖音去水印与批量下载的完整指南 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 还在为无法保存无水印的抖音视频而烦恼吗…

作者头像 李华