news 2026/9/7 17:58:39

KVM虚拟化实战指南:从硬件切换器到虚拟机全流程配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
KVM虚拟化实战指南:从硬件切换器到虚拟机全流程配置

最近在社群里被问得最多的技术词,绕不开“KVM”。有的人问“通过KVM给服务器做系统到底怎么操作”,有的人问“KVM 的 guest OS 是用来做什么的”,还有人卡在“KVM 内外剪贴板互通”“KVM 链接服务器全屏无法缩小”这些细节上。同一个词,问出来却往往指向两种完全不同的东西:一种是数据中心里的硬件切换器,另一种是 Linux 内核级的虚拟化方案。这篇文章就把这两条线都讲清楚,并以虚拟化 KVM 为主线,带你把环境搭建、系统安装、剪贴板互通、UEFI 引导、全屏显示这些高频问题完整过一遍。不管你是第一次听说 KVM 的新手,还是已经上手但总被某个细节卡住的老开发,这份笔记都值得收藏备用。

1. 背景与核心概念:先分清两种 KVM

KVM 这个缩写非常容易引起误会,因为它在 IT 领域同时指代两种东西:

  • 硬件层的 KVM 切换器:Keyboard(键盘)、Video(显示器)、Mouse(鼠标)三个英文单词的首字母。它是一台物理设备,让运维人员用一套键鼠显示器控制多台服务器。
  • 虚拟化层的 KVM:Kernel-based Virtual Machine 的缩写,即基于内核的虚拟机。它是 Linux 内核自带的开源虚拟化模块,可以把一台物理机拆成多台虚拟机。

先理解这个差异,后续看到“KVM 登录密码”“KVM 切换器”这类问题就不会和虚拟化概念混在一起了。

1.1 KVM 硬件切换器是什么

KVM 切换器通常出现在机房或服务器机柜里。服务器一般放在机架上,如果每台服务器都配一套键盘、鼠标、显示器,机房里会堆满线缆,操作起来也非常麻烦。KVM 切换器解决的就是这个问题:它把多台服务器的视频信号、键盘鼠标信号集中到一个控制端,按一下按钮或者通过 OSD 菜单,就能在不同服务器之间切换操作。

更高级一点的叫 KVM over IP,也就是通过 IP 网络远程控制服务器的键盘、鼠标和屏幕,机房运维人员不需要站在机器前面,在办公室通过网络就能给服务器装系统、改 BIOS、排查启动故障。“通过 KVM 给服务器做系统”这个热搜词,很多时候指的就是这种场景。

类型全称作用常见品牌
本地 KVM 切换器Keyboard Video Mouse用一套键鼠显示器控制多台本地服务器ATEN、D-Link、Reton
远程 KVMKVM over IP通过网络远程控制服务器的键盘鼠标和屏幕ATEN、Raritan、Avocent

这类设备有独立的登录界面和账号体系,所以网上会有人问“ATEN KVM 登录密码是什么”。不同型号的默认密码并不统一,而且很多机房设备在上线前已经被管理员修改过默认密码,指望一个“万能默认密码”走天下是不现实的,后面排错章节会专门说这个问题。

1.2 KVM 虚拟化是什么

KVM 虚拟化则是另一条完全不同的技术线。它是 Linux 内核提供的一个虚拟化模块,从 Linux 2.6.20 开始被合入内核主线。KVM 模块加载后,Linux 内核本身相当于一个 Hypervisor(虚拟机监控器),可以把 CPU、内存、磁盘等物理资源虚拟化,供多台虚拟机同时使用。

KVM 本身只负责 CPU 虚拟化和内存虚拟化,完整的虚拟机还需要 QEMU 来模拟网卡、磁盘、USB 等设备,所以平时我们说的“KVM 虚拟化”通常指的是 KVM + QEMU 的组合。管理工具上,既可以用命令行工具virshvirt-install,也可以用图形化工具virt-manager。生产环境中还会搭配 Libvirt 这个 API 层来做统一管理。

