在 2025 年更换手机号:一份检查单

近期电信忽悠家人办理了新的套餐,老的套餐不再使用。然而其依然在收取每月 10 元(共 5 个号码,合计 50 元)的保号费。虽然现在已有携号转网政策,但考虑到一来有人在携号转网后遭遇无法收到验证码短信等问题,二是电信声称:「如果要携号转网的话,需要五个号码一并转出,不能只转一个」。因此最终还是决定更换手机号码,而不采用携号转网的方案。

在此对相关操作进行记录,整理为检查单,以供日后查阅,亦可供他人参考。

此处仅记录需要注意更改手机号的平台列表及注意事项,不包含具体操作(其实也不记得了)。

阅读更多

使用 eBPF 追踪 VPS 流量使用情况

没错,现在是 2015 年 1 月 2 日。就在新年的第二天,我的 VPS 流量用完了。

我的 VPS 是每个月 1 日重置,也就是说才一天 VPS 就跑了整整 1TB 的流量。很奇怪到底是哪个进程在作妖,于是决定找一个方法来追踪 VPS 的流量使用情况。

追踪流量使用情况的软件有很多,比如 nthlogsvnstat。eBPF 是最近才出现的新技术,因为能够在内核空间运行,所以性能非常好。Linux 内核的计数器也能满足我的需求,因此我选择使用 eBPF 来追踪 VPS 的流量使用情况。

Linux 内核有几个计数器,能够按照进程统计流量的使用情况,包括:

  • netif_receive_skb
  • net_dev_queue
  • napi_gro_receive_entry
  • net_dev_xmit

只要在这几个地方插入 eBPF tracepoint,再定期打印出来即可。

阅读更多

在 NixOS 上启用 LUKS 根分区加密的自动解锁

NixOS Wiki 上的内容已经过时。因此使用 systemd-initrd 代替传统的 initramfs,以更好地安排启动顺序。

确保您已经通过下面的命令注册 LUKS 密钥:

1
cryptsetup luksAddKey /dev/disk/by-label/nixos-cryptroot /boot/luks.key

其中,/dev/disk/by-label/nixos-cryptroot 是您的 LUKS 加密分区,/boot/luks.key 是您的密钥文件。密钥文件应该放在一个不加密的分区中,以便在启动时自动解锁。如果您的分区方案不同,请相应地进行更改。

我的分区方案为:

1
2
3
4
sda
├─sda1 btrfs nixos-boot /boot
└─sda2 crypto_LUKS nixos-cryptroot
└─nixos-rootfs btrfs nixos-rootfs /nix/store

编辑 /etc/nixos/hardware-configuration.nix 文件:

阅读更多

构建自己的 LXC 镜像模板

Proxmox VE 中,除了虚拟机之外,也有基于 LXC 容器技术的虚拟化方案。Proxmox VE 提供了不少官方镜像,但是也可以根据自己的喜好定制镜像模板,以便更加快速部署,或是满足个人需求。

本文以 Debian 为例,为了创建 LXC 镜像,您需要有一台拥有 root 权限且安装 Debian 操作系统的机器,可以是虚拟机也可以是物理机,服务器版与桌面版均可,但不能是在容器中运行的 Debian。

注意

以下所有命令以 root 权限运行。如果您不是 root 用户,请使用 sudo -i 切换到 root 用户。

安装依赖

我们需要 debootstrap 来创建根文件系统,以及 zstd 来压缩镜像。

1
apt update && apt install debootstrap zstd

创建根文件系统

LXC 容器模板的本质是将 Linux 根文件系统 (/ 路径) 打包成一个 tar 文件并压缩,因此我们只需还原这个过程即可。

对于此,Debian 提供了一个叫做 debootstrap 的工具,可以帮助我们在指定目录下创建一个 Debian 根文件系统。其命令的格式为:debootstrap <release> <target path> <mirror url>

1
debootstrap bookworm ./rootfs http://deb.debian.org/debian/

上面的命令已经创建了一个最简单的 Debian 根文件系统,如果不需要自定义的话,可以直接将该目录打包、压缩、上传到 Proxmox VE 中,作为镜像使用。

阅读更多

在 Linux 下交换 Super (Win) 和 Ctrl 键位

起因是我在 MacOS 下使用 Karabiner-Elements 交换了 Command 和 Option 的位置,以符合 Windows 的操作习惯。而 UTM 虚拟机又做了一次转换,为了让 Linux 中的快捷键使用体验也与 Windows 一致,我需要在 Linux 中交换 Super (Win) 键和 Ctrl 键的位置。

本文仅对 Fedora 40 测试过,并在 Debian 12 下测试无效。

本文所述内容出于满足个人的小众需求,无法作为普适的解决方案。请酌情参考。

首先编辑 ~/.Xmodmap 文件,添加以下内容:

1
2
3
4
5
6
7
8
clear control
clear mod4
keycode 37 = Super_L
keycode 133 = Control_L
keycode 105 = Super_R
keycode 134 = Control_R
add control = Control_L Control_R
add mod4 = Super_L Super_R

然后执行以下命令:

1
xmodmap ~/.Xmodmap

此时可以测试交换是否生效。若生效,则可在 ~/.xinitrc 中添加上述命令,使其在 X11 启动时自动执行。

1
[ -f "$HOME/.Xmodmap" ] && xmodmap "$HOME/.Xmodmap"

参考:Harttle Land: ArchLinux 键盘映射:交换 CapsLock 和 Ctrl