1.15.2. 在 Samba 中启用打印服务器支持
默认情况下,在 Samba 中不启用打印服务器支持。要将 Samba 用作打印服务器,您必须相应地配置 Samba。
打印作业和打印机操作需要远程过程调用(RPC)。默认情况下,Samba 根据需要启动 rpcd_spools 服务来管理 RPC。在第一个 RPC 调用过程中,或者当您更新 Common UNIX 打印系统(CUPS)中的打印机列表时,Samba 会检索打印机信息。每台打印机可能需要大约 1 秒。因此,如果您有超过 50 台打印机,请调优 rpcd_spools 设置。
先决条件
打印机在 CUPS 服务器中配置。
有关在 CUPS 中配置打印机的详情,请查看打印服务器上 CUPS Web 控制台(https://printserver:631/help)中提供的文档。
流程
编辑
/etc/samba/smb.conf文件:添加
[printers]部分,以便在 Samba 中启用打印后端:[printers] comment = All Printers path = /var/tmp/ printable = yes create mask = 0600重要[printers]共享名称是写死的,不能更改。如果 CUPS 服务器运行在不同的主机或端口上,请在
[printers]部分中指定设置:cups server = printserver.example.com:631如果您有很多打印机,请设置比连接到 CUPS 的打印机数高的空闲秒数。例如,如果您有 100 台打印机,请在
[global]部分中设置:rpcd_spoolss:idle_seconds = 200如果这个设置在您的环境中没有缩放,请在
[global]部分中增加rpcd_spoolsworker 的数量:rpcd_spoolss:num_workers = 10默认情况下,
rpcd_spools启动 5 个 worker。
验证
/etc/samba/smb.conf文件:# testparm打开所需的端口并使用
firewall-cmd工具重新载入防火墙配置:# firewall-cmd --permanent --add-service=samba# firewall-cmd --reload重启
smb服务:# systemctl restart smb重启服务后,Samba 会自动共享在 CUPS 后端中配置的所有打印机。如果您只想手动共享特定的打印机,请参阅 手动共享特定打印机。
验证
提交打印作业。例如,要打印 PDF 文件,请输入:
# smbclient -Uuser //sambaserver.example.com/printer_name -c "print example.pdf"