KVM 之所以受欢迎,核心优势有几点:

  • 它是 Linux 内核原生模块,不需要额外安装独立的 Hypervisor 系统。
  • 开源免费,商业支持也很完善。
  • 性能接近物理机,因为虚拟机直接使用硬件虚拟化扩展。
  • 生态成熟,OpenStack、Proxmox VE 等云平台底层都大量使用 KVM。

1.3 guest OS 到底是什么

搜“KVM 的 guest OS 是用来做什么的”,其实是在问虚拟化里的“客户机操作系统”概念。在 KVM 虚拟化架构里:

  • host(宿主机):物理安装并运行 KVM 模块的 Linux 系统。
  • guest(客户机)或 guest OS:运行在虚拟机里的操作系统。guest OS 可以是 CentOS、Ubuntu、Windows、Debian 等任何一种受支持的系统。

guest OS 和其他普通操作系统一样跑自己的内核、起自己的服务,但它感知不到自己是被虚拟化出来的,也不会直接操作物理硬件。它发出的指令由 KVM 和 QEMU 转发、翻译,最终落到物理 CPU、内存和存储上。也就是说,guest OS 就是你在虚拟机里安装的那个系统,它和宿主机上的 OS 是隔离的,彼此互不影响。宿主机崩溃,未必会立刻影响 guest OS 的运行;guest OS 中毒或者崩溃,宿主机和其他虚拟机也可以保持正常。

1.4 两种 KVM 的常见混淆场景

很多人搜索“KVM”,其实是带着具体问题来的:

  • 搜“通过 KVM 给服务器做系统”:可能是用硬件 KVM 切换器给物理机做系统,也可能是用虚拟化 KVM 新建一个虚拟机来装系统。
  • 搜“KVM 内外剪贴板互通”:一定是虚拟化场景。VMware 里的“无缝复制粘贴”,在 KVM 虚拟机里也可以实现。
  • 搜“KVM 链接服务器全屏无法缩小”:既可能指 virt-manager 里虚拟机窗口分辨率适配问题,也可能指 KVM over IP 远程控制台全屏后无法缩放。
  • 搜“KVM UEFI 固件下载”:指的是虚拟化 KVM 引导虚拟机时需要的 OVMF 固件。

所以,遇到问题先确定自己用的是哪一种 KVM,排查方向才不会跑偏。接下来文章的主体内容将围绕虚拟化 KVM 展开,在对应位置补充硬件 KVM 的注意事项。

2. 环境准备:搭建 KVM 虚拟化基础环境

要亲手实践,先准备一台带虚拟化能力的 Linux 服务器。版本需要根据你的项目实际情况调整,本文以常见的 CentOS Stream / Rocky Linux 环境为例,重点演示配置思路,Ubuntu/Debian 的包管理器对应替换即可。

2.1 硬件要求

KVM 依赖 CPU 的硬件虚拟化扩展:

  • Intel CPU 需要支持 VT-x。
  • AMD CPU 需要支持 SVM(AMD-V)。

绝大多数服务器 CPU 都支持,但部分云主机、低功耗小主机可能没有开放嵌套虚拟化,需要在 BIOS 或者云厂商控制台里确认。

内存方面,宿主机至少预留 4GB 以上给系统本身使用,再根据你要运行的 guest OS 分配内存。磁盘建议使用独立分区或逻辑卷,方便后续快照和扩容。

2.2 检查 CPU 虚拟化支持

在宿主机上执行以下命令确认 CPU 虚拟化是否可用:

grep -E "(vmx|svm)" /proc/cpuinfo

如果输出中包含vmx,说明是 Intel CPU 且已开启 VT-x;如果包含svm,说明是 AMD CPU 且已开启 SVM。没有任何输出,说明虚拟化功能未开启或 CPU 不支持。

更直观的方式是使用virsh检查,安装后执行:

virsh check

也可以查看/dev/kvm设备是否存在:

ls -l /dev/kvm

如果看到crw-rw-rw-或者其他读写权限的/dev/kvm,说明 KVM 模块已经可以工作。

2.3 安装 KVM 及管理工具

在 Rocky Linux / CentOS Stream 上安装 KVM、QEMU 和相关管理工具:

dnf install -y qemu-kvm libvirt virt-install virt-manager bridge-utils

