给旧电脑装上KVM + Cockpit,当服务器用

该文章用到frp-panel做内网穿透,如需复刻,在局域网环境或者服务器有公网即可忽略。如果你和我一样的情况,服务器在内网、且需要在公网上能访问,也可以用其他工具实现

自从搬家回老家后,我的rk3588小服务器也就在重庆的仓库闲置了,孩子就成了没服务器要的“野人”。做项目也时常会想念以前拥有实体服务器的日子。

回家一段时间后,脑子里突然想起,家里是不是还有一台闲置的电脑来着?得知确实有之后,就给翻出来了,接上显示器和键鼠、上电、开机、打开图吧工具箱,于是看到如下配置:

处理器:英特尔酷睿i3-10105 @ 3.70GHz 四核

内存:8GB DDR4 2666MHz

硬盘:KINGSTON SNV2S250G(250GB)

妥妥的个人轻量服务器配置!

确认没有重要信息之后,就开始重装系统了。

安装Debian13.3.0

这次U盘不在身边,但又懒得去折腾不要U盘的方案,于是采用tf卡+读卡器的组合做个临时U盘。

打开https://debian.org*,因为是有网络的环境,于是直接选择*64-bit PC netinst iso的方案,下载。

接下来是漫长的等待......等待太漫长了,忍不住打开https://mirrors.ustc.edu.cn/debian-cd/13.3.0/amd64/iso-cd,从这里下载镜像。

有了镜像站的加持后,下载速度就快多了,接下来通过Rufus烧录镜像到U盘。

烧录完成后,经查询 主板型号是技嘉 H410M K,关机,再开机,并狂按F12。等开机页出现后,选择U盘作为启动盘。

接下来就是漫长的安装系统步骤。

语言:英语;地区:其他-亚洲-中国...

磁盘分区:自动使用整个硬盘;选中内置硬盘;所有内容都放在一个分区中...

不匿名汇报软件包统计信息...

取消Debian桌面环境、取消GNOME、开启SSH server...

输入主机名、输入root密码、创建新的用户...

经过重启后,新系统就安装好了。

安装Docker

安装docker的目的是,为了后续能运行frp-panel,以实现ssh等服务的内网穿透。如果没有穿透的需求,可以跳过这三章。(其实现在想来并不是很有必要,毕竟后续大多数操作都是在虚拟机中运行的,frp-panel用systemd运行就可以了...)

开机后,输入前面创建的新用户的账户和密码,输入命令su -,并输入root用户密码,切换到root用户。

注意这里 su - 的 - 不要掉了,不然 su 只会切换身份,不会应用root用户的path,导致sbin目录下的命令无法直接使用

接下来是更新软件索引和安装基础工具:

bash
apt update apt install -y sudo apt-transport-https ca-certificates curl gnupg lsb-release

对的,这个操作系统精简到 sudo 都得安装才会有 : )

下一步添加docker gpg和docker apt源:

bash
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian trixie stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

再接下来更新索引、安装docker:

bash
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

最后启动docker:

bash
sudo systemctl enable --now docker

至此,docker就算安装好了(大陆地区可能还需额外配置docker镜像,这里我有透明代理,就懒得配置了)

创建Frp-Panel Client

接下来,去到frp-panel Master的webui,创建客户端、修改配置 -> 将客户端与服务端绑定。

然后前往frp-panel的部署页,复制:

yaml
version: '3' services: frp-panel-client: image: vaalacat/frp-panel container_name: frp-panel-client network_mode: host restart: unless-stopped command:

接下来前往webui复制该客户端启动命令,例如./frp-panel client -s abc -i user.c.client1 --api-url http://frpp.example.com:9000 --rpc-url grpc://frpp-rpc.example.com:9001,去掉开头的./frp-panel,将剩下填充在上述command字段中,并把总体复制,放在新系统的任意一个目录(我选的/root/frp-panel/client/)的docker-compose.yaml文件里。

最后前往该目录,输入命令docker compose up -d等待一小会儿,就能在Master的webui中看到该客户端上线了。

远程SSH

前往frp-panel Master的webui,添加隧道:类型tcp、本地端口22、本地ip 127.0.0.1、远程端口随意,但需要远程端口可用。

接下来进行测试,打开终端输入ssh 创建的用户名@frp服务器地址 -p 远程端口接下来输入该用户的密码。

连接成功!这下就提供了外部网络访问的通道!只要主机有网有电且开机、frp服务器没问题,就可以在世界各地愉快的连上主机了!

安装KVM + libvirt

依旧root用户,先安装

bash
apt install -y \ qemu-kvm \ libvirt-daemon-system \ libvirt-clients \ virtinst \ bridge-utils \ cpu-checker

安装完成后,输入kvm-ok返回INFO: /dev/kvm exists KVM acceleration can be used

接下来启动输入systemctl enable libvirtd --now并通过virsh list --all验证 libvirt,不报错。

安装Cockpit

通过:

bash
apt install -y cockpit cockpit-machines systemctl enable cockpit.socket --now

安装并启用,接下来就可以通过https://宿主机IP:9090访问了!但是我不在宿主机旁边,它也没公网,所以我还得开个内网穿透服务。如果能直接访问就可以跳过这个步骤了:创建frp隧道,类型tcp,本地端口9090,ip依旧127.0.0.1。创建完成后,通过https://frp公网地址:frp外部端口访问即可。

注意这里访问得用https,否则会出现连接不上的问题。

我这里还用OpenResty做了反向代理,一来是方便用更好记的域名代替ip+端口的方式访问、二来是可以避免cockpit自签证书导致浏览器不信任的问题。对了!反代的目标地址也一定要用https,用http也会出问题!


接下来访问cockpit,输入刚装好的系统的账户密码,注意使用普通用户登陆,不建议用root。

登陆后还会有一个Warning alert:Web console is running in limited access mode.的提示,点一下右侧的开启权限按钮,输个登陆用户的密码就完事了~

图片

到这里,就算是搭建完成了~现在也算是拥有自己的x86独立服务器了

此章完结~(下一章可能会开新坑,开个虚拟机,把博客CICD搭建上去)

给旧电脑装上KVM + Cockpit,当服务器用 - 特恩的日志