共享打印机需通过VirtualBox增强功能实现宿主机与虚拟机的通信,并借助**CUPS(Common Unix Printing System)**配置网络共享。以下是详细步骤:
安装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版本匹配,否则可能导致驱动无法加载。
设置虚拟机网络
为确保宿主机与虚拟机在同一网络,需将虚拟机网络适配器设置为桥接模式(Bridged Adapter)。操作路径:VirtualBox虚拟机设置→「网络」→「适配器1」→「桥接模式」。桥接模式下,虚拟机将获得与宿主机同一网段的IP地址,便于网络共享。
共享打印机的核心是CUPS服务,需在虚拟机中安装并配置CUPS,允许网络访问。
安装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包含大多数常见打印机的驱动,若需特定型号驱动,可从打印机制造商官网下载。
启动CUPS服务并设置开机自启
sudo systemctl start cups # 启动CUPS服务 sudo systemctl enable cups # 设置开机自启 配置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 添加共享打印机
http://<虚拟机IP地址>:631,登录管理员账号(如root),点击「Administration」→「Add Printer」。选择「Network Printer」,输入打印机IP地址或主机名(如ipp://printer_ip/ipp/print),选择对应型号驱动,完成安装。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设备使用虚拟机中的共享打印机,需在客户端添加网络打印机。
安装CUPS客户端
确保客户端已安装CUPS客户端工具:
sudo yum install -y cups-client # CentOS系统 # 或 sudo apt-get install -y cups-client # Ubuntu/Debian系统 添加网络打印机
http://<虚拟机IP>:631/printers/Printer_Name),选择对应驱动,完成添加。http://<客户端IP>:631,点击「Administration」→「Add Printer」,选择「Network Printer」,输入虚拟机共享打印机的URI(如ipp://<虚拟机IP>:631/printers/Printer_Name),完成安装。sudo firewall-cmd --add-port=631/tcp --permanent && sudo firewall-cmd --reload),或临时关闭防火墙测试(sudo systemctl stop firewalld)。lpinfo -m命令查看可用驱动,手动选择对应型号安装。Require all granted已设置,允许所有用户访问。通过以上步骤,即可在Linux VirtualBox环境中设置共享打印机,实现宿主机与虚拟机、甚至其他网络设备的共享打印。