温馨提示×

Ubuntu中VirtualBox虚拟机如何共享打印机

小樊
64
2025-10-03 12:10:42
栏目: 云计算

Ubuntu中VirtualBox虚拟机共享打印机的配置步骤

1. 准备基础环境

在开始配置前,需确保VirtualBox及Ubuntu虚拟机满足以下条件:

  • 已安装VirtualBox(可通过sudo apt-get update && sudo apt-get install virtualbox命令安装);
  • 虚拟机已安装VirtualBox Guest Additions(增强功能,用于提升虚拟机与宿主机的兼容性,如USB设备访问、共享文件夹等)。安装方法:启动虚拟机后,点击VirtualBox菜单栏“设备”→“安装增强功能”,随后在虚拟机内打开终端,运行sudo apt-get update && sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11并重启虚拟机。

2. 配置虚拟机网络

为使虚拟机能访问宿主机或其他网络中的打印机,需将虚拟机的网络适配器设置为桥接模式(Bridged Adapter)。操作路径:VirtualBox主界面选中目标虚拟机→点击“设置”→“网络”→“适配器1”→“连接方式”选择“桥接模式”。桥接模式下,虚拟机与宿主机处于同一局域网,便于打印机资源共享。

3. 在虚拟机中安装CUPS打印系统

CUPS(Common Unix Printing System)是Linux系统的标准打印服务,负责管理打印机、打印任务及驱动。在Ubuntu虚拟机终端中运行以下命令安装:
sudo apt-get update && sudo apt-get install cups cups-client printer-driver-all
安装完成后,启动CUPS服务并设置开机自启:
sudo systemctl start cups && sudo systemctl enable cups
默认情况下,CUPS仅允许本地访问,需修改配置文件允许网络访问:
编辑/etc/cups/cupsd.conf文件(sudo nano /etc/cups/cupsd.conf),找到以下行并修改:

  • Listen localhost:631Listen *:631(允许所有IP访问);
  • <Location /><Location /> Require ip 192.168.1.0/24</Location>(替换为你的局域网网段,允许该网段内的设备访问,如192.168.1.0/24代表192.168.1.x网段)。
    保存文件后重启CUPS服务:sudo systemctl restart cups

4. 添加共享打印机

情况一:共享宿主机(Ubuntu)的打印机

若宿主机已连接打印机并设置为共享,虚拟机可通过以下步骤添加:

  1. 在虚拟机中打开“系统设置”→“打印机”;
  2. 点击“添加打印机”→选择“网络打印机”;
  3. 选择“Windows Printer via SAMBA”(若宿主机为Windows)或“Internet Printing Protocol (IPP)”(若宿主机为Ubuntu);
    • 若选择IPP,需输入宿主机打印机的URL,格式为:http://宿主机IP:631/printers/打印机名称(如http://192.168.1.100:631/printers/HP_LaserJet);
  4. 系统会自动搜索可用驱动,若未找到,可手动选择打印机品牌及型号(建议从制造商官网下载Linux驱动);
  5. 设置打印机名称(如“共享激光打印机”)→点击“应用”完成添加。

情况二:共享USB打印机(需通过VirtualBox USB支持)

若打印机为USB设备,需通过VirtualBox的USB功能共享给虚拟机:

  1. 将USB打印机插入宿主机;
  2. 启动VirtualBox,选中目标虚拟机→点击“设置”→“USB”;
  3. 勾选“启用USB控制器”(选择USB 2.0或3.0,根据打印机支持情况)→点击“从设备添加过滤器”图标(带“+”号的USB图标),选择已连接的打印机;
  4. 启动虚拟机,此时虚拟机应能识别到USB打印机;
  5. 打开“系统设置”→“打印机”→点击“添加打印机”,系统会自动检测到USB打印机,按照提示选择驱动并完成添加。

5. 测试打印机功能

添加完成后,在虚拟机的“打印机”设置中选中新添加的打印机,点击“打印测试页”,若能正常打印则说明配置成功。

常见问题排查

  • 无法访问共享打印机:检查宿主机与虚拟机是否在同一局域网;确认CUPS服务的631端口是否开启(sudo netstat -tulnp | grep 631);关闭宿主机防火墙或放行631端口(sudo ufw allow 631)。
  • 驱动缺失:若系统未自动识别打印机驱动,需前往打印机制造商官网下载对应Linux版本的驱动(如PPD文件),手动安装(在添加打印机时选择“提供PPD文件”)。

0