duzhuo's-blog

学无止境

桥接器(network bridge),又称网桥,一种网络设备,负责网络桥接(network bridging)。桥接器将网络的多个网段在数据链路层(OSI模型第2层)连接起来(即桥接)。

网桥本质上就是一个二层(Layer 2)交换机的虚拟实现,根据 MAC 地址 来转发帧。它不会修改 IP 包,也不关心 IP 层的东西。

当你把多个网络接口(如物理网卡、虚拟 tap 接口等)“加入”到同一个 bridge 中时,它们就像都插在同一个交换机上

阅读全文 »

libguestfs 是一个 C 语言库和一套用于访问和修改虚拟机(VM)磁盘镜像的工具集。它能让管理员能够在不启动虚拟机的情况下直接操作磁盘内容,极大简化了虚拟化环境的管理工作。

本文以 Rocky-9-GenericCloud-Base-9.6-20250531.0.x86_64.qcow2 这个镜像为例,简单演示添加用户、修改密码、添加密钥、修改硬盘大小等常用功能。

阅读全文 »

为什么使用UUID

UUID (Universally Unique Identifier) 作为主键在数据库中有几个显著优势,特别是在 SQLite 中使用 BLOB 类型存储时:

UUID 的主要优势

  1. 全局唯一性
    • 几乎可以保证在不同时间、不同机器上生成的ID都是唯一的
    • 避免了分布式系统中的ID冲突问题
  2. 安全性
    • 比自增整数更难猜测,减少信息泄露风险
    • 适用于需要隐藏数据规模的场景
    阅读全文 »

Python中可能已经有很多类似模板字符串的东西,但都和 PEP 750 中的 string.templatelib 不一样

比如:string.Templatestring.Formatter/str.format()f-string%这种上古写法。

PEP 750中提到的Motivation中指出f-string的语法虽然方便,但经常会因为操作者处理SQL语句或者HTML文档时直接拼接导致出现安全漏洞。
(实话说这里确实挺抽象的。f-string没有任何问题,问题出在程序员没有对输入的内容进行预处理而直接拼接。)

>>> name = 'duzhuo'
>>> template = t'Hello,{name}'
>>> template
Template(strings=('Hello,', ''), interpolations=(Interpolation('duzhuo', 'name', None, ''),))
阅读全文 »

关于 column

在Linux中查看数据文本时总会出现可读性低的问题(比如 /etc/passwd),本文将介绍一个非常实用的工具叫做 column,它可以帮助我们将文本数据以整齐的列格式输出。

column 命令来自包含大量工具的软件包 util-linux,其中的工具涵盖了系统管理、文件操作以及硬件监控多个方面。

阅读全文 »
0%