Debian 下 VirtualBox 共享打印机的可行方案与步骤
一、方案总览与选择
- 推荐优先使用网络共享(CUPS/Samba):在 Debian 宿主机上把打印机发布到局域网,虚拟机(无论 Windows 还是 Linux)通过 IP/端口 或 SMB 添加为网络打印机,稳定、跨平台、权限可控。
- 若需让虚拟机独占打印机,使用 USB 直通:把物理打印机从宿主机“直连”给虚拟机,适合驱动复杂或 USB 特性依赖强的设备。
- 不建议依赖 VirtualBox 的“打印机共享”功能(在部分版本中并不稳定或不可用),优先采用上述两种方案。
二、方案一 网络共享(CUPS/Samba,推荐)
- 宿主机安装与启动 CUPS
- 安装组件:sudo apt-get update && sudo apt-get install cups cups-client cups-bsd foomatic-filters
- 启动与开机自启:sudo systemctl start cups && sudo systemctl enable cups
- 可选:HP 系列可补充安装 hplip 与 hpijs 驱动包。
- 配置 CUPS 允许远程管理
- 备份并编辑:sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak
- 开放监听:将 Listen localhost:631 改为 Listen 0.0.0.0:631
- 允许访问:在相应 段内设置 Order allow,deny 与 Allow from all(或按网段限制,如 Allow 192.168.1.0/24)
- 重启服务:sudo systemctl restart cups
- 防火墙放行:sudo ufw allow 631/tcp(若启用防火墙)。
- 在 CUPS Web 界面添加并共享打印机
- 浏览器访问:http://宿主机IP:631(或 https:// 同地址,注意浏览器证书提示)
- 进入 Administration → Add Printer,选择已连接的本地打印机,选择驱动;在“共享此打印机”处勾选,保存。
- 建议打印测试页验证。
- 虚拟机侧添加网络打印机
- Windows:控制面板 → 设备和打印机 → 添加打印机 → 添加网络打印机;可直接输入 \宿主机IP\打印机共享名,或选择“我需要的打印机不在列表中”手动输入共享路径,安装相应驱动后打印测试页。
- Linux(Debian 客机):sudo apt-get install cups samba-client;通过 http://宿主机IP:631 添加,或在“打印机”设置里选择“网络打印机/SMB”添加,指定 \宿主机IP\共享名 并安装驱动。
三、方案二 USB 直通(独占直连)
- 宿主机准备
- 安装 VirtualBox 扩展包(确保版本匹配),插好打印机并确认能被宿主机识别。
- 虚拟机设置
- 选中虚拟机 → 设置 → USB → 添加 USB 设备,勾选你的打印机(若支持即插即用,会显示为“USB Printer”类)。
- 客机安装驱动
- 启动虚拟机,在客机(Windows 或 Linux)中安装对应厂商驱动,完成后即可像本地打印机一样使用。
- 适用场景与注意
- 适合需要独占访问或 USB 协议特性(如扫描、状态监测)的打印机;注意同一时间仅能由一方占用。
四、常见问题与排查
- 找不到共享打印机
- 确认宿主机与虚拟机在同一网络;在 Windows 添加打印机时优先手动输入 \宿主机IP\共享名;检查宿主机防火墙放行 631/tcp 与 SMB(Samba)相关端口。
- 驱动不匹配或打印异常
- 在客机安装与打印机型号匹配的官方驱动;HP 设备可优先使用 hplip/hpijs;必要时更换驱动或改用通用/PostScript 驱动测试。
- 虚拟机网络模式影响发现
- 使用桥接或仅主机网络更易被局域网发现;NAT 模式下需在客机侧手动指定共享路径。
- 访问 CUPS 管理界面受限
- 确认 cupsd.conf 中 Listen 0.0.0.0:631 与 Allow 规则正确;重启 CUPS 后再试。