linux

Linux VirtualBox如何设置共享打印机

小樊
42
2025-09-29 00:49:10
栏目: 智能运维

Linux VirtualBox设置共享打印机通用指南

共享打印机需通过VirtualBox增强功能实现宿主机与虚拟机的通信,并借助**CUPS(Common Unix Printing System)**配置网络共享。以下是详细步骤:

一、前置准备

  1. 安装VirtualBox增强功能
    启动Linux虚拟机,点击VirtualBox顶部菜单栏「设备」→「安装增强功能」。虚拟机会自动挂载增强功能光盘,打开终端执行以下命令安装依赖并加载驱动:

    sudo yum install -y bzip2 kernel-devel gcc make perl  # CentOS系统
    # 或
    sudo apt-get update && sudo apt-get install -y virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11  # Ubuntu/Debian系统
    sudo mkdir /mnt/cdrom && sudo mount /dev/cdrom /mnt/cdrom  # 挂载光盘
    cd /mnt/cdrom && sudo ./VBoxLinuxAdditions.run  # 运行安装脚本
    sudo reboot  # 重启虚拟机使增强功能生效
    

    注:增强功能需与VirtualBox版本匹配,否则可能导致驱动无法加载。

  2. 设置虚拟机网络
    为确保宿主机与虚拟机在同一网络,需将虚拟机网络适配器设置为桥接模式(Bridged Adapter)。操作路径:VirtualBox虚拟机设置→「网络」→「适配器1」→「桥接模式」。桥接模式下,虚拟机将获得与宿主机同一网段的IP地址,便于网络共享。

二、配置Linux虚拟机为共享打印机服务器(CUPS设置)

共享打印机的核心是CUPS服务,需在虚拟机中安装并配置CUPS,允许网络访问。

  1. 安装CUPS及必要驱动
    打开终端,执行以下命令安装CUPS及通用打印机驱动:

    sudo yum install -y cups cups-client printer-driver-all  # CentOS系统
    # 或
    sudo apt-get update && sudo apt-get install -y cups cups-client printer-driver-all  # Ubuntu/Debian系统
    

    注:printer-driver-all包含大多数常见打印机的驱动,若需特定型号驱动,可从打印机制造商官网下载。

  2. 启动CUPS服务并设置开机自启

    sudo systemctl start cups  # 启动CUPS服务
    sudo systemctl enable cups  # 设置开机自启
    
  3. 配置CUPS允许网络访问
    编辑CUPS配置文件,允许所有IP访问(生产环境建议限制为特定IP段):

    sudo vi /etc/cups/cupsd.conf
    

    找到以下行并修改(或添加):

    Listen 0.0.0.0:631  # 允许所有IP访问CUPS端口(默认631)
    <Location /> 
        Require all granted  # 允许所有用户访问
    </Location>
    <Location /admin>
        Require all granted  # 允许所有用户管理CUPS
    </Location>
    

    保存退出后,重启CUPS服务:

    sudo systemctl restart cups
    
  4. 添加共享打印机

    • 方式1:通过CUPS Web界面添加(推荐)
      在浏览器中输入http://<虚拟机IP地址>:631,登录管理员账号(如root),点击「Administration」→「Add Printer」。选择「Network Printer」,输入打印机IP地址或主机名(如ipp://printer_ip/ipp/print),选择对应型号驱动,完成安装。
    • 方式2:通过终端命令添加(需已知打印机URI)
      sudo lpadmin -p Printer_Name -v ipp://printer_ip/ipp/print -m drv:///sample.drv/generic.ppd -E
      
      其中,Printer_Name为自定义打印机名称,ipp://printer_ip/ipp/print为打印机URI,drv:///sample.drv/generic.ppd为驱动路径(可通过lpinfo -m查看可用驱动)。

三、在Linux客户端访问共享打印机

若需让其他Linux设备使用虚拟机中的共享打印机,需在客户端添加网络打印机。

  1. 安装CUPS客户端
    确保客户端已安装CUPS客户端工具:

    sudo yum install -y cups-client  # CentOS系统
    # 或
    sudo apt-get install -y cups-client  # Ubuntu/Debian系统
    
  2. 添加网络打印机

    • 方式1:通过系统设置添加
      打开「系统设置」→「打印机」→「Add Printer」,选择「Network Printer」,输入虚拟机的IP地址和共享打印机名称(如http://<虚拟机IP>:631/printers/Printer_Name),选择对应驱动,完成添加。
    • 方式2:通过CUPS Web界面添加
      在浏览器中输入http://<客户端IP>:631,点击「Administration」→「Add Printer」,选择「Network Printer」,输入虚拟机共享打印机的URI(如ipp://<虚拟机IP>:631/printers/Printer_Name),完成安装。

四、常见问题排查

通过以上步骤,即可在Linux VirtualBox环境中设置共享打印机,实现宿主机与虚拟机、甚至其他网络设备的共享打印。

0
看了该问题的人还看了