在 Ubuntu / Debian 上对应安装:

apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst virt-manager bridge-utils

安装完成后,启动 libvirtd 服务并设置为开机自启:

systemctl enable --now libvirtd

检查运行状态:

systemctl status libvirtd

看到active (running)说明服务正常。

如果本机默认用户是普通用户,执行virsh list --all提示连不上 libvirt,可以把用户加入libvirt用户组,重新登录再试:

usermod -aG libvirt username

2.4 验证虚拟化环境

创建第一台测试虚拟机前,可以先检查网络的默认状态:

virsh net-list --all

KVM 安装后默认会创建一个default虚拟网络,NAT 模式对外通信。如果没有 active,启动它:

virsh net-start default virsh net-autostart default

至此,环境准备完成。接下来进入最核心的部分:用它给服务器“做系统”。

3. 核心操作:通过 KVM 给服务器做系统

新建 KVM 虚拟机并安装操作系统,本质上有两条路径:图形化工具virt-manager适合学习和临时调试,命令行工具virt-install适合脚本化和批量部署。

3.1 图形化方式 virt-manager 创建虚拟机

如果宿主机桌面环境或 SSH X11 转发可用,可以直接启动virt-manager

virt-manager

在图形界面中点击“新建虚拟机”,选择本地 ISO 镜像或者网络安装源,然后按向导设置内存、CPU 和磁盘即可。

这种方式胜在直观,创建虚拟机过程中的每一步都有可见确认,适合新手第一次熟悉 KVM 的虚拟机创建流程。但生产环境通常没有图形界面,更多时候依赖命令行工具。

3.2 命令行方式 virt-install 创建虚拟机

假设你已经有一个 Linux 发行版的 ISO 镜像放在 /data/iso 目录下,下面这个命令创建一个名为centos-test的虚拟机,分配 2 核 CPU、4GB 内存、50GB 磁盘:

virt-install \ --name centos-test \ --memory 4096 \ --vcpus 2 \ --disk path=/data/kvm/centos-test.qcow2,size=50,format=qcow2 \ --cdrom /data/iso/CentOS-Stream-9-latest-x86_64-dvd1.iso \ --os-variant centos-stream9 \ --network network=default \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole

参数说明:

  • --name:虚拟机名称,后续管理都会使用这个名字。
  • --memory:分配给虚拟机的内存,单位 MB。
  • --vcpus:虚拟 CPU 数量。
  • --disk:磁盘路径、大小和镜像格式,推荐使用 qcow2,支持快照和按需分配空间。
  • --cdrom:挂载的安装 ISO。
  • --os-variant:操作系统类型,它会自动优化默认配置。
  • --network:网络模型,default是前面启动的 NAT 网络。
  • --graphics vnc:开放 VNC 远程显示,方便接显示器画面。
  • --noautoconsole:创建后不自动打开控制台。

如果不知道--os-variant应该填什么,可以用osinfo-query os查询支持的系统列表:

osinfo-query os | grep centos

3.3 UEFI 固件下载与启用

默认安装虚拟机时,KVM 模拟的是传统 BIOS 引导。如果要安装 Windows 11,或者某些只支持 UEFI 引导的操作系统,需要给虚拟机指定 UEFI 固件。

这个“UEFI 固件”在 KVM 中通常就是 OVMF(Open Virtual Machine Firmware)。它在包管理器里就能安装:

dnf install -y edk2-ovmf

Ubuntu / Debian 安装:

apt install -y ovmf

安装完成后,查看固件路径:

find /usr/share -name "OVMF_CODE.fd" 2>/dev/null

典型路径如下:

  • /usr/share/OVMF/OVMF_CODE.fd
  • /usr/share/edk2/ovmf/OVMF_CODE.fd

使用 virt-install 创建 UEFI 虚拟机时加上--boot参数:

virt-install \ --name windows11-test \ --memory 8192 \ --vcpus 4 \ --disk path=/data/kvm/windows11-test.qcow2,size=100,format=qcow2 \ --cdrom /data/iso/Win11.iso \ --os-variant win11 \ --network network=default \ --boot uefi \ --graphics spice \ --noautoconsole

