前排提示,不建议给稳定工作的 VPS 更换内核,很可能导致各种问题。
#前言以及介绍
还是这台 RackNerd 主机,别人都说这家的老板两年前曾经跑路,但我用了两个月感觉还行,即使明天跑路,我也不亏。这家的 LA DC-02 机房可以添加 ipv6,大概三个星期前我提交工单申请了一个 ipv6 地址,结果发现分配的 ipv6 不稳定,大部分时间无法连通,最近又听说了 WARP,很心动,就用 WARP 给这台 VPS 换个 ipv6 出口吧。
- WARP 是 Cloudflare 推出的,基于 WireGuard 的一项旨在保护隐私,加速(也可能减速)网速的服务;
- Cloudflare 是一家提供网络服务的公司,以免费的 CDN 而闻名。
- WireGuard 是一个新的,很厉害的 VPN 实现;
Linux 内核 5.6 已经集成了 WireGuard,据说 Debian 已经将这个模块整合到了 5.5。但是,没用。Debian 10 (Buster) 默认内核是 4.19 LTS。虽然可以通过模块或者软件在低版本 Linux 上运行,但是还是希望使用高版本的内核,来获得更自然的体验。
#准备
先使用开启 VNC 服务,以防万一。
SSH 在什么时候启动? VNC 在什么时候启动?
#过程
使用uname -r
可以查看当前的内核版本。
在 Debian 更新 Linux 内核,最方便的做法是使用 Debian Backports。 首先在源中添加 backports 仓库。
echo 'deb http://deb.debian.org/debian buster-backports main' |\
sudo tee -a /etc/apt/sources.list.d/backports.list
然后再更新一下,发现 backports 仓库的内容已经被检索到了。
sudo apt update
检索所有可能安装的 Linux 内核版本,好多,这里截取部分。
apt search linux-image
-
'bpo' 表示 backports
-
'rt' 表示 realtime
-
'dbg' 表示 debugging
这台 vps 显然不需要实时操作系统,也不需要调试,也不想安装一个未签名的内核,我选择了最新的针对 vps 的 -cloud 版(这里不应该选择这个版本的)。
sudo apt install linux-image-5.10.0-0.bpo.7-cloud-amd64
链接已经正确处理,grub 也自动 update 了,安装 headers
sudo apt install linux-headers-5.10.0-0.bpo.7-cloud-amd64
然后重启看看
sudo reboot
然后无法 ssh 到 vps 了 :(
马上 vnc 到 vps,幸亏提前开启了 vnc 。检查了一下,发现内核确实更新了,但是没有公网 ip 地址?不知道我是怎么 vnc 到 vps 的。
通过 grub 使用旧内核启动系统,删除 cloud 版内核。
sudo apt remove linux-image-5.10.0-0.bpo.7-cloud-amd64
sudo apt remove linux-headers-5.10.0-0.bpo.7-cloud-amd64
安装常规版本,重启
sudo apt install linux-image-5.10.0-0.bpo.7-amd64
sudo apt install linux-headers-5.10.0-0.bpo.7-amd64
sudo reboot
这次一切正常。
#收尾
删除被旧内核替换下来的旧旧内核,干净清爽。
sudo apt autoremove
关闭 vnc 服务,关闭不必要的端口。