Ubuntu Spool实现远程打印的核心方案:CUPS(Common Unix Printing System)
Ubuntu系统中的打印队列(Spool)通过CUPS服务实现远程打印,CUPS是Linux平台主流的开源打印系统,支持IPP(Internet Printing Protocol)、LPD等网络协议,可共享本地打印机至局域网/互联网,允许远程设备提交打印任务。
在Ubuntu服务器(打印服务器)上,首先需要安装CUPS并启动相关服务:
sudo apt update && sudo apt install cups # 安装CUPS sudo systemctl start cups # 启动CUPS服务 sudo systemctl enable cups # 设置开机自启 安装完成后,CUPS默认监听localhost:631(仅本地访问),需修改配置以允许远程连接。
编辑CUPS主配置文件/etc/cups/cupsd.conf,调整以下关键参数:
#Listen localhost:631,修改为Listen 0.0.0.0:631(允许所有IP访问);<Location />部分,将Allow @LOCAL改为Allow all(允许所有用户访问管理界面),或指定网段(如Allow 192.168.1.0/24,仅允许局域网内设备访问);<Location /printers>部分,添加Allow all(允许远程设备查看和使用共享打印机)。示例配置片段:
Listen 0.0.0.0:631 <Location /> Order allow,deny Allow all </Location> <Location /printers> Order allow,deny Allow all </Location> sudo systemctl restart cups http://<Ubuntu服务器IP>:631(如http://192.168.1.100:631);在打印机详情页(点击打印机名称进入),切换至Sharing选项卡,勾选Share this printer(共享此打印机),设置共享名称(如HP_LaserJet),保存设置。
远程设备(Windows/macOS/Linux)可通过以下方式添加共享打印机:
HP_LaserJet);http://<Ubuntu服务器IP>:631/printers/HP_LaserJet,按提示安装驱动(可选择自动下载或手动安装)。<Ubuntu服务器IP>,端口631,协议选择Internet Printing Protocol (IPP),输入共享打印机名称(如HP_LaserJet),按提示安装驱动。sudo apt install cups-client;lpadmin -p <打印机名称> -E -v ipp://<Ubuntu服务器IP>:631/printers/<共享名称> -m everywhere(everywhere表示自动下载驱动)。cupsd.conf的<Location />部分,将Allow all改为指定网段(如Allow 192.168.1.0/24),防止非法访问;ufw允许CUPS端口(631):sudo ufw allow 631/tcp;通过以上步骤,Ubuntu Spool即可实现远程打印,远程设备可通过网络访问并使用Ubuntu服务器上的打印机资源。