补充一点:如果网上资料让你手动下载某个“OVMF 固件 bin 文件”,要谨慎辨别来源。正常发行版仓库里的 edk2-ovmf / ovmf 包就是官方固件,不需要从第三方站点私下下载,避免引入安全风险。

3.4 硬件 KVM 切换器装系统场景建议

如果你的场景是机房里用硬件 KVM 切换器给物理服务器装系统,要注意下面几点:

  • 确认切换器主机端口和服务器显示输出接口一致,老服务器常见 VGA,新机器可能是 HDMI 或 DP,需要转接头。
  • 安装系统时,用切换器切换到目标服务器端口,显示器上应能看到开机自检画面。
  • 进入 BIOS,设置 U 盘或光驱为第一启动项,保存重启后即可进入安装界面。
  • 系统安装过程中不要频繁切换端口,避免键盘鼠标输入短暂失效造成误操作。
  • 如果是 KVM over IP,建议使用有线网络连接远程控制台,无线网络在安装界面下可能出现键盘响应延迟。

4. 内外剪贴板互通与显示优化

“KVM 内外剪贴板互通”是很多人在虚拟机里装完系统后遇到的第一个体验痛点。默认情况下,KVM 虚拟机与宿主机之间的剪贴板是隔离的,在虚拟机里复制的内容无法直接粘贴到宿主机,反之亦然。VMware Workstation 默认能互通,是因为它自动装了一套 VMware Tools,KVM 里对应的组件叫 SPICE guest tools。

4.1 安装 SPICE guest 工具

在 guest OS 是 Linux 的情况下,在虚拟机里执行:

Ubuntu / Debian:

apt install -y spice-vdagent

Rocky / CentOS:

dnf install -y spice-vdagent

安装完成后重新启动虚拟机或重启 spice-vdagent 服务。

如果 guest OS 是 Windows,可以在虚拟机的 CD-ROM 中挂载 virtio-win 驱动镜像,里面有 spice-guest-tools 安装包。这个镜像同样可以从发行版仓库或 virtio-win 官方发布渠道获取,不要在陌生站点下载来路不明的整合包。

4.2 剪贴板互通配置检查

安装 spice-vdagent 后,virt-manager 查看虚拟机显示时,宿主机和虚拟机之间就可以共用剪贴板了。

需要注意,剪贴板互通依赖两个条件:

  • 虚拟机的 video 设备类型是 virtio 或 QXL,而不是默认的 VGA。
  • 宿主机通过 SPICE 协议连接虚拟机,而不是 VNC。VNC 协议本身不适合剪贴板双向同步。

用 virsh 查看虚拟机 XML 配置中 video 和 graphics 部分:

virsh dumpxml windows11-test | grep -A 2 "<video>" virsh dumpxml windows11-test | grep -A 3 "<graphics>"

如果确实是 VNC,可以把图形协议改成 spice 后重启虚拟机:

virsh edit windows11-test

修改前建议先virsh dumpxml windows11-test > windows11-test.xml.bak备份配置。

4.3 全屏无法缩小问题解决

“KVM 链接服务器全屏无法缩小”一般出现在 virt-manager 或 virt-viewer 里。点全屏后,虚拟机画面撑满屏幕,但想按窗口小一点就不行了。

常见原因和解决思路如下:

  • 虚拟机内分辨率过高,超过宿主机窗口尺寸。可以在 guest OS 显示设置中把分辨率调低。
  • 没有安装 SPICE guest tools,显示器分辨率不能自动适配窗口大小。安装 spice-vdagent 后,virt-manager 窗口变化时,guest 桌面会自动跟随调整。
  • virt-manager 开启了“全屏”模式没有退出快捷键。按Shift + F11切换全屏,或者把鼠标移到屏幕上边缘呼出菜单栏。
  • 使用 VNC 连接时,由于分辨率协商机制不同,缩放支持不理想。可以尝试用 virt-viewer 的缩放模式,或者在 VNC 客户端中开启“缩放显示”。

查看当前虚拟机的显示连接地址可以用:

