温馨提示×

CentOS中VirtualBox如何配置打印机共享

小樊
37
2026-01-09 19:42:47
栏目: 智能运维

在 CentOS 的 VirtualBox 客户机中实现打印机共享,常见做法有三种:通过桥接网络直接使用宿主机共享的打印机、在虚拟机内安装CUPS 使用 USB 直连打印机、由虚拟机充当CUPS+Samba 打印服务器供局域网使用。下面给出可直接落地的步骤与要点。

方案一 桥接网络使用宿主机共享的打印机

  • 宿主机(如 Windows)将打印机设为共享,记录共享名(如:HP402dn)。
  • VirtualBox 将该 CentOS 客户机的网络设置为桥接网卡(Bridged Adapter),使其与宿主机处于同一局域网。
  • 在 CentOS 中安装工具并添加打印机:
    • 安装:sudo yum install -y cups samba-client
    • 浏览器访问 http://localhost:631 或执行 system-config-printer 打开“添加打印机”。
    • 选择“网络打印机”→“Windows 共享打印机(SMB)”,填写形如:
      • smb://宿主机IP/共享名
      • 或 smb://宿主机名/共享名
    • 选择对应驱动,打印测试页。
  • 提示:若提示凭据,使用宿主机上具有打印权限的用户名/密码;确保宿主机防火墙放行 SMB(445/TCP) 与打印相关服务。

方案二 虚拟机内 CUPS 直连 USB 打印机

  • 将打印机以 USB 方式连接到宿主机,在 VirtualBox 为该客户机勾选“USB”并添加对应的 USB 打印机设备(需安装 VirtualBox Extension Pack)。
  • 客户机安装并启动 CUPS:
    • 安装:sudo yum install -y cups
    • 允许远程管理(可选,便于用浏览器管理):编辑 /etc/cups/cupsd.conf
      • Listen localhost:631 改为 Listen 0.0.0.0:631
      • 、<Location /admin> 段将 Order allow,deny 改为 Order deny,allow,并添加 Allow from 127.0.0.1 与需要网段(如 Allow from 192.168.1.0/24
    • 防火墙放行:sudo firewall-cmd --permanent --add-port=631/tcp && sudo firewall-cmd --reload
    • 启动服务:sudo systemctl enable --now cups
  • 添加打印机:
    • 浏览器访问 http://localhost:631 → “Add Printer”,选择检测到的 USB 设备,选择驱动,打印测试页。
  • 说明:多数 HP 机型可直接使用 hplip 提供的驱动与工具(如 hp-setup),必要时安装:sudo yum install -y hplip hplip-gui。

方案三 虚拟机作为 CUPS+Samba 打印服务器

  • 适用场景:希望虚拟机统一提供打印服务给局域网(含宿主机和其他设备)。
  • 安装服务:sudo yum install -y cups samba
  • 配置 CUPS(/etc/cups/cupsd.conf):
    • 启用远程访问:Listen 0.0.0.0:631;在 、<Location /admin> 使用 Order deny,allow 并添加允许网段(如 Allow from 192.168.1.0/24)。
    • 在“服务器”页勾选:Share printers connected to this system
  • 配置 Samba(/etc/samba/smb.conf)最小示例:
    • [global] 中:workgroup=WORKGROUP;security=user;load printers=yes;printing=cups
    • [printers]:path=/var/spool/samba;browseable=yes;guest ok=yes;writable=no;printable=yes
    • [print$]:path=/var/lib/samba/printers;browseable=yes;read only=yes;write list=root
  • 准备驱动与发布:
    • CUPS for Windows 驱动(cups-windows-*.exe 解压后的 DLL/INI 等)放入 /usr/share/cups/drivers/
    • 创建 Samba 打印账户:sudo smbpasswd -a root
    • 发布驱动:cupsaddsmb -H localhost -U root -a -v
  • 启动服务与防火墙:
    • sudo systemctl enable --now cups smb
    • sudo firewall-cmd --permanent --add-service={samba,samba-client} && sudo firewall-cmd --reload
  • 客户端连接:
    • Windows:\虚拟机IP*打印机共享名*
    • Linux:smb://虚拟机IP/打印机共享名

常见问题与排查

  • 无法访问 http://localhost:631:确认 cups 已启动(systemctl status cups)、防火墙放行 631/TCP,以及 cupsd.conf 的 Listen/Allow 配置正确。
  • SMB 连接失败或凭据错误:核对 宿主机/虚拟机 IP、共享名 与账户权限;确保 SMB 445/TCP 未被阻断;必要时在 Windows 启用“文件和打印机共享”。
  • USB 打印机未出现在 CUPS:确认 Extension Pack 已安装、客户机 USB 控制器启用并勾选了对应设备;重启 CUPS 后再添加。
  • 驱动不匹配:优先使用厂商提供的 PPDhplip 工具;不确定型号时可先用通用 PostScript 驱动测试。

0