kvm_spcie共享剪切板

SPICE(Simple Protocol for Independent Computing Environments)提供了强大的剪贴板同步功能,允许在客户端和虚拟机之间共享剪贴板内容。以下是配置和使用SPICE剪贴板同步的详细指南:

🛠️ SPICE剪贴板同步配置

基础配置

配置项 说明 示例值
启用剪贴板同步 在SPICE服务器端配置 clipboard=yes
剪贴板方向 控制数据传输方向 clipboard_copypaste=both

QEMU/KVM配置示例

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 在虚拟机XML配置中添加 -->
<devices>
<graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0'>
<clipboard copypaste='yes'/>
<mouse mode='client'/>
</graphics>

<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
</devices>

命令行启动参数

1
2
3
4
5
6
qemu-system-x86_64 \
-vga qxl \
-spice port=5900,disable-ticketing,clipboard=yes \
-device virtio-serial-pci \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent

🔧 客户端配置

客户端支持

客户端 剪贴板支持 配置方法
virt-viewer 自动启用 默认开启,无需额外配置
Remote Viewer 完整支持 确保spice-gtk安装
GNOME Boxes 自动配置 开箱即用

安装必要的包

1
2
3
4
5
6
7
8
9
10
# Ubuntu/Debian
sudo apt-get install spice-vdagent spice-webdavd

# CentOS/RHEL/Fedora
sudo yum install spice-vdagent spice-webdavd
# 或者
sudo dnf install spice-vdagent spice-webdavd

# Arch Linux
sudo pacman -S spice-vdagent

🐧 虚拟机内部配置

Linux虚拟机配置

  1. 安装SPICE代理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # Ubuntu/Debian
    sudo apt-get install spice-vdagent

    # CentOS/RHEL
    sudo yum install spice-vdagent

    # 启动服务
    sudo systemctl start spice-vdagent
    sudo systemctl enable spice-vdagent
  2. 配置自动启动

    1
    2
    # 创建systemd服务(如果不存在)
    sudo systemctl enable spice-vdagentd

Windows虚拟机配置

  1. 下载并安装SPICE Guest Tools

  2. 安装步骤

    • 运行 spice-guest-tools 安装程序
    • 重启虚拟机
    • 检查服务是否运行:services.msc 中查看 SPICE Agent 服务

🔍 故障排除

常见问题排查

问题 解决方案
剪贴板不工作 检查spice-vdagent服务状态:systemctl status spice-vdagent
单向同步 确认配置为both方向:clipboard_copypaste=both
服务未启动 手动启动:sudo systemctl start spice-vdagent
Windows剪贴板问题 重新安装SPICE Guest Tools,检查Windows剪贴板服务

诊断命令

1
2
3
4
5
6
7
8
9
10
11
12
# 检查SPICE代理是否运行
ps aux | grep spice

# 查看系统日志中的SPICE相关消息
sudo journalctl -u spice-vdagent
sudo dmesg | grep spice

# 检查剪贴板管理器
ps aux | grep clip

# 验证QXL驱动
lspci | grep QXL

调试模式

1
2
3
4
5
# 启用详细日志
spice-vdagent -d -f

# 在QEMU中启用调试
qemu-system-x86_64 -spice port=5900,debug=1 ...

⚙️ 高级配置

多客户端配置

1
2
3
4
5
6
7
<graphics type='spice' port='5900'>
<listen type='address' address='0.0.0.0'/>
<gl enable='yes'/>
<clipboard copypaste='yes'/>
<filetransfer enable='yes'/>
<streaming mode='filter'/>
</graphics>

安全配置

1
2
3
4
5
6
7
8
# 使用TLS加密
-spice port=5900,tls-port=5901,\
x509-dir=/etc/pki/libvirt-spice,\
password=secret

# 使用SASL认证
-spice port=5900,disable-ticketing,\
sasl=yes

🚀 性能优化

  1. 启用QXL显卡

    1
    2
    3
    4
    <video>
    <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
  2. 调整内存设置

    1
    2
    <memory unit='KiB'>524288</memory>
    <currentMemory unit='KiB'>524288</currentMemory>

通过以上配置,SPICE剪贴板同步应该能够正常工作。如果遇到问题,请检查服务状态和日志文件,确保所有必要的组件都已正确安装和配置。


kvm_spcie共享剪切板
http://witbit.cn/SYSTEM/kvm_spcie共享剪切板.html
作者
朝彻
发布于
2025年10月13日
许可协议