virsh vncdisplay win11-test

然后在 virt-viewer 中手动连接:

virt-viewer --connect qemu:///system win11-test

5. 常见问题与排查思路

把用户搜索热度最高的问题汇总成下表,再逐个展开说明。

问题现象常见原因解决思路
KVM 初始化失败,/dev/kvm 不存在CPU 虚拟化未开启或内核模块未加载检查 BIOS 设置,modprobe kvm_intel/kvm_amd
ATEN KVM 登录密码无法进入默认密码已被修改或不适用查阅官方手册、设备复位或联系管理员
虚拟机提示 UEFI 固件不存在未安装 OVMF 软件包安装 edk2-ovmf 或 ovmf 包
guest 和宿主机剪贴板不互通guest OS 未安装 spice-vdagent安装 spice-vdagent 并确认使用 SPICE 协议
全屏后无法缩小窗口分辨率超出窗口或缺少工具调节分辨率,安装 SPICE tools
virt-install 创建虚拟机失败os-variant 或磁盘路径错误用 osinfo-query 查询正确系统变体

5.1 ATEN KVM 登录密码问题

搜“ATEN KVM 登陆密码”的人,很多是在使用 ATEN 品牌的硬件 KVM 切换器或 KVM over IP 时被登录界面拦住了。必须明确:ATEN 不同系列、不同固件版本的管理员默认账号和密码并不完全相同,而且新设备第一次登录通常还会强制修改密码。

建议做法是:

  • 先查看设备背面标签或说明书,部分型号默认账号是admin,密码是空的或password
  • 如果没有说明书,去 ATEN 官网对应型号页面下载用户手册,以手册里写的初始凭据为准。
  • 如果之前有人配置过该设备,直接联系设备管理员重置密码。
  • 某些型号支持硬件复位按钮,恢复出厂设置后要重新配置网络参数,操作前必须确认该设备在业务中的影响范围。

一句话总结:不要迷信网上流传的“通用密码”,硬件设备的凭据管理要从安全角度对待。

5.2 UEFI 固件下载和引导失败

创建 UEFI 虚拟机最常见的报错是:

ERROR 配置域时出错: 内部错误: /usr/share/OVMF/OVMF_CODE.fd 不存在

这个报错就是缺少 OVMF 固件文件。按前面第 3.3 节方式安装对应软件包即可。

如果已经安装固件仍然引导失败,另一种常见原因是存储池路径权限不足。给虚拟机磁盘文件所在目录设置合理权限,并确保当前用户有权限访问:

chown -R qemu:qemu /data/kvm chmod 750 /data/kvm

对于已经创建但配置中没有 UEFI 的传统 BIOS 虚拟机,不能简单地改一个固件路径就切换启动模式,因为分区表类型和引导方式不匹配。建议重新创建虚拟机,在创建时直接指定 UEFI。

5.3 其他高频问题

  • 通过 KVM 给服务器做系统时安装界面黑屏:可能是显示协议问题和分辨率不支持。在 virt-install 中改用--graphics spice或者调整--video qxl
  • 虚拟机网卡不通:检查默认网络是否 active,guest 内网卡是否配置了 DHCP。
  • 性能差:确认宿主机的 CPU 嵌套虚拟化是否开启,虚拟机磁盘是否用了 qcow2,并检查是否准备使用 virtio 驱动。
virsh net-list --all virsh net-start default

6. 最佳实践与工程建议

KVM 虚拟化环境一旦进入生产,就不再是“把虚拟机建出来”那么简单。下面几条建议来自工程落地的实际经验。

6.1 命名与资源规划

虚拟机名称建议使用“业务-环境-用途”的格式,例如order-prod-node01。避免使用test1centos-new这类含义不清的名字。创建前先评估 CPU、内存、磁盘容量,避免宿主机超分过度导致性能抖动。

查看宿主机资源使用情况:

virsh list --all virsh dominfo order-prod-node01

6.2 存储与备份

虚拟机磁盘使用 qcow2 格式,创建虚拟机时利用--disk指定固定大小或按需增长。对重要虚拟机定期做快照,但在快照之前要确认 guest OS 内部文件系统处于一致状态,最好先暂停或关机:

