共享打印机需通过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环境中设置共享打印机,实现宿主机与虚拟机、甚至其他网络设备的共享打印。