virsh snapshot-create-as order-prod-node01 snap-before-upgrade

恢复快照的操作要谨慎,它会覆盖当前磁盘状态:

virsh snapshot-revert order-prod-node01 snap-before-upgrade

生产环境的核心数据必须在宿主机层之外再做异地备份,快照不等于备份,宿主机磁盘损坏时快照也会一起丢失。

6.3 权限与安全

  • 限制 libvirt 管理员的用户组范围,不要把所有用户都加入 libvirt 组。
  • 尽可能关闭不需要的 VNC 或 SPICE 对外监听端口,或者通过防火墙限制来源 IP。
  • 使用 openEuler/Rocky 等系统时,开启 SELinux,默认不随意放行非常规目录作为虚拟机镜像路径。
  • 修改业务虚拟机之前先导出一份 XML 配置备份:
virsh dumpxml order-prod-node01 > /backup/order-prod-node01.xml

6.4 性能与运维

  • 优先使用 virtio 类型的网卡和磁盘控制器,virtio 半虚拟化能显著降低 I/O 开销。
  • 给虚拟机设置 CPU 绑定之前先了解宿主机 NUMA 拓扑,避免跨 NUMA 节点访问内存造成性能下降。
  • 批量创建虚拟机时,把virt-install命令整理成 Shell 脚本,并用--noautoconsole避免交互卡住。
  • 日志排查重点关注/var/log/libvirt/qemu/目录下对应虚拟机日志,遇到启动失败优先查看这里。

7. 总结与学习路线

这篇长文从“两种 KVM”的区别切入,覆盖了 KVM 硬件切换器和 KVM 虚拟化的基本概念,重点展开了虚拟化 KVM 的环境搭建、virt-install 命令行创建虚拟机、UEFI 固件安装、剪贴板互通、全屏显示适配,以及 ATEN KVM 密码、固件缺失等常见问题。做完这些操作后,你已经能在一台 Linux 宿主机上独立创建和管理虚拟机了。

下一步建议按这个顺序继续深入:

  • 把 virt-manager 和 virsh 常用命令过一遍,重点掌握virsh listvirsh dominfovirsh shutdownvirsh destroy的管理区别。
  • 学习 Linux bridge 和 VLAN 配置,把虚拟机从 NAT 网络切换到 bridge 网络,让虚拟机直接接入业务网段。
  • 研究 qcow2 镜像的 backing file 克隆技术,提高批量创建虚拟机的效率。
  • 如果你的生产环境已经用上了硬件 KVM 切换器,建立一个设备密码台账和远程控制台登录规范,避免下次求助时找不到管理员。

KVM 看起来内容多,但核心思路并不难:底层是 Linux 内核的虚拟化能力,上层是 libvirt 管理百种虚拟机,中间真正影响使用体验的往往就是 UEFI 固件、virtio 驱动、SPICE tools 这几个细节。把本文的实践流程完整过一遍,再遇到相关的坑,就有明确的排查方向了。

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

实测Claude Fable 5.1生成C++小游戏:从滑板到FPS原型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 17:57:06

WorkBuddy双模型限免攻略:Hy4尝鲜与Hy3稳定工作流配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 17:56:30

Git自用手册:从安装配置到分支管理与远程协作

1. 为什么你需要一份自己的Git手册Git这个东西&#xff0c;只要你写代码&#xff0c;迟早要跟它打交道。我自己刚开始用Git的时候&#xff0c;也是靠到处搜命令、复制粘贴过来的&#xff0c;时间一长就发现一个问题&#xff1a;今天搜过的命令&#xff0c;下周又忘了。网上教程…

作者头像 李华
网站建设 2026/9/7 17:55:36

秋叶ComfyUI-V35整合包:双系统一键安装与AI绘画工作流实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 17:52:58

3 步免费解锁 WeMod Pro:Wand-Enhancer 本地离线补丁完整指南

3 步免费解锁 WeMod Pro&#xff1a;Wand-Enhancer 本地离线补丁完整指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 凌晨一点&#xff0c;Bos…

作者头像 李华